This goes with the patch for #1839, #1463
[ghc-hetmet.git] / compiler / Makefile
index 568812a..7fb6eea 100644 (file)
@@ -112,7 +112,7 @@ stage_dirs :
            $(MKDIRHIER) stage$(stage)/$$i; \
        done
 
-ifeq "$(stage) $(ghc_ge_603)" "1 YES"
+ifeq "$(stage)" "1"
 UsingHsBoot = YES
 else
 ifneq "$(findstring $(stage), 2 3)" ""
@@ -173,7 +173,7 @@ SRC_HC_OPTS += $(patsubst %, -i$(odir)/%, $(ALL_DIRS))
 SRC_HC_OPTS += -Wall -fno-warn-name-shadowing
 # Turn off orphan warnings, but only if the flag exists (i.e. not if we
 # are building stage 1 and using GHC < 6.3).
-ifneq "$(stage) $(ghc_ge_603)" "1 NO"
+ifneq "$(stage)" "1 NO"
 SRC_HC_OPTS += -fno-warn-orphans
 endif
 
@@ -271,12 +271,16 @@ endif
        @echo "cUSER_WAY_NAMES       = \"$(USER_WAY_NAMES)\"" >> $(CONFIG_HS)
        @echo "cUSER_WAY_OPTS        = \"$(USER_WAY_OPTS)\"" >> $(CONFIG_HS)
        @echo "cDEFAULT_TMPDIR       = \"$(DEFAULT_TMPDIR)\"" >> $(CONFIG_HS)
-       @echo "cDocDir               = \"$(docdir)\""         >> $(CONFIG_HS)
 ifeq "$(RelocatableBuild)" "YES"
        @echo "cRelocatableBuild     = True"                  >> $(CONFIG_HS)
 else
        @echo "cRelocatableBuild     = False"                 >> $(CONFIG_HS)
 endif
+ifeq "$(UseLibFFI)" "YES"
+       @echo "cLibFFI               = True"                  >> $(CONFIG_HS)
+else
+       @echo "cLibFFI               = False"                 >> $(CONFIG_HS)
+endif
        @echo done.
 
 CLEAN_FILES += $(CONFIG_HS)
@@ -563,12 +567,10 @@ SRC_HC_OPTS += -package Cabal
 PKG_DEPENDS += Cabal
 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
 # GHC installation (eg. wxHaskell did this around 6.4).
 SRC_HC_OPTS += -ignore-package lang
-endif
 
 SRC_CC_OPTS += -Iparser -I. -O
 SRC_HC_OPTS += -recomp $(GhcHcOpts) $(GhcStage$(stage)HcOpts)
@@ -590,17 +592,6 @@ prelude/PrimOp_HC_OPTS             = -H80m
 main/ParsePkgConf_HC_OPTS      += -fno-warn-incomplete-patterns
 parser/Parser_HC_OPTS          += -fno-warn-incomplete-patterns
 
-ifeq "$(ghc_ge_603)" "NO"
-# Use -fvia-C since the NCG can't handle the narrow16Int# (and intToInt16#?)
-# primops on all platforms.
-parser/Parser_HC_OPTS          += -fvia-C
-# because the NCG can't handle the 64-bit math in here
-prelude/PrelRules_HC_OPTS      += -fvia-C
-# ByteCodeItbls uses primops that the NCG doesn't support.
-ghci/ByteCodeItbls_HC_OPTS     += -fvia-C
-ghci/ByteCodeLink_HC_OPTS      += -fvia-C -monly-3-regs
-endif
-
 # Careful optimisation of the parser: we don't want to throw everything
 # at it, because that takes too long and doesn't buy much, but we do want
 # to inline certain key external functions, so we instruct GHC not to
@@ -741,16 +732,13 @@ SRC_LD_OPTS += -no-link-chk
 
 INPLACE_SRC  = $(odir)/ghc-inplace.c
 INPLACE_PROG = $(odir)/ghc-inplace$(_way)$(exeext)
+INPLACE_EXTRA_FLAGS = -I$(TOP)/includes
 EXCLUDED_C_SRCS += ghc-inplace.c
 
 CLEAN_FILES += $(INPLACE_SRC)
 
 GHC_PATH=$(FPTOOLS_TOP_ABS)/$(GHC_COMPILER_DIR_REL)/$(GHC_PROG)$(exeext)
 
-ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
-INPLACE_EXTRA_FLAGS = -optc-DWINDOWS
-endif
-
 $(INPLACE_PROG): ghc-inplace.c
        $(SED) -e "s@GHC_PATH@$(GHC_PATH)@g" -e "s@TOP_ABS@$(FPTOOLS_TOP_ABS)@g" < $< > $(INPLACE_SRC)
        $(HC) -cpp $(INPLACE_EXTRA_FLAGS) $(INPLACE_SRC) -o $@
@@ -843,7 +831,10 @@ PACKAGE = ghc
 HIERARCHICAL_LIB = NO
 VERSION = $(ProjectVersion)
 PKG_DEPENDS += base haskell98
-PACKAGE_CPP_OPTS += -DPKG_DEPENDS='$(PKG_DEPENDS)'
+LIB_LD_OPTS += $(foreach pkg,$(PKG_DEPENDS),-package $(pkg))
+# We have to expand each package dependency with its version, which we
+# can do by calling "ghc-pkg list $pkg --simple-output".
+PACKAGE_CPP_OPTS += -DPKG_DEPENDS='$(foreach pkg,$(PKG_DEPENDS),$(shell $(GHC_PKG_INPLACE) latest --global $(pkg)))'
 PACKAGE_CPP_OPTS += -DSTAGE='"$(stage)"'
 
 # Omit Main from the library, the client will want to plug their own Main in