X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=902c0dc6322ae02fda880dfd3eb5c014e7d97a2c;hb=b00e3a6c0a82a8af3238d677f798d812cd7fd49f;hp=290db85a2207df47c0ca5824c61b266ebdf786a3;hpb=429dc9a048f5533143fb5c9908b09d3155496e9b;p=ghc-hetmet.git diff --git a/mk/config.mk.in b/mk/config.mk.in index 290db85..902c0dc 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -104,7 +104,13 @@ GhcDynamic=NO GhcProfiled=NO # Do we support shared libs? -PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux i386-unknown-freebsd x86_64-unknown-freebsd i386-unknown-mingw32 i386-apple-darwin powerpc-apple-darwin),YES,NO) +PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),\ + i386-unknown-linux x86_64-unknown-linux \ + i386-unknown-freebsd x86_64-unknown-freebsd \ + i386-unknown-openbsd x86_64-unknown-openbsd \ + i386-unknown-mingw32 \ + i386-unknown-solaris2 \ + i386-apple-darwin powerpc-apple-darwin),YES,NO) # Build a compiler that will build *unregisterised* libraries and # binaries by default. Unregisterised code is supposed to compile and @@ -178,7 +184,7 @@ endif # Whether to use libffi for adjustors (foreign import "wrapper") or # not. If we have built-in support (rts/Adjustor.c) then we use that, # otherwise we fall back on libffi, which is slightly slower. -ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 powerpc,),YES,NO)) +ArchHasAdjustorSupport = $(if $(findstring $(HostArch_CPP),i386 x86_64),YES,NO) ifeq "$(ArchHasAdjustorSupport)" "YES" UseLibFFIForAdjustors=NO else @@ -291,15 +297,16 @@ PackageSourceURL = http://darcs.haskell.org/packages/$(PACKAGE)/%{FILE} # doing object-file splitting ArchSupportsSplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),YES,NO)) +# Object splitting is disabled on darwin due to #4013 +OsSupportsSplitObjs=$(strip $(if $(filter $(TargetOS_CPP),mingw32 cygwin32 linux solaris2 freebsd dragonfly netbsd openbsd),YES,NO)) # lazy test, so that $(GhcUnregisterised) can be set in build.mk -SupportsSplitObjs=$(strip $(if $(filter YES,$(ArchSupportsSplitObjs)),\ - $(if $(filter NO,$(BootingFromHc)),\ - $(if $(filter NO,$(GhcUnregisterised)),\ - YES,\ - NO),\ - NO),\ - NO)) +SupportsSplitObjs=$(strip \ + $(if $(and $(filter YES,$(ArchSupportsSplitObjs)),\ + $(filter YES,$(OsSupportsSplitObjs)),\ + $(filter NO,$(BootingFromHc)),\ + $(filter NO,$(GhcUnregisterised))),\ + YES,NO)) # By default, enable SplitObjs for the libraries if this build supports it SplitObjs=$(SupportsSplitObjs) @@ -380,6 +387,23 @@ WINDOWS_INSTALLER = $(WINDOWS_INSTALLER_BASE)$(exeext) # # SRC_HC_OPTS += -O + +# SRC_HC_OPTS includes flags to be added to *every* Haskell +# compilation. Setting SRC_HC_OPTS is a good way to set the default +# optimisation level (-O) and heap size (-H). +# +# SRC_HC_OPTS is *not* for adding flags that are required to make your +# build work. Examples: +# +# - instead of using -pgmc/-pgma-/-pgml, use the --with-gcc option to configure +# +# - if you need -optc, -opta, or -optl flags, the CONF_CC_* and CONF_LD_* +# variables are more appropriate (set via configure) +# +# Note that SRC_HC_OPTS are added to every Haskell compilation, +# including when using the bootstrapping compiler (stage 0), So don't +# put options here that are only supported by very recent GHCs. +# SRC_HC_OPTS += -H32m -O # These flags make flex 8-bit @@ -445,13 +469,9 @@ GENERATED_FILE = chmod a-w EXECUTABLE_FILE = chmod +x #----------------------------------------------------------------------------- -# Haskell compilers and mkdependHS +# Installed GHC -# $(GHC), $(HBC) and $(NHC) point to installed versions of the relevant -# compilers, if available. -# -# $(HC) is a generic Haskell 98 compiler, set to $(GHC) by default. -# $(MKDEPENDHS) is the Haskell dependency generator (ghc -M). +# $(GHC) points to installed version of the compiler. # # NOTE: Don't override $(GHC) in build.mk, use configure --with-ghc instead # (because the version numbers have to be calculated). @@ -464,14 +484,6 @@ ifneq "$(wildcard $(GHC).exe)" "" GHC := $(GHC).exe endif -GhcDir = $(dir $(GHC)) - -# Set to YES if $(GHC) has the editline package installed -GhcHasEditline = @GhcHasEditline@ - -HBC = @HBC@ -NHC = @NHC@ - # Sometimes we want to invoke ghc from the build tree in different # places (eg. it's handy to have a nofib & a ghc build in the same # tree). We can refer to "this ghc" as $(GHC_INPLACE): @@ -501,8 +513,6 @@ GhcMajVersion = @GhcMajVersion@ GhcMinVersion = @GhcMinVersion@ # Keep this in sync with the variables in package-config.mk -ghc_ge_6102 = @ghc_ge_6102@ -ghc_ge_611 = @ghc_ge_611@ ghc_ge_613 = @ghc_ge_613@ # Canonicalised ghc version number, used for easy (integer) version @@ -535,13 +545,17 @@ endif endif # C compiler and linker flags from configure (e.g. -m to select -# correct C compiler backend). +# correct C compiler backend). The stage number is the stage of GHC +# that is being used to compile with. CONF_CC_OPTS_STAGE0 = @CONF_CC_OPTS_STAGE0@ CONF_CC_OPTS_STAGE1 = @CONF_CC_OPTS_STAGE1@ CONF_CC_OPTS_STAGE2 = @CONF_CC_OPTS_STAGE2@ CONF_LD_OPTS_STAGE0 = @CONF_LD_OPTS_STAGE0@ CONF_LD_OPTS_STAGE1 = @CONF_LD_OPTS_STAGE1@ CONF_LD_OPTS_STAGE2 = @CONF_LD_OPTS_STAGE2@ +CONF_CPP_OPTS_STAGE0 = @CONF_CPP_OPTS_STAGE0@ +CONF_CPP_OPTS_STAGE1 = @CONF_CPP_OPTS_STAGE1@ +CONF_CPP_OPTS_STAGE2 = @CONF_CPP_OPTS_STAGE2@ ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux" CONF_CC_OPTS += -G0