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

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

libpkg = libpisock9
#cxxlibpkg = libpisock++0c2
cxxlibpkg =
synclibpkg = libpisync0
devpkg = libpisock-dev
runpkg = pilot-link
perlpkg = libpda-pilot-perl
pythonpkg = python-pisock

CFLAGS += -O2 -pthread -D_REENTRANT
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -g
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

#ifeq (hppa,$(DEB_BUILD_ARCH))
#	CFLAGS += -ffunction-sections
#endif

pwd := $(shell pwd)
ifndef PERL
PERL = /usr/bin/perl
endif
archlib = $(shell $(PERL) -MConfig -e 'print $$Config{installvendorarch}')

PYVERS=$(shell pyversions -r)

# dpatch
include /usr/share/dpatch/dpatch.make

build: build-stamp build-python-stamp
build-stamp: patch-stamp
	dh_testdir
	# Add here commands to compile the package.
	./configure --prefix=/usr \
		--enable-conduits --enable-libusb \
		--with-perl --with-python --with-libpng \
		--with-libiconv \
		CC="$(CC)" CFLAGS="$(CFLAGS)"

	# force installation of dump.pl & Pilot.pm (#413502)
	touch bindings/Perl/dump.pl

	$(MAKE)
	touch build-stamp

build-python-stamp: build-stamp
	dh_testdir
	set -e; \
	for python in $(PYVERS); do \
		$(MAKE) -C bindings python-build PYTHON=$$python; \
	done
	touch build-stamp

clean: clean1 unpatch
clean1:
	dh_testdir
	rm -f build-stamp pre-binary-stamp
	if [ -e Makefile ] ; then $(MAKE) distclean; fi
	rm -f config.log changelog libtool
	rm -rf bindings/Python/build
	dh_clean

pre-binary: build pre-binary-stamp
pre-binary-stamp:
	dh_clean
	dh_installdirs
	$(MAKE) install DESTDIR=`pwd`/debian/tmp
	set -e; \
	cd bindings/Python; \
	for python in $(PYVERS); do \
		$$python setup.py install --root=$(CURDIR)/debian/tmp; \
	done

	# mini patches
	cp ChangeLog changelog
	chmod +x debian/tmp/usr/lib/perl5/PDA/dump.pl

	# blacklist visor module
	mkdir -p debian/tmp/etc/modprobe.d
	echo "blacklist visor" > debian/tmp/etc/modprobe.d/libpisock9

	# install the udev rule file to get the correct file group and permissions 
	mkdir -p debian/tmp/etc/udev/rules.d
	mv debian/tmp/usr/share/pilot-link/udev/60-libpisock.rules  debian/tmp/etc/udev/libpisock9.rules
	ln -s ../libpisock9.rules debian/tmp/etc/udev/rules.d/60-libpisock.rules

	dh_install --list-missing --sourcedir=debian/tmp
	touch pre-binary-stamp

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

# Build architecture-dependent files here.
binary-arch: build $(libpkg) $(cxxlibpkg) $(devpkg) $(perlpkg) $(runpkg) $(synclibpkg) $(pythonpkg)

$(libpkg): build pre-binary
	echo $@
	dh_testroot
	dh_installdirs -p $@
	dh_installdocs -p $@
	dh_installchangelogs -p $@
	dh_strip -p $@
	dh_compress -p $@
	dh_fixperms -p $@
	dh_makeshlibs -p $@
	dh_installdeb -p $@
	dh_shlibdeps -p $@
	dh_gencontrol -p $@
	dh_md5sums -p $@
	dh_builddeb -p $@

$(cxxlibpkg): build pre-binary
	echo $@
	dh_installdirs -p $@
	dh_installdocs -p $@
	dh_installchangelogs -p $@
	dh_strip -p $@
	dh_compress -p $@
	dh_fixperms -p $@
	dh_makeshlibs -p $@
	dh_installdeb -p $@
	dh_shlibdeps -p $@ -l debian/$(libpkg)/usr/lib/
	dh_gencontrol -p $@
	dh_md5sums -p $@
	dh_builddeb -p $@

$(synclibpkg): build pre-binary
	echo $@
	dh_installdirs -p $@
	dh_installdocs -p $@
	dh_installchangelogs -p $@
	dh_strip -p $@
	dh_compress -p $@
	dh_fixperms -p $@
	dh_makeshlibs -p $@
	dh_installdeb -p $@
	dh_shlibdeps -p $@  -l debian/$(libpkg)/usr/lib
	dh_gencontrol -p $@
	dh_md5sums -p $@
	dh_builddeb -p $@
	
$(devpkg): build pre-binary
	echo $@
	dh_installdirs -p $@
	dh_installdocs -p $@
	dh_installchangelogs -p $@
	#cp debian/$@/usr/include/*.h* debian/$@/usr/include/libpisock/
	dh_strip -p $@
	dh_compress -p $@
	dh_fixperms -p $@
	dh_makeshlibs -p $@
	dh_installdeb -p $@
	dh_shlibdeps -p $@
	dh_gencontrol -p $@
	dh_md5sums -p $@
	dh_builddeb -p $@

$(runpkg): build pre-binary
	echo $@
	dh_installdirs -p $@
	dh_installdocs -p $@
	dh_installexamples -p $@
	dh_installmenu -p $@
	dh_installman -p $@
	dh_installchangelogs -p $@
	dh_installdebconf -p $@
	dh_strip -p $@
	dh_compress -p $@
	dh_fixperms -p $@
	dh_installdeb -p $@
	dh_shlibdeps -p $@ -l debian/$(libpkg)/usr/lib
	dh_gencontrol -p $@
	dh_md5sums -p $@
	dh_builddeb -p $@

$(perlpkg): build pre-binary
	echo $@
	dh_installdirs -p $@
	dh_installchangelogs -p $@
	dh_installdocs -p $@
	dh_installexamples -p $@
	dh_strip -p $@
	dh_compress -p $@
	dh_fixperms -p $@
	dh_installdeb -p $@
	dh_perl -p $@
	dh_shlibdeps -p $@ -l debian/$(libpkg)/usr/lib
	dh_gencontrol -p $@ -- -Tdebian/libpda-pilot-perl.substvars.debhelper -Tdebian/libpda-pilot-perl.substvars
	dh_md5sums -p $@
	dh_builddeb -p $@

$(pythonpkg): build pre-binary
	echo $@
	dh_installdirs -p $@
	dh_installchangelogs -p $@
	dh_installdocs -p $@
	dh_strip -p $@
	dh_compress -p $@
	dh_fixperms -p $@
	dh_makeshlibs -p $@
	dh_pysupport -p $@
	dh_installdeb -p $@
	dh_shlibdeps -p $@ -l debian/$(libpkg)/usr/lib
	dh_gencontrol -p $@
	dh_md5sums -p $@
	dh_builddeb -p $@

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary patch unpatch clean1 \
	$(libpkg) $(devpkg) $(runpkg) $(perlpkg) $(pythonpkg) pre-binary

