X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2FMakefile;h=4160cdc6d4af62462cc38311e9831f2f1148ef90;hb=f81cdd82f37081696d2c7b20a7749ec3158ae3a4;hp=282ffe7066bcc9f06c1abf8d983cdf45709311f9;hpb=4ddcff11bae7e4c66c3c895b277eb8b2230aea67;p=ghc-hetmet.git diff --git a/ghc/Makefile b/ghc/Makefile index 282ffe7..4160cdc 100644 --- a/ghc/Makefile +++ b/ghc/Makefile @@ -34,13 +34,15 @@ stage2 :: stage3 :: $(MAKE) stage=3 -clean distclean:: - -$(CABAL) clean --distpref dist-stage1 - -$(CABAL) clean --distpref dist-stage2 - -$(CABAL) clean --distpref dist-stage3 - $(RM) -rf stage1-inplace - $(RM) -rf stage2-inplace - $(RM) -rf stage3-inplace +ifeq "$(CLEAN_ALL_STAGES)" "YES" +clean distclean:: clean.stage.1 clean.stage.2 clean.stage.3 +else +clean distclean:: clean.stage.$(stage) +endif + +clean.stage.%: + -$(CABAL) clean --distpref dist-stage$* + $(RM) -rf stage$*-inplace # XXX This should be defined somewhere more central INPLACE_DATA_DIR = $(FPTOOLS_TOP_ABS)/inplace-datadir @@ -82,6 +84,12 @@ BUILD_FLAGS=$(patsubst %, --ghc-option=%, $(EXTRA_HC_OPTS)) # It works because installPackage doesn't actually use ghc-pkg, as there's # no library to register +ifeq "$(stage)" "1" +# GHC 6.9+ can handle cross-package recompilation checking, but +# we don't rely on the bootstrapping compiler being able to do this. +TOUCH_MAIN = $(RM) dist-stage1/build/ghc/ghc-tmp/Main.o +endif + boot.stage.%: $(CABAL) configure --distpref dist-stage$* \ $(INSTALL_DIRS_CONFIGURE_FLAGS) \ @@ -92,6 +100,7 @@ boot.stage.%: --datasubdir=. build.stage.%: + $(TOUCH_MAIN) $(CABAL) build --distpref dist-stage$* $(BUILD_FLAGS) $(INSTALL_PACKAGE) install '$(GHC_PKG_PROG)' 'XXX/package.conf' "" \ $(FPTOOLS_TOP_ABS)/ghc/stage$*-inplace \ @@ -112,16 +121,11 @@ build.stage.%: install: $(INSTALL_PACKAGE) install UNUSED UNUSED '$(DESTDIR)' '$(prefix)' \ '$(prefix)' '$(bindir)' '$(libdir)' \ - '$(libexecdir)' '$(dynlibdir)' '$(libdir)' \ + '$(libexecdir)' '$(dynlibdir)' '$(datadir)' \ '$(docdir)' '$(htmldir)' '$(haddockdir)' \ --distpref dist-stage2 \ $(INSTALL_FLAGS) -# XXX fix: -#binary-dist: -# $(INSTALL_DIR) $(BIN_DIST_DIR)/utils/hsc2hs -# $(INSTALL_DATA) Makefile $(BIN_DIST_DIR)/utils/hsc2hs/ -# $(INSTALL_DATA) hsc2hs.sh $(BIN_DIST_DIR)/utils/hsc2hs/ -# $(INSTALL_DATA) $(INSTALL_DATAS) $(BIN_DIST_DIR)/utils/hsc2hs/ -# $(INSTALL_PROGRAM) $(HS_PROG) $(BIN_DIST_DIR)/utils/hsc2hs/ +include $(TOP)/mk/bindist.mk +EXE_DIST_DIR = dist-stage$(stage)