#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

BUILD_DATE := $(shell dpkg-parsechangelog --show-field Date)

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_BUILD_GNU_TYPE      := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE       := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)

CFLAGS = $(shell dpkg-buildflags --get CFLAGS) -U_FORTIFY_SOURCE

version := $(shell dpkg-parsechangelog | grep ^"Version" | sed -r 's/Version: [0-9]{1}:([0-9\.]+)-.*/\1/')
tarball := binutils-$(version).tar.bz2

srcdir  := $(shell echo $(tarball) | sed -e 's/\.tar\.bz2//')

# FIXME: one-char vars are evil, even more than emacs.
D := $(CURDIR)/debian/binutils-m68hc1x

unpack: unpack-stamp
unpack-stamp:
	dh_testdir

	tar xf $(tarball)
	mkdir build

	touch unpack-stamp

patch: patch-stamp
patch-stamp: unpack-stamp
	dh_testdir

	for patch in debian/patches/*.patch; do \
	  patch -p0 < $$patch; \
	done

	touch patch-stamp

configure: configure-stamp
configure-stamp: patch-stamp
	dh_testdir
	dh_autotools-dev_updateconfig

	cd build && \
	CFLAGS="$(CFLAGS)" ../$(srcdir)/configure --prefix=/usr \
			--disable-werror \
			--infodir=/usr/share/info \
			--mandir=/usr/share/man \
			--build=$(DEB_BUILD_GNU_TYPE) \
			--host=$(DEB_HOST_GNU_TYPE) \
			--target=m68hc11 \
			--enable-targets=m68hc11,m68hc12
	touch configure-stamp

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure
	dh_testdir
	cd build && $(MAKE)
	GZIP=-9n tar cfz $(CURDIR)/example.tar.gz example/* --sort=name --mtime="$(BUILD_DATE)" --mode=644
	touch build-stamp

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the package into debian/binutils-m68hc1x
	cd build && \
		$(MAKE) install prefix=$(D)/usr \
		                mandir=$(D)/usr/share/man \
				infodir=$(D)/usr/share/info

	# Change hardlinks to symlinks
	for i in ar as ld nm objcopy objdump ranlib strip ; do \
		rm -f $(CURDIR)/debian/binutils-m68hc1x/usr/m68hc11/bin/$$i ; \
		ln -s ../../bin/m68hc11-$$i $(D)/usr/m68hc11/bin/$$i ; \
	done

	# Also create m68hc12-*
	install -o root -g root -m 755 $(CURDIR)/debian/m68hc12-as $(D)/usr/bin
	ln -s m68hc11-as.1 $(CURDIR)/debian/binutils-m68hc1x/usr/share/man/man1/m68hc12-as.1
	install -o root -g root -m 755 $(CURDIR)/debian/m68hc12-ld $(D)/usr/bin
	ln -s m68hc11-ld.1 $(CURDIR)/debian/binutils-m68hc1x/usr/share/man/man1/m68hc12-ld.1

	for i in ar addr2line c++filt nm objdump objcopy ranlib readelf size strings strip ; do \
		ln -s m68hc11-$$i $(D)/usr/bin/m68hc12-$$i ; \
		ln -s m68hc11-$$i.1 $(D)/usr/share/man/man1/m68hc12-$$i.1 ; \
	done

	# Files also in main binutils pkg
	rm -rf $(D)/usr/include
	rm -rf $(D)/usr/lib
	rm -rf $(D)/usr/share/info
	rm -rf $(D)/usr/share/locale

	# Override file
	install -p -o root -g root -m 644 $(CURDIR)/debian/overrides \
		$(D)/usr/share/lintian/overrides/binutils-m68hc1x

clean:
	dh_testdir
	dh_testroot
	rm -f $(CURDIR)/example.tar.gz
	rm -rf build $(srcdir)
	rm -f build-stamp configure-stamp patch-stamp unpack-stamp

	dh_clean

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs
#	dh_installexamples
#	dh_installmenu
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_installinit
#	dh_installcron
	dh_installman
#	dh_installinfo
	dh_installchangelogs
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
#	dh_makeshlibs
	dh_installdeb
#	dh_perl
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
