X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Makefile;h=d41c50194857a42fa655d3156e0ba40f9a2a732b;hb=351afa5ad7cc7012d5460c126cad4999e457a30d;hp=40e26abe45e61d00b02ce1259c3b202c06405a10;hpb=ef3998bc5dd419e93c97202f1a0909bf3cf459ff;p=ghc-hetmet.git diff --git a/Makefile b/Makefile index 40e26ab..d41c501 100644 --- a/Makefile +++ b/Makefile @@ -101,7 +101,7 @@ ifeq "$(BIN_DIST)" "" echo "WARNING: To run the binary-dist target, you need to set BIN_DIST=1 in your build.mk" && exit 1 endif -rm -rf $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) - -rm -f $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME).tar.gz + -$(RM) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME).tar.gz @for i in $(BIN_DIST_DIRS); do \ if test -d "$$i"; then \ echo $(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM); \ @@ -217,14 +217,15 @@ binary-pack:: ( cd $(BIN_DIST_TMPDIR); $(TAR) chzf $(BIN_DIST_NAME).tar.gz $(BIN_DIST_NAME) ) ifneq "$(way)" "" +.PHONY: package-way-dist package-way-dist:: - ( cd $(BIN_DIST_TMPDIR); find $(BIN_DIST_NAME)/ \( -name "*$(_way).a" -o -name "*.$(way_)hi" \) -print | xargs tar cvf $(BIN_DIST_TMPDIR)/ghc-$(ProjectVersion)-$(way)-$(TARGETPLATFORM).tar ) + ( cd $(BIN_DIST_TMPDIR); $(FIND) $(BIN_DIST_NAME)/ \( -name "*$(_way).a" -o -name "*.$(way_)hi" \) -print | xargs tar cvf $(BIN_DIST_TMPDIR)/ghc-$(ProjectVersion)-$(way)-$(TARGETPLATFORM).tar ) gzip $(BIN_DIST_TMPDIR)/ghc-$(ProjectVersion)-$(way)-$(TARGETPLATFORM).tar endif ifneq "$(way)" "" remove-way-dist:: - ( cd $(BIN_DIST_TMPDIR); find $(BIN_DIST_NAME)/ \( -name "*$(_way).a" -o -name "*.$(way_)hi" \) -print -exec rm -f {} \; ) + ( cd $(BIN_DIST_TMPDIR); $(FIND) $(BIN_DIST_NAME)/ \( -name "*$(_way).a" -o -name "*.$(way_)hi" \) -print -exec $(RM) {} \; ) endif binary-dist:: @@ -266,7 +267,7 @@ dist :: distclean dist :: -rm -rf $(SRC_DIST_DIR) - -rm -f $(SRC_DIST_NAME).tar.gz + -$(RM) $(SRC_DIST_NAME).tar.gz mkdir $(SRC_DIST_DIR) mkdir $(SRC_DIST_DIR)/mk ( cd $(FPTOOLS_TOP_ABS); $(FIND) $(SRC_DIST_DIRS) -type d \( -name CVS -prune -o -name SRC -prune -o -print \) | sed -e 's!.*!mkdir "$(SRC_DIST_DIR)/&"!' | sh ) @@ -275,7 +276,7 @@ dist :: # Automatic generation of a MANIFEST file for a source distribution # tree that is ready to go. dist-manifest :: - cd $(SRC_DIST_DIR); $(FIND) . \( -type l -o -type f \) -exec ls -lLG {} \; | sed -e 's/\.\///' > MANIFEST.tmp ; mv MANIFEST.tmp MANIFEST + cd $(SRC_DIST_DIR); $(FIND) . \( -type l -o -type f \) -exec ls -lLG {} \; | sed -e 's/\.\///' > MANIFEST dist-package :: dist-package-tar-gz @@ -294,21 +295,22 @@ dist-package-zip :: hc-file-bundle : project-check $(RM) -r $(ProjectNameShort)-$(ProjectVersion) $(LN_S) . $(ProjectNameShort)-$(ProjectVersion) - find $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler \ + $(FIND) $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler \ $(ProjectNameShort)-$(ProjectVersion)/ghc/driver \ - $(ProjectNameShort)-$(ProjectVersion)/ghc/lib \ + $(ProjectNameShort)-$(ProjectVersion)/libraries \ $(ProjectNameShort)-$(ProjectVersion)/hslibs \ \( -name "*.hc" -o -name "*_hsc.[ch]" -o -name "*_stub.[ch]" \) -print > hc-files-to-go - find $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler \ - $(ProjectNameShort)-$(ProjectVersion)/ghc/driver \ - $(ProjectNameShort)-$(ProjectVersion)/ghc/lib \ - $(ProjectNameShort)-$(ProjectVersion)/hslibs \ - -name "*.hsc" -print | sed 's/hsc$$/hs/g' >> hc-files-to-go + for f in `$(FIND) $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler $(ProjectNameShort)-$(ProjectVersion)/ghc/driver $(ProjectNameShort)-$(ProjectVersion)/libraries $(ProjectNameShort)-$(ProjectVersion)/hslibs -name "*.hsc" -print` ""; do \ + if test "x$$f" != "x" && test -e `echo "$$f" | sed 's/hsc$$/hs/g'`; then \ + echo `echo "$$f" | sed 's/hsc$$/hs/g' ` >> hc-files-to-go ; \ + fi; \ + done; echo $(ProjectNameShort)-$(ProjectVersion)/libraries/base/GHC/PrimopWrappers.hs >> hc-files-to-go echo $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler/*.hs-incl >> hc-files-to-go echo $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler/parser/Parser.hs >> hc-files-to-go + echo $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler/parser/ParserCore.hs >> hc-files-to-go echo $(ProjectNameShort)-$(ProjectVersion)/ghc/compiler/main/ParsePkgConf.hs >> hc-files-to-go - echo $(ProjectNameShort)-$(ProjectVersion)/hslibs/hssource/HsParser.hs >> hc-files-to-go + echo $(ProjectNameShort)-$(ProjectVersion)/libraries/haskell-src/Language/Haskell/Parser.hs >> hc-files-to-go tar czf $(ProjectNameShort)-$(ProjectVersion)-$(TARGETPLATFORM)-hc.tar.gz `cat hc-files-to-go` CLEAN_FILES += hc-files-to-go *-hc.tar.gz @@ -343,6 +345,18 @@ boot :: @echo "Please use \`make all' only from the top-level, or \`make boot' followed" @echo "by \`make all' in an individual project subdirectory (ghc, hslibs etc.)." +bootstrap : bootstrap2 +bootstrap2 : all stage2 +bootstrap3 : bootstrap2 stage3 + +stage2 : + $(MAKE) -C ghc/compiler boot stage=2 + $(MAKE) -C ghc/compiler stage=2 + +stage3 : + $(MAKE) -C ghc/compiler boot stage=3 + $(MAKE) -C ghc/compiler stage=3 + install :: @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \ for i in $(filter-out $(ProjectsDontInstall), $(SUBDIRS)); do \