TOPDIR=$(CURDIR)
APT-DIST=http://ftp.us.debian.org/debian/pool/main/a/apt/apt_0.8.15.10.tar.gz
DPKG-DIST=http://ftp.us.debian.org/debian/pool/main/d/dpkg/dpkg_1.16.2.tar.bz2
APTPATH=$(CURDIR)/apt-0.8.15.10/bin:$(CURDIR)/usr/bin

all: apt

apt-download:
	if [ ! -f apt_0.8.15.10.tar.gz ]; then wget $(APT-DIST); fi
	if [ ! -f dpkg_1.16.2.tar.bz2 ]; then wget $(DPKG-DIST); fi
	-rm -rf dpkg-1.16.2 dpkg-1.16.2.ori
	-rm -rf apt-0.8.15.10 apt-0.8.15.10.ori
	tar xvf apt_0.8.15.10.tar.gz; cp -r dpkg-1.16.2 dpkg-1.16.2.ori; \
		cat apt-0.8.15.10.diff | patch -p1 -d apt-0.8.15.10
	tar xvf dpkg_1.16.2.tar.bz2; cp -r apt-0.8.15.10 apt-0.8.15.10.ori; \
		cat dpkg-1.16.2.diff | patch -p1 -d dpkg-1.16.2
	cd apt-0.8.15.10/buildlib; rm config.guess config.sub; \
		ln -s $(TOPDIR)/usr/misc/config.guess config.guess; \
		ln -s $(TOPDIR)/usr/misc/config.sub config.sub;

dpkg-compile:
	cd dpkg-1.16.2; ./configure --prefix=$(TOPDIR)/usr; make; make install

apt-compile:
	cd apt-0.8.15.10; ./configure --prefix=$(TOPDIR)/usr; make; 

perl-install:
	perl -MCPAN -e 'install Config::Auto'
	perl -MCPAN -e 'install Parse::Debian::Packages'
	perl -MCPAN -e 'install Locale::gettext'

apt:
	export PATH=$${PATH}:$(APTPATH); \
	if ! which apt-get &> /dev/null; then \
		echo apt-get missing; \
		make apt-download dpkg-compile apt-compile perl-install; \
	fi

multi: apt
	export LD_LIBRARY_PATH=$(CURDIR)/apt-0.8.15.10/bin:$${LD_LIBRARY_PATH}; \
	export PERL5LIB=$${PERL5LIB}:$(CURDIR)/usr/lib/perl5/vendor_perl/5.10.0; \
	export PATH=$${PATH}:$(APTPATH); \
	perl $(CURDIR)/multistrap -m $(CURDIR)/apt-0.8.15.10/bin/methods -f $(CURDIR)/m-sparc.config
