add $(CONF_*_OPTS) for options that come from ./configure (fixes #3426)
authorSimon Marlow <marlowsd@gmail.com>
Tue, 8 Sep 2009 15:19:08 +0000 (15:19 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 8 Sep 2009 15:19:08 +0000 (15:19 +0000)
configure.ac
mk/config.mk.in
rules/distdir-opts.mk
rules/distdir-way-opts.mk

index 8fa8829..5ba6707 100644 (file)
@@ -255,15 +255,15 @@ i386-apple-darwin|powerpc-apple-darwin)
     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
 
@@ -525,8 +525,8 @@ FP_GCC_EXTRA_FLAGS
 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
index ba5406b..53d7f81 100644 (file)
@@ -542,12 +542,13 @@ else
 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)))
index a2dedb0..5265efc 100644 (file)
@@ -32,7 +32,8 @@ else
 $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)) \
@@ -42,7 +43,8 @@ $1_$2_BUILD_CC_OPTS = \
  $$(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) \
@@ -51,7 +53,8 @@ $1_$2_BUILD_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) \
index c3656b7..7a23b72 100644 (file)
@@ -17,16 +17,20 @@ define distdir-way-opts # args: $1 = dir, $2 = distdir, $3 = way
 
 # 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)
@@ -43,17 +47,18 @@ $1_$2_$3_ALL_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)
@@ -63,6 +68,7 @@ $1_$2_$3_GHC_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) \
@@ -71,6 +77,7 @@ $1_$2_$3_ALL_AS_OPTS = \
  $$(EXTRA_AS_OPTS)
 
 $1_$2_$3_ALL_ALEX_OPTS = \
+ $$(CONF_ALEX_OPTS) \
  $$(SRC_ALEX_OPTS)
  $$(WAY_$3_ALEX_OPTS) \
  $$($1_ALEX_OPTS) \
@@ -79,6 +86,7 @@ $1_$2_$3_ALL_ALEX_OPTS = \
  $$(EXTRA_ALEX_OPTS)
 
 $1_$2_$3_ALL_HAPPY_OPTS = \
+ $$(CONF_HAPPY_OPTS) \
  $$(SRC_HAPPY_OPTS) \
  $$(WAY_$3_HAPPY_OPTS) \
  $$($1_HAPPY_OPTS) \