DIRNAME := $(patsubst %-src.tar.bz2,%,$(notdir $(SRCPATH))) GNUTAR ?= gtar GNUSED ?= gsed HC_TARNAME ?= $(DIRNAME)-boot-$(PLATFORM).tar.bz2 all: work/pack-hc-pkg.stamp work/extract-src.stamp: $(GNUTAR) -jxf $(SRCPATH) -C work touch $@ work/patch-src.stamp: work/extract-src.stamp @echo "Executing an inner shell." @echo "Apply some patches to the source tree if you want to, then exit." @echo "(pwd: `pwd`/$(DIRNAME))" @cd "work/$(DIRNAME)" && "$(SHELL)" touch $@ work/duplicate-target.stamp: work/patch-src.stamp cp -rp "work/$(DIRNAME)" "work/$(DIRNAME)-target" touch $@ work/rename-host.stamp: work/duplicate-target.stamp mv "work/$(DIRNAME)" "work/$(DIRNAME)-host" touch $@ work/$(DIRNAME)-target/Makefile: work/rename-host.stamp cd "work/$(DIRNAME)-target" && \ ./configure -C --enable-hc-boot touch $@ work/$(DIRNAME)-target/mk/build.mk: files/target-build.mk work/$(DIRNAME)-target/Makefile cp -f $< $@ work/build-boot-files.stamp: work/$(DIRNAME)-target/mk/build.mk $(MAKE) -C "work/$(DIRNAME)-target" bootstrapping-files touch $@ work/$(DIRNAME)-host/Makefile: work/build-boot-files.stamp cd "work/$(DIRNAME)-host" && \ ./configure \ --with-iconv-includes=/usr/pkg/include \ --with-iconv-libraries=/usr/pkg/lib touch $@ work/$(DIRNAME)-host/mk/build.mk: files/host-build.mk work/$(DIRNAME)-host/Makefile cp -f $< $@ work/copy-boot-files.stamp: work/$(DIRNAME)-host/mk/build.mk for i in dist-ghcconstants dist-derivedconstants ghcautoconf.h; do \ rm -rf "work/$(DIRNAME)-host/includes/$$i" && \ cp -pr \ "work/$(DIRNAME)-target/includes/$$i" \ "work/$(DIRNAME)-host/includes"; \ done touch $@ work/build-hc.stamp: work/copy-boot-files.stamp $(MAKE) -C "work/$(DIRNAME)-host" touch $@ work/build-boot-tarball.stamp: work/build-hc.stamp cd "work/$(DIRNAME)-host" && ../../files/mkboot touch $@ work/extract-boot-tarball.stamp: work/build-boot-tarball.stamp mkdir -p "work/$(DIRNAME)" $(GNUTAR) -xf "work/$(DIRNAME)-host/boot.tar" -C "work/$(DIRNAME)" touch $@ work/replace-paths.stamp: work/extract-boot-tarball.stamp cd "work/$(DIRNAME)" && \ $(GNUSED) -i \ -e 's#/usr/pkg#[[PREFIX]]#g' \ -e 's#'`pwd`'-host#[[GHC_SOURCE_PATH]]#g' \ inplace/lib/package.conf.d/*.conf \ */package.conf.inplace \ */*/package-data.mk \ */*/*/package-data.mk \ */*/*/*/package-data.mk touch $@ work/pack-hc-pkg.stamp: work/replace-paths.stamp $(GNUTAR) -jcf "work/$(HC_TARNAME)" -C "work" $(DIRNAME) touch $@ @echo "Done. Upload \"work/$(HC_TARNAME)\" to somewhere."