soext='.dylib'
CFLAGS="$CFLAGS -m32"
LDFLAGS="$LDFLAGS -m32"
- SRC_CC_OPTS="$SRC_CC_OPTS -m32"
- SRC_LD_OPTS="$SRC_LD_OPTS -m32"
+ CONF_CC_OPTS="$CONF_CC_OPTS -m32"
+ CONF_LD_OPTS="$CONF_LD_OPTS -m32"
;;
x86_64-apple-darwin)
soext='.dylib'
CFLAGS="$CFLAGS -m64"
LDFLAGS="$LDFLAGS -m64"
- SRC_CC_OPTS="$SRC_CC_OPTS -m64"
- SRC_LD_OPTS="$SRC_LD_OPTS -m64"
+ CONF_CC_OPTS="$CONF_CC_OPTS -m64"
+ CONF_LD_OPTS="$CONF_LD_OPTS -m64"
;;
esac
dnl ** figure out how to invoke cpp directly (gcc -E is no good)
AC_PROG_CPP
-AC_SUBST(SRC_CC_OPTS)
-AC_SUBST(SRC_LD_OPTS)
+AC_SUBST(CONF_CC_OPTS)
+AC_SUBST(CONF_LD_OPTS)
dnl ** figure out how to do context diffs
FP_PROG_CONTEXT_DIFF
endif
endif
-# default C compiler and linker flags
-SRC_CC_OPTS = @SRC_CC_OPTS@
-SRC_LD_OPTS = @SRC_LD_OPTS@
+# C compiler and linker flags from configure (e.g. -m<blah> to select
+# correct C compiler backend).
+CONF_CC_OPTS = @CONF_CC_OPTS@
+CONF_LD_OPTS = @CONF_LD_OPTS@
ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
-SRC_CC_OPTS += -G0
+CONF_CC_OPTS += -G0
endif
SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS)))
$1_$2_DEP_INCLUDE_DIRS_FLAG = -I
endif
-$1_$2_BUILD_CC_OPTS = \
+$1_$2_DIST_CC_OPTS = \
+ $$(CONF_CC_OPTS) \
$$(SRC_CC_OPTS) \
$$($1_CC_OPTS) \
$$(foreach dir,$$(filter-out /%,$$($1_$2_INCLUDE_DIRS)),-I$1/$$(dir)) \
$$(foreach dir,$$($1_$2_DEP_INCLUDE_DIRS),$$($1_$2_DEP_INCLUDE_DIRS_FLAG)$$(dir)) \
$$($1_$2_DEP_CC_OPTS)
-$1_$2_BUILD_LD_OPTS = \
+$1_$2_DIST_LD_OPTS = \
+ $$(CONF_LD_OPTS) \
$$(SRC_LD_OPTS) \
$$($1_LD_OPTS) \
$$($1_$2_LD_OPTS) \
$$($1_$2_DEP_LD_OPTS)
# c.f. Cabal's Distribution.Simple.GHC.ghcOptions
-$1_$2_BUILD_HC_OPTS = \
+$1_$2_DIST_HC_OPTS = \
+ $$(CONF_HC_OPTS) \
$$(SRC_HC_OPTS) \
$$($1_HC_OPTS) \
$$($1_$2_HC_PKGCONF) \
# Options for a Haskell compilation:
# - SRC_HC_OPTS source-tree-wide options
+# (optimisation, heap settings)
+# - CONF_HC_OPTS source-tree-wide options, selected at
+# configure-time
+# - libraries/base_HC_OPTS options from 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
-# - libraries/base_BUILD_HC_OPTS options from the build system for this dir
+# - EXTRA_HC_OPTS options from the command-line
# - -Idir1 -Idir2 ... include-dirs from this package
# - -odir/-hidir/-stubdir put the output files under $3/build
# - -osuf/-hisuf/-hcsuf suffixes for the output files in this way
-# - EXTRA_HC_OPTS options from the command-line
$1_$2_$3_MOST_HC_OPTS = \
$$(WAY_$3_HC_OPTS) \
- $$($1_$2_BUILD_HC_OPTS) \
+ $$($1_$2_DIST_HC_OPTS) \
$$($1_$2_$3_HC_OPTS) \
$$($$*_HC_OPTS) \
$$(EXTRA_HC_OPTS)
$1_$2_$3_ALL_HSC2HS_OPTS = \
--cc=$$(WhatGccIsCalled) \
--ld=$$(WhatGccIsCalled) \
+ $$(CONF_HSC2HS_OPTS) \
$$(SRC_HSC2HS_OPTS) \
$$(WAY_$3_HSC2HS_OPTS) \
--cflag=-D__GLASGOW_HASKELL__=$$(ProjectVersionInt) \
- $$(foreach opt,$$($1_$2_BUILD_CC_OPTS),'--cflag=$$(opt)') \
- $$(foreach opt,$$($1_$2_BUILD_LD_OPTS),'--lflag=$$(opt)') \
+ $$(foreach opt,$$($1_$2_DIST_CC_OPTS),'--cflag=$$(opt)') \
+ $$(foreach opt,$$($1_$2_DIST_LD_OPTS),'--lflag=$$(opt)') \
$$($$*_HSC2HS_OPTS) \
$$(EXTRA_HSC2HS_OPTS)
$1_$2_$3_ALL_CC_OPTS = \
$$(WAY_$3_CC_OPTS) \
- $$($1_$2_BUILD_CC_OPTS) \
+ $$($1_$2_DIST_CC_OPTS) \
$$($1_$2_$3_CC_OPTS) \
$$($$*_CC_OPTS) \
$$(EXTRA_CC_OPTS)
$$($1_$2_$3_MOST_HC_OPTS)
$1_$2_$3_ALL_AS_OPTS = \
+ $$(CONF_AS_OPTS) \
$$(SRC_AS_OPTS)
$$(WAY_$3_AS_OPTS) \
$$($1_AS_OPTS) \
$$(EXTRA_AS_OPTS)
$1_$2_$3_ALL_ALEX_OPTS = \
+ $$(CONF_ALEX_OPTS) \
$$(SRC_ALEX_OPTS)
$$(WAY_$3_ALEX_OPTS) \
$$($1_ALEX_OPTS) \
$$(EXTRA_ALEX_OPTS)
$1_$2_$3_ALL_HAPPY_OPTS = \
+ $$(CONF_HAPPY_OPTS) \
$$(SRC_HAPPY_OPTS) \
$$(WAY_$3_HAPPY_OPTS) \
$$($1_HAPPY_OPTS) \