[project @ 2003-12-10 14:15:16 by simonmar]
[ghc-hetmet.git] / ghc / compiler / Makefile
index 04c8d8b..ec9eb41 100644 (file)
@@ -216,7 +216,6 @@ ifeq ($(GhcWithIlx),YES)
 endif
        @echo "cEnableWin32DLLs      = \"$(EnableWin32DLLs)\"" >> $(CONFIG_HS)
        @echo "cCONTEXT_DIFF         = \"$(CONTEXT_DIFF)\"" >> $(CONFIG_HS)
-       @echo "cHaveLibGmp           = \"$(HaveLibGmp)\"" >> $(CONFIG_HS)
        @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)
@@ -232,7 +231,7 @@ CLEAN_FILES += $(CONFIG_HS)
 ALL_DIRS = \
   utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn \
   specialise simplCore stranal stgSyn simplStg codeGen absCSyn main \
-  profiling parser cprAnalysis compMan ndpFlatten cbits
+  profiling parser cprAnalysis compMan ndpFlatten cbits iface
 
 # Make sure we include Config.hs even if it doesn't exist yet...
 ALL_SRCS += $(CONFIG_HS)
@@ -345,7 +344,9 @@ endif
 #      The standard suffix rule for compiling a Haskell file
 #      adds these flags to the command line
 
-prelude/PrimOp_HC_OPTS                 = -no-recomp -H80m
+# There used to be a -no-recomp flag on PrimOp, but why?
+# It's an expensive module to recompile!
+prelude/PrimOp_HC_OPTS                 = -H80m
 
 # because the NCG can't handle the 64-bit math in here
 prelude/PrelRules_HC_OPTS      = -fvia-C
@@ -353,13 +354,13 @@ prelude/PrelRules_HC_OPTS = -fvia-C
 main/ParsePkgConf_HC_OPTS      += -fno-warn-incomplete-patterns
 # Use -fvia-C since the NCG can't handle the narrow16Int# (and intToInt16#?)
 # primops on all platforms.
-parser/Parser_HC_OPTS          += -Onot -fno-warn-incomplete-patterns -fvia-C
+parser/Parser_HC_OPTS          += -fno-warn-incomplete-patterns -fvia-C
 
-# The latest GHC version doesn't have a -K option yet, and it doesn't
-# seem to be necessary anymore for the modules below.
-ifeq "$(compiling_with_4xx)" "YES"
-parser/Parser_HC_OPTS          += -K2m
-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
+# throw away inlinings as it would normally do in -Onot mode:
+parser/Parser_HC_OPTS          += -Onot -fno-ignore-interface-pragmas
 
 ifeq "$(HOSTPLATFORM)" "hppa1.1-hp-hpux9"
 rename/RnMonad_HC_OPTS                 =  -O2 -O2-for-C
@@ -367,6 +368,8 @@ endif
 
 utils/Digraph_HC_OPTS          = -fglasgow-exts 
 
+basicTypes/SrcLoc_HC_OPTS      = -funbox-strict-fields
+
 ifeq "$(bootstrapped)" "YES"
 utils/Binary_HC_OPTS           = -funbox-strict-fields
 endif
@@ -568,6 +571,9 @@ MAINTAINER_CLEAN_FILES += parser/Parser.info main/ParsePkgConf.info
 MKDEPENDHS_SRCS =
 MKDEPENDC_SRCS =
 
+# Make doesn't work this out for itself, it seems
+parser/Parser.y : parser/Parser.y.pp
+
 include $(TOP)/mk/target.mk
 
 # -----------------------------------------------------------------------------