1 DIRNAME := $(patsubst %-src.tar.bz2,%,$(notdir $(SRCPATH)))
4 HC_TARNAME ?= $(DIRNAME)-boot-$(PLATFORM).tar.bz2
6 all: work/pack-hc-pkg.stamp
8 work/extract-src.stamp:
9 $(GNUTAR) -jxf $(SRCPATH) -C work
12 work/patch-src.stamp: work/extract-src.stamp
13 @echo "Executing an inner shell."
14 @echo "Apply some patches to the source tree if you want to, then exit."
15 @echo "(pwd: `pwd`/$(DIRNAME))"
16 @cd "work/$(DIRNAME)" && "$(SHELL)"
19 work/duplicate-target.stamp: work/patch-src.stamp
20 cp -rp "work/$(DIRNAME)" "work/$(DIRNAME)-target"
23 work/rename-host.stamp: work/duplicate-target.stamp
24 mv "work/$(DIRNAME)" "work/$(DIRNAME)-host"
27 work/$(DIRNAME)-target/Makefile: work/rename-host.stamp
28 cd "work/$(DIRNAME)-target" && \
29 ./configure -C --enable-hc-boot
32 work/$(DIRNAME)-target/mk/build.mk: files/target-build.mk work/$(DIRNAME)-target/Makefile
35 work/build-boot-files.stamp: work/$(DIRNAME)-target/mk/build.mk
36 $(MAKE) -C "work/$(DIRNAME)-target" bootstrapping-files
39 work/$(DIRNAME)-host/Makefile: work/build-boot-files.stamp
40 cd "work/$(DIRNAME)-host" && \
42 --with-iconv-includes=/usr/pkg/include \
43 --with-iconv-libraries=/usr/pkg/lib
46 work/$(DIRNAME)-host/mk/build.mk: files/host-build.mk work/$(DIRNAME)-host/Makefile
49 work/copy-boot-files.stamp: work/$(DIRNAME)-host/mk/build.mk
50 for i in dist-ghcconstants dist-derivedconstants ghcautoconf.h; do \
51 rm -rf "work/$(DIRNAME)-host/includes/$$i" && \
53 "work/$(DIRNAME)-target/includes/$$i" \
54 "work/$(DIRNAME)-host/includes"; \
58 work/build-hc.stamp: work/copy-boot-files.stamp
59 $(MAKE) -C "work/$(DIRNAME)-host"
62 work/build-boot-tarball.stamp: work/build-hc.stamp
63 cd "work/$(DIRNAME)-host" && ../../files/mkboot
66 work/extract-boot-tarball.stamp: work/build-boot-tarball.stamp
67 mkdir -p "work/$(DIRNAME)"
68 $(GNUTAR) -xf "work/$(DIRNAME)-host/boot.tar" -C "work/$(DIRNAME)"
71 work/replace-paths.stamp: work/extract-boot-tarball.stamp
72 cd "work/$(DIRNAME)" && \
74 -e 's#/usr/pkg#[[PREFIX]]#g' \
75 -e 's#'`pwd`'-host#[[GHC_SOURCE_PATH]]#g' \
76 inplace/lib/package.conf.d/*.conf \
77 */package.conf.inplace \
79 */*/*/package-data.mk \
80 */*/*/*/package-data.mk
83 work/pack-hc-pkg.stamp: work/replace-paths.stamp
84 $(GNUTAR) -jcf "work/$(HC_TARNAME)" -C "work" $(DIRNAME)
86 @echo "Done. Upload \"work/$(HC_TARNAME)\" to somewhere."