#!/usr/bin/make -f

export DH_COMPAT=3

# Lowest version with fully ABI compatible libraries
SHLIB_VERSION=0.2

build:
#	./fetch-and-build

clean:
	dh_testdir
	dh_testroot
	rm -rf DEBIAN
	rm -f debian/create-diversions debian/remove-diversions
	rm -f debian/ia32-libs-dev.preinst debian/ia32-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/ia32-libs/ ; done

# Fix up some things
	mv debian/ia32-libs/lib debian/ia32-libs/lib32
	mv debian/ia32-libs/usr/lib debian/ia32-libs/usr/lib32

	# No X libs currently included.
	mv debian/ia32-libs/usr/X11R6/lib debian/ia32-libs/usr/X11R6/lib32

###	mkdir debian/ia32-libs/usr/i486-linux
###	mv debian/ia32-libs/usr/include/* debian/ia32-libs/usr/i486-linux
###	mv debian/ia32-libs/usr/i486-linux debian/ia32-libs/usr/include/
	rm -r debian/ia32-libs/usr/include
	rm -r debian/ia32-libs/usr/share
	rm -r debian/ia32-libs/usr/sbin
	rm -r debian/ia32-libs/sys
	rm -r debian/ia32-libs/sbin
	rm debian/ia32-libs/usr/lib32/pt_chown

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

	dh_link lib32/ld-2.3.2.so lib/ld-linux.so.2

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

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

	# Fix symlinks.
	for link in $$(find debian/ia32-libs -type l); do		\
	  dest=$$(readlink $$link);					\
	  rm -f $$link;							\
	  ln -s $$(echo $$dest | sed 's,/lib/,/lib32/,') $$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/ia32-libs \
##	  ./debian/differing-headers
##	rm -rf debian/ia32-libs/usr/include/i486-linux-input

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

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

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

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

#	mv debian/ia32-libs/usr/include debian/ia32-libs-dev/usr/include
	mkdir debian/ia32-libs-dev/usr/lib32
	mv debian/ia32-libs/usr/lib32/*.so debian/ia32-libs-dev/usr/lib32
	mv debian/ia32-libs/usr/lib32/*.a debian/ia32-libs-dev/usr/lib32
	mv debian/ia32-libs/usr/lib32/*.o debian/ia32-libs-dev/usr/lib32
#	mv debian/ia32-libs/usr/lib32/debug debian/ia32-libs-dev/usr/lib32

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
