#!/usr/bin/make -f

#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)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CXXFLAGS = $(CFLAGS)
CXXFLAGS += -D_REENTRANT
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	MAKEFLAGS += -j$(NUMJOBS)
endif


# Get upstream version, and define libpqxx suffix
LIBRARY_VERSION =  -4.0

autoconfigure: autoconfigure-stamp
autoconfigure-stamp: debian/control
	dh_testdir

	[ -r config/config.sub.orig ] || \
		cp -f config/config.sub config/config.sub.orig
	[ -r config/config.guess.orig ] || \
		cp -f config/config.guess config/config.guess.orig

	[ ! -r /usr/share/misc/config.sub ] || \
		cp -f /usr/share/misc/config.sub config/config.sub
	[ ! -r /usr/share/misc/config.guess ] || \
		cp -f /usr/share/misc/config.guess config/config.guess

	# Create versioned symlinks
	cd debian; \
	for file in libpqxx.*; do \
	  ln -sf $$file `echo $$file | sed -e 's/libpqxx/libpqxx$(LIBRARY_VERSION)/'`; \
	done
	-rm debian/libpqxx$(LIBRARY_VERSION)*.in

	mkdir debian/build && \
	cd debian/build && \
	../../configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --enable-shared --disable-static --enable-maintainer-mode CXXFLAGS="$(CXXFLAGS)" && \
	mkdir doc/html

	touch autoconfigure-stamp

build: build-stamp
build-stamp: autoconfigure-stamp
	dh_testdir

	cd debian/build; \
	$(MAKE)

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f build-stamp autoconfigure-stamp

	rm -rf debian/build debian/install
	rm -rf debian/libpqxx$(LIBRARY_VERSION)*

	[ ! -r config/config.guess.orig ] || \
		mv -f config/config.guess.orig config/config.guess || :
	[ ! -r config/config.sub.orig ] || \
		mv -f config/config.sub.orig config/config.sub || :

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

#	Install into virtual root
	cd debian/build; \
	$(MAKE) install DESTDIR=$(CURDIR)/debian/install

	# We don't want an RPATH in a Debian package
	chrpath --delete debian/install/usr/lib/lib*.so

	dh_install

	# Remove examples which include internal headers
	rm -f `grep -l config\\.h debian/libpqxx-doc/usr/share/doc/libpqxx-doc/examples/*.cxx`
	rm -f `grep -l config-internal debian/libpqxx-doc/usr/share/doc/libpqxx-doc/examples/*.cxx`
	rm -f `grep -l compiler\\.h debian/libpqxx-doc/usr/share/doc/libpqxx-doc/examples/*.cxx`

binary-indep: install

binary-arch: install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installexamples
	dh_installchangelogs ChangeLog
	dh_link
	dh_strip --dbg-package=libpqxx$(LIBRARY_VERSION)-dbg
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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