Add -fdefer-diagnostics to defer and group diagnostic messages in make-mode
[ghc.git] / mk / config.mk.in
index b046abe..0119e9a 100644 (file)
@@ -66,9 +66,12 @@ GhcHcOpts=-Rghc-timing
 # override options from $(GhcHcOpts).
 #
 # See Note [Stage number in build variables].
+#
+# -haddock is needed so the GHCi :doc command can find docs
+#   in the .hi-files for the ghc library
 GhcStage1HcOpts=
-GhcStage2HcOpts=-O2
-GhcStage3HcOpts=-O2
+GhcStage2HcOpts=-O2 -haddock
+GhcStage3HcOpts=-O2 -haddock
 
 
 # Note [Stage number in build variables].
@@ -300,6 +303,7 @@ GhcRTSWays += debug
 GhcRTSWays += thr thr_debug thr_l
 GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),thr_p,)
 GhcRTSWays += $(if $(findstring dyn, $(GhcLibWays)),dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn,)
+GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),thr_debug_p debug_p,)
 
 # We can only build GHCi threaded if we have a threaded RTS:
 GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
@@ -311,8 +315,11 @@ GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
 #
 #      -O(2) is pretty desirable, otherwise no inlining of prelude
 #              things (incl "+") happens when compiling with this compiler
+#
+#       -haddock is needed so the GHCi :doc command can find the boot
+#               library docs in the respective .hi-files
 
-GhcLibHcOpts=-O2
+GhcLibHcOpts=-O2 -haddock
 
 # Strip local symbols from libraries?  This can make the libraries smaller,
 # but makes debugging somewhat more difficult.  Doesn't work with all ld's.
@@ -359,7 +366,7 @@ SplitObjs = $(if $(and $(filter YES,$(SupportsSplitObjs)),\
 # This is not supported on Darwin (where you can use subsections-via-symbols
 # instead) and Windows is disabled until we figure the linking performance
 # issues related to BFD out. (See #11445, #12913 and related tickets.)
-OsSupportsSplitSections=$(if $(filter $(TargetOS_CPP),mingw32 darwin),NO,YES)
+OsSupportsSplitSections=$(if $(filter $(TargetOS_CPP),darwin),NO,YES)
 SupportsSplitSections=$(if $(and $(filter YES,$(OsSupportsSplitSections)),\
                                    $(filter YES,$(LdIsGNULd))),YES,NO)
 SplitSections ?= $(SupportsSplitSections)
@@ -522,6 +529,7 @@ GccVersion            = @GccVersion@
 # TargetPlatformFull retains the string passed to configure so we have it in
 # the necessary format to pass to libffi's configure.
 TargetPlatformFull    = @TargetPlatformFull@
+GccLT46         = @GccLT46@
 GccIsClang      = @GccIsClang@
 
 CC              = @CC@
@@ -650,6 +658,14 @@ $(eval $(call set_stage_HSC2HS_OPTS,2))
 ifeq "$(CrossCompiling)" "YES"
 SRC_HSC2HS_OPTS_STAGE1 += --cross-compile
 SRC_HSC2HS_OPTS_STAGE2 += --cross-compile
+ifeq "$(Windows_Target)" "YES"
+# We'll assume we compile with gcc or clang, and both support `-S` and can as such use the
+# --via-asm pass, which should be faster and is required for cross compiling to windows, as
+# the c compiler complains about non-constant expressions even though they are constant and
+# end up as constants in the assembly.
+SRC_HSC2HS_OPTS_STAGE1 += --via-asm
+SRC_HSC2HS_OPTS_STAGE2 += --via-asm
+endif
 endif
 SRC_HSC2HS_OPTS_STAGE0 += --cflag=-D$(HostArch_CPP)_HOST_ARCH --cflag=-D$(HostOS_CPP)_HOST_OS
 SRC_HSC2HS_OPTS_STAGE1 += --cflag=-D$(TargetArch_CPP)_HOST_ARCH --cflag=-D$(TargetOS_CPP)_HOST_OS
@@ -726,6 +742,7 @@ HaveDtrace          = @HaveDtrace@
 USE_DTRACE = $(HaveDtrace)
 DTRACE                 = @DtraceCmd@
 
+LD_NO_GOLD = @LdNoGoldCmd@
 LD = @LdCmd@
 NM = @NmCmd@
 AR = @ArCmd@
@@ -785,13 +802,13 @@ TAR_COMP      ?= xz
 
 # select compression command and .tar extension based on TAR_COMP value
 ifeq "$(TAR_COMP)" "bzip2"
-TAR_COMP_CMD  = $(BZIP2_CMD)
+TAR_COMP_CMD  = $(BZIP2_CMD) $(TAR_COMP_OPTS)
 TAR_COMP_EXT  = bz2
 else ifeq "$(TAR_COMP)" "gzip"
-TAR_COMP_CMD  = $(GZIP_CMD)
+TAR_COMP_CMD  = $(GZIP_CMD) $(TAR_COMP_OPTS)
 TAR_COMP_EXT  = gz
 else ifeq "$(TAR_COMP)" "xz"
-TAR_COMP_CMD  = $(XZ_CMD)
+TAR_COMP_CMD  = $(XZ_CMD) $(TAR_COMP_OPTS)
 TAR_COMP_EXT  = xz
 else
 $(error $$(TAR_COMP) set to unknown value "$(TAR_COMP)" (supported: "bzip2", "gzip", "xz"))
@@ -842,16 +859,13 @@ SRC_HAPPY_OPTS            = -agc --strict
 #
 ALEX                   = @AlexCmd@
 ALEX_VERSION           = @AlexVersion@
-Alex3                  = @Alex3@
 #
 # Options to pass to Alex when we're going to compile the output with GHC
 #
 SRC_ALEX_OPTS = -g
-ifeq "$(Alex3)" "YES"
 # The compiler isn't using the Unicode support in Alex 3.0 yet, in fact we do our own
 # Unicode handling, so diable Alex's.
 compiler_ALEX_OPTS = --latin1
-endif
 
 # Should we build haddock docs?
 HADDOCK_DOCS = YES
@@ -862,8 +876,6 @@ else
 HSCOLOUR_SRCS = YES
 endif
 
-# Build and install DPH?
-BUILD_DPH = NO
 # Build and install the "extra" packages (see ./packages)?
 BUILD_EXTRA_PKGS = NO
 
@@ -886,6 +898,8 @@ ICONV_LIB_DIRS = @ICONV_LIB_DIRS@
 
 GMP_INCLUDE_DIRS = @GMP_INCLUDE_DIRS@
 GMP_LIB_DIRS = @GMP_LIB_DIRS@
+GMP_PREFER_FRAMEWORK = @GMP_PREFER_FRAMEWORK@
+GMP_FORCE_INTREE = @GMP_FORCE_INTREE@
 
 CURSES_LIB_DIRS = @CURSES_LIB_DIRS@