1 DIRNAME := $(patsubst %-src.tar.bz2,%,$(notdir $(SRCPATH)))
3 HC_TARNAME ?= $(DIRNAME)-boot-$(PLATFORM).tar.bz2
5 all: work/pack-hc-pkg.stamp
7 work/extract-src.stamp:
8 $(GNUTAR) -jxf $(SRCPATH) -C work
11 work/patch-src.stamp: work/extract-src.stamp
12 @echo "Executing an inner shell."
13 @echo "Apply some patch to the source tree, then exit."
14 @echo "(pwd: `pwd`/$(DIRNAME))"
15 @cd "work/$(DIRNAME)" && "$(SHELL)"
18 work/duplicate-target.stamp: work/patch-src.stamp
19 cp -rp "work/$(DIRNAME)" "work/$(DIRNAME)-target"
22 work/rename-host.stamp: work/duplicate-target.stamp
23 mv "work/$(DIRNAME)" "work/$(DIRNAME)-host"
26 work/$(DIRNAME)-target/Makefile: work/rename-host.stamp
27 cd "work/$(DIRNAME)-target" && \
28 ./configure -C --enable-hc-boot
31 work/$(DIRNAME)-target/mk/build.mk: files/target-build.mk work/$(DIRNAME)-target/Makefile
34 work/build-boot-files.stamp: work/$(DIRNAME)-target/mk/build.mk
35 $(MAKE) -C "work/$(DIRNAME)-target" bootstrapping-files
38 work/$(DIRNAME)-host/Makefile: work/build-boot-files.stamp
39 cd "work/$(DIRNAME)-host" && \
41 --with-iconv-includes=/usr/pkg/include \
42 --with-iconv-libraries=/usr/pkg/lib
45 work/$(DIRNAME)-host/mk/build.mk: files/host-build.mk work/$(DIRNAME)-host/Makefile
48 work/copy-boot-files.stamp: work/$(DIRNAME)-host/mk/build.mk
49 for i in dist-ghcconstants dist-derivedconstants ghcautoconf.h; do \
50 rm -rf "work/$(DIRNAME)-host/includes/$$i" && \
52 "work/$(DIRNAME)-target/includes/$$i" \
53 "work/$(DIRNAME)-host/includes"; \
57 work/build-hc.stamp: work/copy-boot-files.stamp
58 $(MAKE) -C "work/$(DIRNAME)-host"
61 work/build-boot-tarball.stamp: work/build-hc.stamp
62 cd "work/$(DIRNAME)-host" && ../../files/mkboot
65 work/extract-boot-tarball.stamp: work/build-boot-tarball.stamp
66 mkdir -p "work/$(DIRNAME)"
67 $(GNUTAR) -xf "work/$(DIRNAME)-host/boot.tar" -C "work/$(DIRNAME)"
70 work/replace-paths.stamp: work/extract-boot-tarball.stamp
71 cd "work/$(DIRNAME)" && \
73 -e 's#/usr/pkg#[[PREFIX]]#g' \
74 -e 's#'`pwd`'-host#[[GHC_SOURCE_PATH]]#g' \
75 inplace/lib/package.conf.d/*.conf \
76 */package.conf.inplace \
78 */*/*/package-data.mk \
79 */*/*/*/package-data.mk
82 work/pack-hc-pkg.stamp: work/replace-paths.stamp
83 $(GNUTAR) -jcf "work/$(HC_TARNAME)" -C "work" $(DIRNAME)
85 @echo "Done. Upload \"work/$(HC_TARNAME)\" to somewhere."