#!/usr/bin/make -f

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

# Lowest version with fully ABI compatible libraries
SHLIB_VERSION = $(shell dpkg-parsechangelog | sed -n 's/Version: \(.*\)/\1/p')

ROOT=/
ROOTL=
SUFFIX=32
SUFFIXL=32

build:
#	./fetch-and-build

clean:
	dh_testdir
	dh_testroot
	dh_clean

install-prefix:
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

######################################################################
# common variables
######################################################################

MAKE := $(MAKE) -f debian/rules
DEBS_ia32-libs-core := $(shell cd pkgs; ls *.deb | cut -d"_" -f1)

EXTRACT_ia32-libs-core := $(addprefix extract-,$(DEBS_ia32-libs-core))

######################################################################
# common helper
######################################################################
# All helpers expect DEST to be set to debian/<pkg>

.PRECIOUS: %/DEBIAN/Manifest
%/DEBIAN/Manifest:
	mkdir -p $(DEST)/DEBIAN/
	echo "# packages used in the creation of $(notdir $(DEST))" \
	     > $(DEST)/DEBIAN/Manifest
	echo >> $(DEST)/DEBIAN/Manifest

extract-%: $(DEST)/DEBIAN/Manifest
	cd pkgs && echo $*_*.deb >> ../$(DEST)/DEBIAN/Manifest
	dpkg-deb -x pkgs/$*_*.deb $(DEST)

	# change shlibs information
	# libX Y * ---> libX Y <DEST> (>= SHLIB_VERSION)
	mkdir -p $(DEST)/t/DEBIAN
	dpkg-deb -e pkgs/$*_*.deb $(DEST)/t/DEBIAN
	if [ -f $(DEST)/t/DEBIAN/shlibs ]; then \
	  grep -v "^udeb:" < $(DEST)/t/DEBIAN/shlibs \
	  | sed "s/^\(\S*\s*\S*\).*/\1 $(notdir $(DEST)) (>= $(SHLIB_VERSION))/" >>$(DEST)/DEBIAN/shlibs; \
	fi
	rm -r $(DEST)/t/DEBIAN

move-libs:
	# Move libraries to new places
	[ ! -d $(DEST)/t/lib ] \
	|| ( mkdir -p $(DEST)$(ROOT) \
	   && mv $(DEST)/t/lib $(DEST)$(ROOT)lib$(SUFFIX) )
	[ ! -d $(DEST)/t/usr/lib ] \
	|| ( mkdir -p $(DEST)$(ROOT)usr \
	   && mv $(DEST)/t/usr/lib $(DEST)$(ROOT)usr/lib$(SUFFIX) )

move-docs: PKG=$(notdir $(DEST))
move-docs:
	mkdir -p $(DEST)/DEBIAN/t
	mv $(DEST)/usr/share/doc/* $(DEST)/DEBIAN/t/
	mv $(DEST)/DEBIAN/t $(DEST)/usr/share/doc/$(PKG)

fix-links:
	# change links in $(DEST)$(ROOT) to new names
	for link in $$(find $(DEST)$(ROOT) -type l); do		\
	  dest=$$(readlink $$link);				\
	  case "$$dest" in					\
	    /etc*) ;;						\
	    /usr/lib/locale*) ;;				\
	    /*) rm -f $$link;					\
	        ln -s $$(echo $$dest | sed -e 's,^/,$(ROOT),' -e 's,/lib/,/lib$(SUFFIX)/,') $$link;	\
	        ;;						\
	  esac;							\
	done

######################################################################
# ia32-libs-core
######################################################################
install-ia32-libs-core: DEST=debian/ia32-libs-core
install-ia32-libs-core: install-prefix
	# Extract all debs
	$(MAKE) DEST=$(DEST) $(EXTRACT_ia32-libs-core)

	# Move and rename docs
	$(MAKE) DEST=$(DEST) move-docs

	# Add locale symlink
	#ln -s /usr/lib/locale $(DEST)$(ROOT)usr/lib$(SUFFIX)/locale

	# Remove unwanted directories and files
	rm -rf $(DEST)/t
	rm -rf $(DEST)/usr/share/lintian/overrides
	rm -rf $(DEST)/usr/share/alsa
	rm -rf $(DEST)/usr/lib

	# Add lintian overrides and Manifest
	mkdir -p $(DEST)/usr/share/lintian/overrides
	cp debian/ia32-libs-core.overrides $(DEST)/usr/share/lintian/overrides/ia32-libs-core
	mv $(DEST)/DEBIAN/Manifest $(DEST)/usr/share/doc/ia32-libs-core/Manifest.ia32-libs-core

	# Fix symlinks.
	$(MAKE) DEST=$(DEST) fix-links

	# Fix duplicate shlibs entries
	sort -u $(DEST)/DEBIAN/shlibs >$(DEST)/DEBIAN/shlibs.new
	mv $(DEST)/DEBIAN/shlibs.new $(DEST)/DEBIAN/shlibs

install: install-ia32-libs-core

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_lintian
	dh_compress -s
	dh_fixperms --exclude "*/ld-*" -s
	dh_installdeb -s
	dh_gencontrol -s
	dh_md5sums -s
	dh_builddeb -s

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