ghc_USES_CABAL = YES
ghc_PACKAGE = ghc-bin
-ghc_stage1_HC_OPTS = $(GhcStage1HcOpts)
-ghc_stage2_HC_OPTS = $(GhcStage2HcOpts)
-ghc_stage3_HC_OPTS = $(GhcStage3HcOpts)
+ghc_stage1_MORE_HC_OPTS = $(GhcStage1HcOpts)
+ghc_stage2_MORE_HC_OPTS = $(GhcStage2HcOpts)
+ghc_stage3_MORE_HC_OPTS = $(GhcStage3HcOpts)
ghc_stage2_CC_OPTS = -Iincludes
ghc_stage3_CC_OPTS = -Iincludes
ghc_stage3_MKDEPENDC_OPTS = -DMAKING_GHC_BUILD_SYSTEM_DEPENDENCIES
ifeq "$(GhcWithInterpreter)" "YES"
-ghc_stage2_HC_OPTS += -DGHCI
-ghc_stage3_HC_OPTS += -DGHCI
+ghc_stage2_MORE_HC_OPTS += -DGHCI
+ghc_stage3_MORE_HC_OPTS += -DGHCI
endif
ifeq "$(GhcDebugged)" "YES"
-ghc_HC_OPTS += -debug
+ghc_stage1_MORE_HC_OPTS += -debug
+ghc_stage2_MORE_HC_OPTS += -debug
+ghc_stage3_MORE_HC_OPTS += -debug
endif
ifeq "$(GhcDynamic)" "YES"
-ghc_stage2_HC_OPTS += -dynamic
-ghc_stage3_HC_OPTS += -dynamic
+ghc_stage2_MORE_HC_OPTS += -dynamic
+ghc_stage3_MORE_HC_OPTS += -dynamic
endif
ifeq "$(GhcThreaded)" "YES"
# Use threaded RTS with GHCi, so threads don't get blocked at the prompt.
-ghc_stage2_HC_OPTS += -threaded
-ghc_stage3_HC_OPTS += -threaded
+ghc_stage2_MORE_HC_OPTS += -threaded
+ghc_stage3_MORE_HC_OPTS += -threaded
endif
ifeq "$(GhcProfiled)" "YES"
-ghc_stage2_HC_OPTS += -prof
+ghc_stage2_MORE_HC_OPTS += -prof
endif
ghc_stage1_MODULES = Main
ghc_stage3_PROG = ghc-stage3$(exeext)
# ToDo: perhaps use ghc-cabal to configure ghc-bin
-ghc_stage1_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage1_VERSION)
-ghc_stage2_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage2_VERSION)
-ghc_stage3_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage3_VERSION)
-ghc_stage2_HC_OPTS += -package haskeline
-ghc_stage3_HC_OPTS += -package haskeline
+ghc_stage1_MORE_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage1_VERSION)
+ghc_stage2_MORE_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage2_VERSION)
+ghc_stage3_MORE_HC_OPTS += -package $(compiler_PACKAGE)-$(compiler_stage3_VERSION)
+ghc_stage2_MORE_HC_OPTS += -package haskeline
+ghc_stage3_MORE_HC_OPTS += -package haskeline
ghc_language_extension_flags = -XCPP \
-XPatternGuards \
-XUnboxedTuples \
-XFlexibleInstances \
-XMagicHash
-ghc_stage1_HC_OPTS += $(ghc_language_extension_flags)
-ghc_stage2_HC_OPTS += $(ghc_language_extension_flags)
-ghc_stage3_HC_OPTS += $(ghc_language_extension_flags)
+ghc_stage1_MORE_HC_OPTS += $(ghc_language_extension_flags)
+ghc_stage2_MORE_HC_OPTS += $(ghc_language_extension_flags)
+ghc_stage3_MORE_HC_OPTS += $(ghc_language_extension_flags)
ghc_stage1_SHELL_WRAPPER = YES
ghc_stage2_SHELL_WRAPPER = YES
# configure-time
# - SRC_HC_OPTS source-tree-wide options from build.mk
# (optimisation, heap settings)
-# - libraries/base_HC_OPTS options from libraries/base for all ways
+# - libraries/base_HC_OPTS options from Cabal for libraries/base
+# for all ways
+# - libraries/base_MORE_HC_OPTS options from elsewhere in the build
+# system for libraries/base for all ways
# - libraries/base_v_HC_OPTS options from libraries/base for way v
# - WAY_v_HC_OPTS options for this way
# - EXTRA_HC_OPTS options from the command-line
$$(foreach pkg,$$($1_$2_DEPS),-package $$(pkg)) \
$$(if $$(findstring YES,$$($1_$2_SplitObjs)),$$(if $$(findstring dyn,$3),,-split-objs),) \
$$($1_$2_HC_OPTS) \
+ $$($1_$2_MORE_HC_OPTS) \
$$($1_$2_EXTRA_HC_OPTS) \
$$($1_$2_$3_HC_OPTS) \
$$($$(basename $$<)_HC_OPTS) \
$1_$2_HC_PKGCONF = -package-conf $$(BOOTSTRAPPING_CONF)
$1_$2_GHC_PKG_OPTS = --package-conf=$$(BOOTSTRAPPING_CONF)
$1_$2_CONFIGURE_OPTS += --package-db=$$(TOP)/$$(BOOTSTRAPPING_CONF)
-$1_$2_HC_OPTS += -no-user-package-conf
+$1_$2_MORE_HC_OPTS += -no-user-package-conf
ifeq "$(ghc_ge_613)" "YES"
-$1_$2_HC_OPTS += -rtsopts
+$1_$2_MORE_HC_OPTS += -rtsopts
endif
else
$1_$2_ghc_ge_613 = YES
$1_$2_HC_MK_DEPEND = $$(GHC_STAGE1)
$1_$2_HC_MK_DEPEND_DEP = $$($1_$2_HC_MK_DEPEND)
$1_$2_HC_DEP = $$($1_$2_HC)
-$1_$2_HC_OPTS += -no-user-package-conf
-$1_$2_HC_OPTS += -rtsopts
+$1_$2_MORE_HC_OPTS += -no-user-package-conf
+$1_$2_MORE_HC_OPTS += -rtsopts
endif
# Useful later