X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=e6140d234bb87a6bde69ca68c6ae66b140a73d79;hp=0adad7309d64b899f0bac7754fe2e5d8b31a39e2;hb=d4f9480c7e7bf8167a97ff964f9d85400398c5c4;hpb=89296ce322b0e67c511841d50eab7977d80376cb diff --git a/mk/config.mk.in b/mk/config.mk.in index 0adad73..e6140d2 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -23,12 +23,6 @@ # If you don't have a build.mk file then you get defaults for everything. # The defaults should provide a reasonable vanilla build. -ifneq "$(findstring 3.7, $(MAKE_VERSION))" "" -ifeq "$(findstring 3.79.1, $(MAKE_VERSION))" "" -$(error GNU make version 3.79.1 or later is required.) -endif -endif - # TOP: the top of the fptools hierarchy, absolute path. # On Windows this is a c:/foo/bar style path. TOP = @hardtop@ @@ -113,7 +107,12 @@ GhcDebugged=NO GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO) # Build shared and/or static libs? -BuildSharedLibs=@BuildSharedLibs@ +PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux),YES,NO) +ifeq "$(PlatformSupportsSharedLibs)" "YES" +BuildSharedLibs = YES +else +BuildSharedLibs = NO +endif # ToDo later: # BuildStaticLibs=@BuildStaticLibs@ @@ -183,6 +182,16 @@ else GhcEnableTablesNextToCode=YES 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 alpha powerpc ia64,),YES,NO)) +ifeq "$(ArchHasAdjustorSupport)" "YES" +UseLibFFIForAdjustors=NO +else +UseLibFFIForAdjustors=YES +endif + # On Windows we normally want to make a relocatable bindist, to we # ignore flags like libdir ifeq "$(Windows)" "YES" @@ -201,25 +210,6 @@ BeConservative = NO BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS))) BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS))) -# Interface file version (hi-boot files only) -# -# A GHC built with HscIfaceFileVersion=n will look for -# M.hi-boot-n, and only then for -# M.hi-boot. -# (It'll be happy with the latter if the former doesn't exist.) -# -# -# This variable is used ONLY for hi-boot files. Its only purpose is -# to allow you to have a single directory with multiple .hi-boot files -# for the same module, each corresponding to a different version of -# GHC. -# -# HscIfaceFileVersion is propagated to hsc via -# compiler/main/Config.hs, which is automatically generated by -# compiler/Makefile. - -HscIfaceFileVersion=6 - #------------------------------------------------------------------------------ # Options for Libraries @@ -335,6 +325,8 @@ DotnetSupport=NO # GhcLibsWithUnix=@GhcLibsWithUnix@ +CHECK_PACKAGES = NO + # ---------------------------------------------------------------------------- # Options for GHC's RTS @@ -386,6 +378,9 @@ BIN_DIST_PREP_DIR=$(TOP)/bindist-prep BIN_DIST_PREP=$(BIN_DIST_PREP_DIR)/$(BIN_DIST_NAME) BIN_DIST_LIST=$(TOP)/bindist-list +WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-i386-windows +WINDOWS_INSTALLER = $(WINDOWS_INSTALLER_BASE)$(exeext) + # Definition of installation directories, we don't use half of these, but since # the configure script has them on offer while passing through, we might as well # set them. Note that we have to be careful, because the GNU coding standards @@ -506,13 +501,16 @@ INSTALL_GROUP = # Invocations of `install' for the four different classes # of targets: # +CREATE_SCRIPT = create () { touch $$1 && chmod 755 $$1 ; } && create +CREATE_DATA = create () { touch $$1 && chmod 644 $$1 ; } && create INSTALL_PROGRAM = $(INSTALL) -m 755 INSTALL_SCRIPT = $(INSTALL) -m 755 INSTALL_SHLIB = $(INSTALL) -m 755 INSTALL_DATA = $(INSTALL) -m 644 INSTALL_HEADER = $(INSTALL) -m 644 INSTALL_MAN = $(INSTALL) -m 644 -INSTALL_DIR = $(MKDIRHIER) +INSTALL_DOC = $(INSTALL) -m 644 +INSTALL_DIR = $(INSTALL) -m 755 -d # # runhaskell and hsc2hs are special, in that other compilers besides @@ -552,42 +550,6 @@ SRC_BLD_DLL_OPTS += --target=i386-mingw32 GC_CPP_OPTS += -P -E -x c -traditional -D__GLASGOW_HASKELL__ -################################################################################ -# -# Layout of the source tree -# -################################################################################ - -# Here we provide defines for the various directories in the source tree, -# so we can move things around more easily. A define $(GHC_FOO_DIR) -# indicates a directory relative to the top of the source tree. - -GHC_UTILS_DIR = utils -GHC_INCLUDE_DIR = includes -GHC_COMPILER_DIR = compiler -GHC_PROG_DIR = ghc -GHC_RTS_DIR = rts -GHC_DRIVER_DIR = driver -GHC_COMPAT_DIR = compat - -GHC_MKDEPENDC_DIR = $(GHC_UTILS_DIR)/mkdependC -GHC_LTX_DIR = $(GHC_UTILS_DIR)/ltx -GHC_LNDIR_DIR = $(GHC_UTILS_DIR)/lndir -GHC_MKDIRHIER_DIR = $(GHC_UTILS_DIR)/mkdirhier -GHC_DOCBOOK_DIR = $(GHC_UTILS_DIR)/docbook -GHC_UNLIT_DIR = $(GHC_UTILS_DIR)/unlit -GHC_HP2PS_DIR = $(GHC_UTILS_DIR)/hp2ps -GHC_GHCTAGS_DIR = $(GHC_UTILS_DIR)/ghctags -GHC_HSC2HS_DIR = $(GHC_UTILS_DIR)/hsc2hs -GHC_TOUCHY_DIR = $(GHC_UTILS_DIR)/touchy -GHC_PKG_DIR = $(GHC_UTILS_DIR)/ghc-pkg -GHC_GENPRIMOP_DIR = $(GHC_UTILS_DIR)/genprimopcode -GHC_GENAPPLY_DIR = $(GHC_UTILS_DIR)/genapply -GHC_CABAL_DIR = $(GHC_UTILS_DIR)/ghc-cabal -GHC_MANGLER_DIR = $(GHC_DRIVER_DIR)/mangler -GHC_SPLIT_DIR = $(GHC_DRIVER_DIR)/split -GHC_SYSMAN_DIR = $(GHC_RTS_DIR)/parallel - # ----------------------------------------------------------------------------- # Names of programs in the GHC tree # @@ -627,11 +589,6 @@ SYSMAN = $(GHC_SYSMAN_DIR)/$(GHC_SYSMAN_PGM) LTX = $(GHC_LTX_DIR)/$(GHC_LTX_PGM) LNDIR = $(GHC_LNDIR_DIR)/$(GHC_LNDIR_PGM) -INPLACE = inplace -INPLACE_BIN = $(INPLACE)/bin -INPLACE_LIB = $(INPLACE)/lib -INPLACE_MINGW = $(INPLACE)/mingw - UNLIT = $(INPLACE_LIB)/$(GHC_UNLIT_PGM) TOUCHY = $(INPLACE_LIB)/$(GHC_TOUCHY_PGM) MKDIRHIER = $(INPLACE_BIN)/$(GHC_MKDIRHIER_PGM) @@ -703,7 +660,6 @@ GhcPatchLevel = @GhcPatchLevel@ GhcMajVersion = @GhcMajVersion@ GhcMinVersion = @GhcMinVersion@ -ghc_ge_607 = @ghc_ge_607@ ghc_ge_609 = @ghc_ge_609@ # Canonicalised ghc version number, used for easy (integer) version @@ -734,8 +690,9 @@ else endif endif -# default C compiler flags +# default C compiler and linker flags SRC_CC_OPTS = @SRC_CC_OPTS@ +SRC_LD_OPTS = @SRC_LD_OPTS@ ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux" SRC_CC_OPTS += -G0 @@ -745,20 +702,6 @@ SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS))) SRC_HSC2HS_OPTS += $(foreach d,$(GMP_INCLUDE_DIRS),-I$(d)) #----------------------------------------------------------------------------- -# GMP Library (version 2.0.x or above) -# -HaveLibGmp = @HaveLibGmp@ -LibGmp = @LibGmp@ - -GMP_INCLUDE_DIRS=@GMP_INCLUDE_DIRS@ -GMP_LIB_DIRS=@GMP_LIB_DIRS@ - -#----------------------------------------------------------------------------- -# GMP framework (Mac OS X) -# -HaveFrameworkGMP = @HaveFrameworkGMP@ - -#----------------------------------------------------------------------------- # Mingwex Library # HaveLibMingwEx = @HaveLibMingwEx@ @@ -810,7 +753,6 @@ PYTHON = @PythonCmd@ PIC = pic PREPROCESSCMD = $(CC) -E RANLIB = @RANLIB@ -RM = rm -f SED = @SedCmd@ SHELL = /bin/sh @@ -825,6 +767,16 @@ LD_X = @LdXFlag@ # overflowing command-line length limits. LdIsGNULd = @LdIsGNULd@ +# On MSYS, building with SplitObjs=YES fails with +# ar: Bad file number +# see #3201. We need to specify a smaller max command-line size +# to work around it. 32767 doesn't work; 30000 does. +ifeq "$(Windows)" "YES" +XARGS = xargs -s 30000 +else +XARGS = xargs +endif + # # In emergency situations, REAL_SHELL is used to perform shell commands # from within the ghc driver script, by scribbling the command line to @@ -880,18 +832,17 @@ ISCC = #----------------------------------------------------------------------------- # DocBook XML stuff -BUILD_DOCBOOK_HTML = @BUILD_DOCBOOK_HTML@ -BUILD_DOCBOOK_PS = @BUILD_DOCBOOK_PS@ -BUILD_DOCBOOK_PDF = @BUILD_DOCBOOK_PDF@ -DBLATEX = @DblatexCmd@ -XSLTPROC = @XsltprocCmd@ -XMLLINT = @XmllintCmd@ - -DIR_DOCBOOK_XSL = @DIR_DOCBOOK_XSL@ - -XSLTPROC_LABEL_OPTS = --stringparam toc.section.depth 3 \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 +BUILD_DOCBOOK_HTML = @BUILD_DOCBOOK_HTML@ +BUILD_DOCBOOK_PS = @BUILD_DOCBOOK_PS@ +BUILD_DOCBOOK_PDF = @BUILD_DOCBOOK_PDF@ +DBLATEX = @DblatexCmd@ +XSLTPROC = @XsltprocCmd@ +XMLLINT = @XmllintCmd@ +HAVE_DOCBOOK_XSL = @HAVE_DOCBOOK_XSL@ +XSLTPROC_HTML_STYLESHEET = http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl +XSLTPROC_LABEL_OPTS = --stringparam toc.section.depth 3 \ + --stringparam section.autolabel 1 \ + --stringparam section.label.includes.component.label 1 #----------------------------------------------------------------------------- # FPtools support software @@ -968,7 +919,7 @@ endif # # The ways currently defined. # -ALL_WAYS=v p t l s mp mg debug dyn thr thr_l debug_dyn thr_dyn thr_debug_dyn thr_p thr_debug thr_debug_l +ALL_WAYS=v p t l s mp mg debug dyn thr thr_l debug_dyn thr_dyn thr_debug_dyn thr_p thr_debug thr_debug_l debug_p thr_debug_p USER_WAYS=a b c d e f g h j k l m n o A B #