X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FMakefile;h=b145c604010245d0a0cc3c23a777adfc1e7ba751;hb=b5dbb387d42da93c3fa2976dd70475a9d6c03475;hp=1a61d1fd9c4695fd7d7da8af6c3012023e443150;hpb=addb023e3d85afcf8b6d33d2d246c0934eaa994f;p=ghc-hetmet.git diff --git a/ghc/compiler/Makefile b/ghc/compiler/Makefile index 1a61d1f..b145c60 100644 --- a/ghc/compiler/Makefile +++ b/ghc/compiler/Makefile @@ -86,6 +86,10 @@ WAYS=$(GhcCompilerWays) # - create a link tree. The problem with requiring link trees is that # Windows doesn't support symbolic links. +ifeq "$(stage)" "" +stage=1 +endif + boot :: $(MKDIRHIER) stage$(stage) for i in $(ALL_DIRS); do \ @@ -100,6 +104,8 @@ boot :: # PS: 'ln -s foo baz' takes 'foo' relative to the path to 'baz' # whereas 'cp foo baz' treats the two paths independently. # Hence the "../.." in the ln command line +ifeq "$(stage)" "1" +ifeq "$(ghc_ge_603)" "NO" ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" for i in */*hi-boot*; do \ cp -u -f $$i stage$(stage)/$$i; \ @@ -109,9 +115,7 @@ else $(LN_S) -f ../../$$i stage$(stage)/$$i || true ; \ done endif - -ifeq "$(stage)" "" -stage=1 +endif endif ifeq "$(stage)" "1" @@ -190,7 +194,6 @@ $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk Makefile @echo "cProjectPatchLevel = \"$(ProjectPatchLevel)\"" >> $(CONFIG_HS) @echo "cBooterVersion = \"$(GhcVersion)\"" >> $(CONFIG_HS) @echo "cHscIfaceFileVersion = \"$(HscIfaceFileVersion)\"" >> $(CONFIG_HS) - @echo "cHOSTPLATFORM = \"$(HOSTPLATFORM)\"" >> $(CONFIG_HS) @echo "cTARGETPLATFORM = \"$(TARGETPLATFORM)\"" >> $(CONFIG_HS) @echo "cTARGETOS = \"$(TargetOS_CPP)\"" >> $(CONFIG_HS) @echo "cTARGETARCH = \"$(TargetArch_CPP)\"" >> $(CONFIG_HS) @@ -262,14 +265,11 @@ endif ifeq "$(BootingFromHc)" "YES" # HC files are always from a self-booted compiler bootstrapped = YES -compiling_with_4xx=NO else ifneq "$(findstring $(stage), 2 3)" "" bootstrapped = YES -compiling_with_4xx = NO else bootstrapped = $(shell if (test $(GhcCanonVersion) -ge $(ProjectVersionInt) -a $(GhcPatchLevel) -ge $(ProjectPatchLevel)); then echo YES; else echo NO; fi) -compiling_with_4xx = $(shell if (test $(GhcCanonVersion) -lt 500); then echo YES; else echo NO; fi) endif endif @@ -283,7 +283,7 @@ endif ifeq "$(GhcWithInterpreter) $(bootstrapped)" "YES YES" # Yes, include the interepreter, readline, and Template Haskell extensions -SRC_HC_OPTS += -DGHCI -package template-haskell -package Cabal +SRC_HC_OPTS += -DGHCI -package template-haskell ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" SRC_HC_OPTS += -package unix @@ -317,6 +317,10 @@ EXCLUDED_SRCS += deSugar/DsMeta.hs typecheck/TcSplice.lhs hsSyn/Convert.lhs endif # bootstrapped with interpreter +ifeq "$(bootstrapped)" "YES" +SRC_HC_OPTS += -package Cabal +endif + # ----------------------------------------------- # mkdependC stuff # @@ -403,11 +407,6 @@ ifeq "$(bootstrapped)" "YES" utils/Binary_HC_OPTS = -funbox-strict-fields endif -# 4.08.2's NCG can't cope with Binary -ifeq "$(compiling_with_4xx)" "YES" -utils/Binary_HC_OPTS += -fvia-C -endif - # ByteCodeItbls uses primops that the NCG doesn't support yet. ghci/ByteCodeItbls_HC_OPTS += -fvia-C ghci/ByteCodeLink_HC_OPTS += -fvia-C -monly-3-regs @@ -522,10 +521,17 @@ endif # from mkDependHS. SRC_MKDEPENDHS_OPTS += \ -optdep--exclude-module=Compat.RawSystem \ - -optdep--exclude-module=Data.Version \ - -optdep--exclude-module=Distribution.Package \ + -optdep--exclude-module=Compat.Directory \ + -optdep--exclude-module=Distribution.Compat.ReadP \ + -optdep--exclude-module=Distribution.Extension \ + -optdep--exclude-module=Distribution.GetOpt \ -optdep--exclude-module=Distribution.InstalledPackageInfo \ - -optdep--exclude-module=Distribution.Package + -optdep--exclude-module=Distribution.License \ + -optdep--exclude-module=Distribution.Package \ + -optdep--exclude-module=Distribution.ParseUtils \ + -optdep--exclude-module=Distribution.Setup \ + -optdep--exclude-module=Distribution.Version \ + -optdep--exclude-module=System.Directory.Internals endif SRC_LD_OPTS += -no-link-chk