X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FMakefile;h=69fd1fda8fa7f9c470f558c3dc8b681cfc4fd5ea;hb=e38496fa2f7b8d7f6541677ac91149562f6f19ae;hp=0d8d8c7c6cecfa6bd637930aee14b8000524b373;hpb=5eff59e17536156a02affc3c4de462f5e61e16c5;p=ghc-hetmet.git diff --git a/compiler/Makefile b/compiler/Makefile index 0d8d8c7..69fd1fd 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -124,7 +124,8 @@ ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" done else for i in */*hi-boot*; do \ - $(LN_S) -f ../../$$i stage$(stage)/$$i || true ; \ + ($(RM) -f stage$(stage)/$$i \ + && $(LN_S) ../../$$i stage$(stage)/$$i) || true ; \ done endif endif @@ -396,7 +397,7 @@ else ifneq "$(findstring $(stage), 2 3)" "" bootstrapped = YES else -bootstrapped = $(shell if (test $(GhcCanonVersion) -eq $(ProjectVersionInt) -a $(GhcPatchLevel) -eq $(ProjectPatchLevel)); then echo YES; else echo NO; fi) +bootstrapped = NO endif endif @@ -515,6 +516,16 @@ SRC_HC_OPTS += -package Cabal PKG_DEPENDS += Cabal endif +# We use Text.Regex which is in regex-compat with GHC 6.6+ +ifeq "$(bootstrapped)" "YES" +SRC_HC_OPTS += -package regex-compat +PKG_DEPENDS += regex-compat +else +ifeq "$(ghc_ge_605)" "YES" +SRC_HC_OPTS += -package regex-compat +endif +endif + ifeq "$(ghc_ge_603)" "YES" # Ignore lang, to avoid potential clash with the Generics module if # lang happens to be a dependency of some exposed package in the local @@ -567,18 +578,14 @@ utils/Digraph_HC_OPTS = -fglasgow-exts basicTypes/SrcLoc_HC_OPTS = -funbox-strict-fields -ifeq "$(bootstrapped)" "YES" -utils/Binary_HC_OPTS = -funbox-strict-fields -endif - # We always optimise some low-level modules, otherwise performance of # a non-optimised compiler is severely affected. main/BinIface_HC_OPTS += -O -utils/Binary_HC_OPTS += -O +utils/Binary_HC_OPTS += -O -funbox-strict-fields utils/FastMutInt_HC_OPTS += -O utils/Encoding_HC_OPTS += -O -utils/StringBuffer_HC_OPTS += -O -utils/FastString_HC_OPTS += -O +utils/StringBuffer_HC_OPTS += -O -funbox-strict-fields +utils/FastString_HC_OPTS += -O -funbox-strict-fields # ---- Profiling ---- #simplCore/Simplify_HC_OPTS = -auto-all @@ -639,6 +646,18 @@ ifneq "$(BootingFromHc)" "YES" depend :: $(PRIMOP_BITS) endif +# This is an ugly hack: we need stage1/$(PLATFORM_H) built before we +# preprocess primops.txt.pp, but we don't want to just add that +# dependency because we don't want $(PLATFORM_H) built during normal +# operations, because we don't have have dependencies from the .hs +# sources on it, and we don't want those dependencies because that +# would cause everything to be rebuilt every time the Makefile +# changed. So here we add the required dependency only when making +# boot or depend: +ifneq "$(findstring boot, $(MAKECMDGOALS))$(findstring depend, $(MAKECMDGOALS))" "" +prelude/primops.txt.pp : stage1/$(PLATFORM_H) +endif + primop-data-decl.hs-incl: prelude/primops.txt $(GENPRIMOP) --data-decl < $< > $@ primop-tag.hs-incl: prelude/primops.txt @@ -690,7 +709,7 @@ $(odir)/ghc-inplace : $(GHC_PROG) chmod 755 $@ ghc-inplace : stage1/ghc-inplace - $(LN_S) -f $< $@ + $(RM) -f $@ && $(LN_S) $< $@ ifeq "$(stage)" "1" CLEAN_FILES += ghc-inplace