# Set compilation flags that additionally depend on a particular way
-define distdir-way-opts # args: $1 = dir, $2 = distdir, $3 = way
+define distdir-way-opts # args: $1 = dir, $2 = distdir, $3 = way, $4 = stage
# Options for a Haskell compilation:
# - CONF_HC_OPTS source-tree-wide options, selected at
$$(foreach opt,$$($1_$2_CPP_OPTS),-optP$$(opt)) \
$$(if $$($1_PACKAGE),-optP-include -optP$1/$2/build/autogen/cabal_macros.h) \
$$(foreach pkg,$$($1_$2_DEPS),-package $$(pkg)) \
- $$(if $$(findstring YES,$$($1_$2_SplitObjs)),-split-objs,) \
+ $$(if $$(findstring YES,$$($1_$2_SplitObjs)),$$(if $$(findstring dyn,$3),,-split-objs),) \
$$($1_$2_HC_OPTS) \
$$($1_$2_EXTRA_HC_OPTS) \
$$($1_$2_$3_HC_OPTS) \
- $$($$*_HC_OPTS) \
+ $$($$(basename $$<)_HC_OPTS) \
$$(EXTRA_HC_OPTS)
# For real Haskell compilations we add -hidir etc.
-odir $1/$2/build -hidir $1/$2/build -stubdir $1/$2/build \
-hisuf $$($3_hisuf) -osuf $$($3_osuf) -hcsuf $$($3_hcsuf)
-ifeq "$3" "0"
+ifeq "$4" "0"
# This is a bit of a hack.
# If we are compiling something with the bootstrapping compiler on
# cygwin, and it uses an include file from the rts (say), then we
--cflag=-D__GLASGOW_HASKELL__=$$(ProjectVersionInt) \
$$(foreach opt,$$($1_$2_DIST_CC_OPTS),'--cflag=$$(opt)') \
$$(foreach opt,$$($1_$2_DIST_LD_OPTS),'--lflag=$$(opt)') \
- $$($$*_HSC2HS_OPTS) \
+ $$($$(basename $$<)_HSC2HS_OPTS) \
$$(EXTRA_HSC2HS_OPTS)
$1_$2_$3_ALL_CC_OPTS = \
$$(WAY_$3_CC_OPTS) \
$$($1_$2_DIST_CC_OPTS) \
$$($1_$2_$3_CC_OPTS) \
- $$($$*_CC_OPTS) \
+ $$($$(basename $$<)_CC_OPTS) \
$$(EXTRA_CC_OPTS)
$1_$2_$3_GHC_CC_OPTS = \