#!/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 \
		if [ "$$(echo $$i | sed 's,_.*,,')" = "libgcc1" ]; then \
			continue;\
		fi; \
		dpkg-deb -x pkgs/$$i debian/ia32-libs/ ; done

	if [ "$$(uname -m)" = "ia64" ]; then \
		dpkg-deb -x pkgs/libgcc1_*deb debian/lib32gcc1 ; \
		mv debian/lib32gcc1/lib debian/lib32gcc1/lib32 ; \
		mv debian/lib32gcc1/usr/share/doc/libgcc1 debian/lib32gcc1/usr/share/doc/lib32gcc1 ; \
	fi

# 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 ]
	case $$(uname -m) in \
		x86_64) \
			RTLDLIST="/lib/ld-linux-x86-64.so.2 /lib/ld-linux.so.2" \
		;; \
		ia64) \
			RTLDLIST="/lib/ld-linux-ia64.so.2 /lib/ld-linux.so.2" \
		;; \
		*) \
			echo "Unsupported architecture"; exit 1 \
		;; \
	esac ; \
	sed < debian/ia32-libs/usr/bin/ldd "s%RTLDLIST=.*%RTLDLIST=\" $$RTLDLIST\"%" | 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 -s
	dh_testroot -s 
	dh_installdocs -s
	dh_installexamples -s
	dh_installchangelogs -s
#	dh_link
#	dh_strip
	dh_compress -s
	dh_fixperms --exclude "*/ld-*" -s
#	dh_makeshlibs
	dh_installdeb -s
#	dh_shlibdeps
	dh_gencontrol -pia32-libs -pia32-libs-dev
	if [ "$$(uname -m)" = "ia64" ]; then \
		dh_gencontrol -plib32gcc1 -- -v`dpkg -I pkgs/libgcc1_*deb | awk '/Version/ {print $$2; exit}'` ; \
	fi
	dh_md5sums -s
	dh_builddeb -s

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