#!/usr/bin/make -f

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

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
## agi TODO maybe we should use DPKG_BUILD_ARCH & DPKG_BUILD_ARCH_OS
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

DEB_HOST_MULTIARCH  ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

DEB_CFLAGS := $(shell dpkg-buildflags --get CFLAGS; dpkg-buildflags --get CPPFLAGS) \
	-fgnu89-inline
export DEB_CFLAGS

DEB_LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
export DEB_LDFLAGS

INSTALLDIR=`pwd`/debian/irda-utils
INSTALLDOCDIR=$(INSTALLDIR)/usr/share/doc/irda-utils

build: build-stamp
build-stamp:
	dh_testdir

	(cd irdadump; $(MAKE) V=1)
	(cd irattach;$(MAKE) V=1)
	(cd irdaping; $(MAKE) V=1)
	(cd irnetd; $(MAKE) V=1)
	(cd psion; $(MAKE) V=1)

ifneq (,$(filter $(DEB_HOST_MULTIARCH), i386-linux-gnu x86_64-linux-gnu))
	(cd findchip; $(MAKE) V=1)
	(cd smcinit; $(MAKE) V=1)
endif

	## man page fix. TODO move away from .gz manpages in upstream and build them from sgml files
# 	( cd man; mv irdadump.8.gz irdadump.8.gz.old ; cp irdadump.8.gz.old irdadump.8.gz ; gzip -d irdadump.8.gz ; patch -p0 < ../debian/irdadump.8.diff ; gzip -9 irdadump.8)
# 	( cd man; mv irattach.8.gz irattach.8.gz.old ; cp irattach.8.gz.old irattach.8.gz ; gzip -d irattach.8.gz ; patch -p0 < ../debian/irattach.8.diff ; gzip -9 irattach.8)
	
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp install-stamp ChangeLog

	# install new config.{sub,guess}
# 	-[ -e irdadump/config.sub ] && mv irdadump/config.sub irdadump/config.sub.old
# 	-[ -e irdadump/config.guess ] && mv irdadump/config.guess irdadump/config.guess.old
# 	cp /usr/share/misc/config.guess irdadump/
# 	cp /usr/share/misc/config.sub irdadump/


	# cover ChangeLog issues
# 	rm -f ChangeLog irdadump/ChangeLog.irdadump irattach/ChangeLog.irdadump

# 	# put back old config.{sub,guess}
# 	-[ -e irdadump/config.sub.old ]   && mv -f irdadump/config.sub.old irdadump/config.sub
# 	-[ -e irdadump/config.guess.old ] && mv -f irdadump/config.guess.old irdadump/config.guess
# 	## restore original manpage
# 	-[ -e man/irdadump.8.gz.old ] && mv man/irdadump.8.gz.old man/irdadump.8.gz

	# Add here commands to clean up after the build process.
	[ ! -f Makefile ] || $(MAKE) clean
	-(cd irattach; $(MAKE) distclean)
	#-(cd irdadump; $(MAKE) distclean; rm -rf depcomp missing mkinstalldirs install-sh autom4te.cache)
	-(cd irdadump; $(MAKE) distclean)
	-(cd irdaping; $(MAKE) distclean)
	-(cd irnetd; $(MAKE) distclean)
	-(cd psion; $(MAKE) distclean)
	-(cd findchip; $(MAKE) distclean)
	-(cd smcinit; $(MAKE) distclean)

	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the package into debian/tmp.
	install irattach/irattach $(INSTALLDIR)/usr/sbin
## devfs is dead
#	mkdir -p $(INSTALLDIR)/etc/devfs/conf.d
#	cp `pwd`/debian/devfs-conf.d-irda $(INSTALLDIR)/etc/devfs/conf.d/irda
	if [ "$(DEB_BUILD_GNU_TYPE)" = "i486-linux-gnu" -o "$(DEB_BUILD_GNU_TYPE)" = "x86_64-linux-gnu" ]; then \
		install findchip/findchip $(INSTALLDIR)/usr/sbin; \
		install smcinit/smcinit $(INSTALLDIR)/usr/sbin; \
	fi

	install irdadump/irdadump $(INSTALLDIR)/usr/sbin
	install irdaping/irdaping $(INSTALLDIR)/usr/sbin
	install irnetd/irnetd $(INSTALLDIR)/usr/sbin
	install psion/irpsion5 $(INSTALLDIR)/usr/sbin

	# some ChangeLog and README issues
	mkdir -p $(INSTALLDOCDIR)
	echo "There is no ChangeLog for the whole package. Check the invidual ChangeLogs." > $(INSTALLDOCDIR)/changelog
	gzip -9n $(INSTALLDOCDIR)/changelog
	cp irdadump/ChangeLog $(INSTALLDOCDIR)/ChangeLog.irdadump
	cp irdadump/README $(INSTALLDOCDIR)/README.irdadump
	cp irattach/ChangeLog $(INSTALLDOCDIR)/ChangeLog.irattach

	touch install-stamp

# 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_installemacsen
	dh_installinit
#	dh_installcron
	dh_installdebconf
	if [ "$(DEB_BUILD_GNU_TYPE)" = "i486-linux-gnu" -o "$(DEB_BUILD_GNU_TYPE)" = "x86_64-linux-gnu" ]; then \
		dh_installman man/findchip.8.gz; \
	fi
	dh_installman man/irattach.8.gz man/irdadump.8.gz man/irdaping.8.gz man/irpsion5.8.gz man/irnet.4.gz man/irnetd.8.gz man/irda.7.gz man/smcinit.8.gz
	dh_installchangelogs
	dh_installudev
	dh_strip
	dh_compress
	dh_fixperms
#	dh_suidregister
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
#	dh_makeshlibs
	dh_md5sums
	dh_builddeb


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