X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Makefile;h=41e09dd60765e17433ae2064aebd1a76285dff6a;hb=62f6cc1dec4223532fbd15de64db4fb036932944;hp=0fbd8cac180e3d62bda344669834c7ef050d7092;hpb=f9c199a1a2865bdb9e8fb318a48058d7e4bfaf64;p=ghc-hetmet.git diff --git a/Makefile b/Makefile index 0fbd8ca..41e09dd 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ include $(TOP)/mk/boilerplate.mk ifeq "$(BootingFromHc)" "YES" SUBDIRS_BUILD = gmp includes rts compat compiler docs utils driver else -SUBDIRS_BUILD = gmp includes compat utils driver docs compiler rts +SUBDIRS_BUILD = gmp includes compat utils driver docs compiler rts libraries/Cabal/doc endif SUBDIRS = gmp includes compat utils driver docs rts libraries compiler libraries/Cabal/doc @@ -162,6 +162,9 @@ else INSTALL_STAGE = endif +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install + # Same as default rule, but we pass $(INSTALL_STAGE) to $(MAKE) too install :: check-packages @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \ @@ -248,10 +251,21 @@ binary-dist:: -rm -rf $(BIN_DIST_DIR) -$(RM) $(BIN_DIST_DIR).tar.gz +# When making bindists, we can have problems if some things (e.g. ghc-pkg) +# are compiled with the bootstrapping compiler and some (e.g. the stage 2 +# compiler) with the stage1 compiler. See #1860 for an example. +# Thus we rebuild the utils with stage 1 here. This is a bit unpleasant, +# as binary-dist really shouldn't actually build anything, but it works. +binary-dist:: + $(MAKE) -C utils clean + $(MAKE) -C utils UseStage1=YES boot + $(MAKE) -C utils UseStage1=YES + ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" binary-dist:: $(MAKE) prefix=$(BIN_DIST_DIR) install + $(MAKE) prefix=$(BIN_DIST_DIR) install-docs binary-dist:: cd $(BIN_DIST_DIR) && ../distrib/prep-bin-dist-mingw @@ -302,9 +316,7 @@ binary-dist:: $(MAKE) -C gmp binary-dist DOING_BIN_DIST=YES $(MAKE) -C includes binary-dist DOING_BIN_DIST=YES $(MAKE) -C compiler binary-dist DOING_BIN_DIST=YES $(INSTALL_STAGE) - # Setting _way here is a nasty hack to make sure we get - # libHSrts*.a etc rather than just libHSrts.a - $(MAKE) -C rts binary-dist DOING_BIN_DIST=YES _way='*' + $(MAKE) -C rts binary-dist DOING_BIN_DIST=YES $(MAKE) -C driver binary-dist DOING_BIN_DIST=YES $(MAKE) -C utils binary-dist DOING_BIN_DIST=YES $(MAKE) -C docs binary-dist DOING_BIN_DIST=YES @@ -331,6 +343,8 @@ binary-dist:: echo "GhcHasReadline = $(GhcHasReadline)" >> $(VARFILE) echo "BootingFromHc = $(BootingFromHc)" >> $(VARFILE) echo "XMLDocWays = $(XMLDocWays)" >> $(VARFILE) + # We won't actually use xsltproc, but we need to know if it's "" or not + echo "XSLTPROC = $(XSLTPROC)" >> $(VARFILE) echo "TARGETPLATFORM = $(TARGETPLATFORM)" >> $(VARFILE) echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(VARFILE) @@ -457,7 +471,7 @@ dist :: && for i in $(SRC_DIST_DIRS); do mkdir $$i; (cd $$i && lndir $(FPTOOLS_TOP_ABS)/$$i ); done \ && for i in $(SRC_DIST_FILES); do $(LN_S) $(FPTOOLS_TOP_ABS)/$$i .; done \ && $(MAKE) distclean \ - && if test -f $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then $(CP) $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; fi \ + && if test -f $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then $(CP) $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; mv libraries/haskell-src/Language/Haskell/Parser.ly libraries/haskell-src/Language/Haskell/Parser.ly.source ; fi \ && $(RM) -rf compiler/stage[123] mk/build.mk \ && $(FIND) $(SRC_DIST_DIRS) \( -name _darcs -o -name SRC -o -name "autom4te*" -o -name "*~" -o -name ".cvsignore" -o -name "\#*" -o -name ".\#*" -o -name "log" -o -name "*-SAVE" -o -name "*.orig" -o -name "*.rej" \) -print | xargs $(RM) -rf \ )