Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/3d8dd48620ac8297d183447e5fa9687521752820

>---------------------------------------------------------------

commit 3d8dd48620ac8297d183447e5fa9687521752820
Author: Ian Lynagh <[email protected]>
Date:   Thu Apr 26 19:28:39 2012 +0100

    Add SRC_[CH]C_WARNING_OPTS
    
    This allows you to say things like
        SRC_HC_WARNING_OPTS += -fno-warn-unsupported-calling-conventions
    in mk/validate.mk.
    
    Unfortunately, we can't just use SRC_HC_OPTS, as that gets put before
    the more specific options (e.g. ghc-options in a .cabal file), many of
    which include -Wall. So now we have:
        ghc $(SRC_HC_OPTS) ... options from .cabal etc ... 
$(SRC_HC_WARNING_OPTS)

>---------------------------------------------------------------

 mk/validate-settings.mk     |   12 +++++++-----
 rules/build-package-data.mk |    2 +-
 rules/distdir-way-opts.mk   |    8 +++++++-
 utils/ghc-pkg/ghc.mk        |    1 +
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/mk/validate-settings.mk b/mk/validate-settings.mk
index 119dce1..fa5add5 100644
--- a/mk/validate-settings.mk
+++ b/mk/validate-settings.mk
@@ -1,20 +1,22 @@
 # DO NOT EDIT!  Instead, create a file mk/validate.mk, whose settings will
 # override these.  See also mk/custom-settings.mk.
 
-WERROR          = -Werror
+WERROR              = -Werror
+SRC_CC_WARNING_OPTS =
+SRC_HC_WARNING_OPTS =
 
 HADDOCK_DOCS    = YES
 
-SRC_CC_OPTS     += -Wall $(WERROR)
 # Debian doesn't turn -Werror=unused-but-set-variable on by default, so
 # we turn it on explicitly for consistency with other users
 ifeq "$(GccLT46)" "NO"
-SRC_CC_OPTS     += -Werror=unused-but-set-variable
+SRC_CC_WARNING_OPTS += -Werror=unused-but-set-variable
 # gcc 4.6 gives 3 warning for giveCapabilityToTask not being inlined
-SRC_CC_OPTS     += -Wno-error=inline
+SRC_CC_WARNING_OPTS += -Wno-error=inline
 endif
 
-SRC_HC_OPTS     += -Wall $(WERROR) -H64m -O0
+SRC_CC_OPTS     += $(WERROR) -Wall
+SRC_HC_OPTS     += $(WERROR) -Wall -H64m -O0
 
 GhcStage1HcOpts += -O -fwarn-tabs
 
diff --git a/rules/build-package-data.mk b/rules/build-package-data.mk
index d535e34..047efcb 100644
--- a/rules/build-package-data.mk
+++ b/rules/build-package-data.mk
@@ -39,7 +39,7 @@ endif
 # We filter out -Werror from SRC_CC_OPTS, because when configure tests
 # for a feature it may not generate warning-free C code, and thus may
 # think that the feature doesn't exist if -Werror is on.
-$1_$2_CONFIGURE_OPTS += --configure-option=CFLAGS="$$(filter-out 
-Werror,$$(SRC_CC_OPTS)) $$(CONF_CC_OPTS_STAGE$3) $$($1_CC_OPTS) 
$$($1_$2_CC_OPTS)"
+$1_$2_CONFIGURE_OPTS += --configure-option=CFLAGS="$$(filter-out 
-Werror,$$(SRC_CC_OPTS)) $$(CONF_CC_OPTS_STAGE$3) $$($1_CC_OPTS) 
$$($1_$2_CC_OPTS) $$(SRC_CC_WARNING_OPTS)"
 $1_$2_CONFIGURE_OPTS += --configure-option=LDFLAGS="$$(SRC_LD_OPTS) 
$$(CONF_GCC_LINKER_OPTS_STAGE$3) $$($1_LD_OPTS) $$($1_$2_LD_OPTS)"
 $1_$2_CONFIGURE_OPTS += --configure-option=CPPFLAGS="$$(SRC_CPP_OPTS) 
$$(CONF_CPP_OPTS_STAGE$3) $$($1_CPP_OPTS) $$($1_$2_CPP_OPTS)"
 
diff --git a/rules/distdir-way-opts.mk b/rules/distdir-way-opts.mk
index 2e5f764..c26bbc7 100644
--- a/rules/distdir-way-opts.mk
+++ b/rules/distdir-way-opts.mk
@@ -41,6 +41,10 @@ define distdir-way-opts # args: $1 = dir, $2 = distdir, $3 = 
way, $4 = stage
 #                                                          mk/build.mk
 #                                                          mk/validate.mk
 #   
+#  SRC_HC_WARNING_OPTS   source-tree-wide GHC warning      mk/config.mk.in
+#                        options                           mk/build.mk
+#                                                          mk/validate.mk
+#   
 #  EXTRA_HC_OPTS         for supplying extra options on    make 
EXTRA_HC_OPTS=...
 #                        the command line   
 #   
@@ -102,6 +106,7 @@ $1_$2_$3_MOST_HC_OPTS = \
  $$($1_$2_EXTRA_HC_OPTS) \
  $$($1_$2_$3_HC_OPTS) \
  $$($$(basename $$<)_HC_OPTS) \
+ $$(SRC_HC_WARNING_OPTS) \
  $$(EXTRA_HC_OPTS)
 
 # NB. CONF_HC_OPTS_STAGE$4 has to be late enough to override $1_$2_HC_OPTS, so
@@ -151,7 +156,8 @@ $1_$2_DIST_CC_OPTS = \
  $$($1_$2_CC_OPTS) \
  $$($1_$2_CPP_OPTS) \
  $$($1_$2_CC_INC_FLAGS) \
- $$($1_$2_DEP_CC_OPTS)
+ $$($1_$2_DEP_CC_OPTS) \
+ $$(SRC_CC_WARNING_OPTS)
 
 ifneq ($$(strip $$($1_$2_DEP_LIB_DIRS_SINGLE_QUOTED)),)
 $1_$2_DIST_LD_LIB_DIRS := $$(subst 
$$(space)',$$(space)-L',$$(space)$$($1_$2_DEP_LIB_DIRS_SINGLE_QUOTED))
diff --git a/utils/ghc-pkg/ghc.mk b/utils/ghc-pkg/ghc.mk
index 11b7c8f..4f4967e 100644
--- a/utils/ghc-pkg/ghc.mk
+++ b/utils/ghc-pkg/ghc.mk
@@ -55,6 +55,7 @@ 
utils/ghc-pkg/dist/build/tmp/$(utils/ghc-pkg_dist_PROG)$(exeext): utils/ghc-pkg/
        "$(GHC)" $(SRC_HC_OPTS) --make utils/ghc-pkg/Main.hs -o $@ \
               -no-user-package-conf \
               -Wall -fno-warn-unused-imports -fno-warn-warnings-deprecations \
+              $(SRC_HC_WARNING_OPTS) \
               -DCABAL_VERSION=$(CABAL_VERSION) \
               -DBOOTSTRAPPING \
               -odir  bootstrapping \



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to