Support for using libffi to implement FFI calls in GHCi (#631)
[ghc-hetmet.git] / compiler / Makefile
index ceb47b0..bc7099d 100644 (file)
@@ -95,15 +95,8 @@ ifeq "$(stage)" ""
 stage=1
 endif
 
-ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
-ifeq "$(stage)" "1"
+# XXX DQ is now the same on all platforms, so get rid of it
 DQ = \"
-else
-DQ = \\\"
-endif
-else
-DQ = \"
-endif
 
 .DUMMY: stage_dir
 stage_dirs :
@@ -112,7 +105,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 +166,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
 
@@ -425,6 +418,11 @@ ALL_DIRS += javaGen
 SRC_HC_OPTS += -DJAVA
 endif
 
+ifeq ($(UseLibFFI),YES)
+SRC_HC_OPTS += -DUSE_LIBFFI
+SRC_HSC2HS_OPTS += -DUSE_LIBFFI
+endif
+
 ifeq "$(BootingFromHc)" "YES"
 # HC files are always from a self-booted compiler
 bootstrapped = YES
@@ -567,12 +565,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)
@@ -594,17 +590,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
@@ -617,7 +602,7 @@ endif
 
 utils/Digraph_HC_OPTS          = -fglasgow-exts 
 
-basicTypes/SrcLoc_HC_OPTS      = -funbox-strict-fields
+# basicTypes/SrcLoc_HC_OPTS    = -funbox-strict-fields
 
 # We always optimise some low-level modules, otherwise performance of
 # a non-optimised compiler is severely affected.