#!/usr/bin/make -f

export DH_COMPAT=3

# Lowest version with fully ABI compatible libraries
SHLIB_VERSION=0.2

build:

clean:
	dh_testdir
	dh_testroot
	rm -rf DEBIAN
	rm -f debian/create-diversions debian/remove-diversions
	rm -f debian/amd64-libs-dev.preinst debian/amd64-libs-dev.postrm
	dh_clean
	chmod a+x debian/generate-wrappers.sh

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

# Extract all debs
	for i in `cd pkgs ; /bin/ls *.deb` ; do \
		dpkg-deb -x pkgs/$$i debian/amd64-libs/ ; done

# Fix up some things
	mv debian/amd64-libs/lib debian/amd64-libs/lib64
	mv debian/amd64-libs/usr/lib debian/amd64-libs/usr/lib64

	# No X libs currently included.
	#mv debian/amd64-libs/usr/X11R6/lib debian/amd64-libs/usr/X11R6/lib64
	#rm -rf debian/amd64-libs/usr/X11R6/include

	mkdir debian/amd64-libs/usr/x86_64-linux
	mv debian/amd64-libs/usr/include/* debian/amd64-libs/usr/x86_64-linux
	mv debian/amd64-libs/usr/x86_64-linux debian/amd64-libs/usr/include/
	rm -r debian/amd64-libs/usr/share
	rm -r debian/amd64-libs/usr/sbin
	rm -r debian/amd64-libs/sys
	rm -r debian/amd64-libs/sbin
	rm debian/amd64-libs/usr/lib64/pt_chown

# Make ldd work for 32-bit and 64-bit binaries.
	[ -x debian/amd64-libs/usr/bin/ldd ]
	sed < debian/amd64-libs/usr/bin/ldd 's%RTLDLIST=.*%RTLDLIST="/lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2"%' | sed 's%verify_out=`$${rtld} --verify "$$file"`%verify_out=`$${rtld} --verify "$$file" 2>\&1`%' > debian/amd64-libs/ldd
	rm -rf debian/amd64-libs/usr/bin
	mkdir -p debian/amd64-libs/usr/bin
	mv debian/amd64-libs/ldd debian/amd64-libs/usr/bin/
	chmod u=rwx,go=rx debian/amd64-libs/usr/bin/ldd

# Add doc dir and lintian overrides
	mkdir -p debian/amd64-libs/usr/share/doc/amd64-libs
	mkdir -p debian/amd64-libs/usr/share/lintian/overrides
	cp debian/amd64-libs.overrides debian/amd64-libs/usr/share/lintian/overrides/amd64-libs
	mkdir -p debian/amd64-libs-dev/usr/share/lintian/overrides
	cp debian/amd64-libs-dev.overrides debian/amd64-libs-dev/usr/share/lintian/overrides/amd64-libs-dev

# Extract shlibs info from libc6
	mkdir debian/amd64-libs/DEBIAN
	dpkg -e pkgs/libc6_*deb
	sed "s/libc6 (.*)/amd64-libs (>= $(SHLIB_VERSION))/" < DEBIAN/shlibs >debian/amd64-libs/DEBIAN/shlibs
	dpkg -e pkgs/libncurses5_*deb
	sed "s/libncurses5 (.*)/amd64-libs (>= $(SHLIB_VERSION))/" < DEBIAN/shlibs >>debian/amd64-libs/DEBIAN/shlibs

	# Fix symlinks.
	for link in $$(find debian/amd64-libs -type l); do		\
	  dest=$$(readlink $$link);					\
	  rm -f $$link;							\
	  ln -s $$(echo $$dest | sed 's,/lib/,/lib64/,') $$link;	\
	done

	# Wrap headers. that differ between 32-bit and 64-bit.  All asm
	# headers are wrapped (we assume the list of 32-bit headers in
	# the linux-kernel-headers package is the same as will be on the
	# installed system).  A manually maintained list of other headers
	# are wrapped.
	./debian/generate-wrappers.sh ./debian/amd64-libs \
	  ./debian/differing-headers
	rm -rf debian/amd64-libs/usr/include/x86_64-linux-input

	cat debian/amd64-libs-dev.preinst.in debian/create-diversions > debian/amd64-libs-dev.preinst
	cat debian/amd64-libs-dev.postrm.in debian/remove-diversions > debian/amd64-libs-dev.postrm

	# Fix up GROUP commands in linker scripts
	for lib in libc.so libpthread.so; do				\
	  cat debian/amd64-libs/usr/lib64/$$lib				\
	    | sed 's,/lib/,/lib64/,g' > $$lib;				\
	  mv -f $$lib debian/amd64-libs/usr/lib64/$$lib;		\
	done

	echo -e "# packages used in the creation of amd64-libs\n" > \
		debian/amd64-libs/usr/share/doc/amd64-libs/Manifest
	(cd pkgs; /bin/ls *.deb) >> debian/amd64-libs/usr/share/doc/amd64-libs/Manifest

	# Separate out development files.
	mkdir -p debian/amd64-libs-dev/usr/share/doc
	ln -s amd64-libs debian/amd64-libs-dev/usr/share/doc/amd64-libs-dev

	mv debian/amd64-libs/usr/include debian/amd64-libs-dev/usr/include
	mkdir debian/amd64-libs-dev/usr/lib64
	mv debian/amd64-libs/usr/lib64/*.so debian/amd64-libs-dev/usr/lib64
	mv debian/amd64-libs/usr/lib64/*.a debian/amd64-libs-dev/usr/lib64
	mv debian/amd64-libs/usr/lib64/*.o debian/amd64-libs-dev/usr/lib64
	mv debian/amd64-libs/usr/lib64/debug debian/amd64-libs-dev/usr/lib64

binary-indep:

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installexamples
	dh_installchangelogs 
#	dh_link
#	dh_strip
	dh_compress
	dh_fixperms --exclude "*/ld-*"
#	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 configure
