X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=8c33bb2e249df9e8d5c1bc4c4dffca8dfeaa845b;hb=872bd77dda95ff67340588ee5b5653a9f289d369;hp=c7cbbb94b3563eb2747b3ffe7d9c117d928cb4ea;hpb=eb5ecfbe174cda6b40a22f44b2b0cdfd2ef2f149;p=ghc-hetmet.git diff --git a/mk/config.mk.in b/mk/config.mk.in index c7cbbb9..8c33bb2 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -22,15 +22,6 @@ # # If you don't have a build.mk file then you get defaults for everything. # The defaults should provide a reasonable vanilla build. -# -# This is one of only two files that configure generates (the other is config.h) -# - -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. @@ -54,12 +45,6 @@ BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@ NO_INCLUDE_DEPS = NO NO_INCLUDE_PKGDATA = NO -# -# Which ways should DocBook XML documents be built? -# options are: dvi ps pdf html chm HxS -# -XMLDocWays= - # Should we build latex docs? LATEX_DOCS = NO @@ -192,6 +177,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" @@ -210,25 +205,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 @@ -395,6 +371,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 @@ -561,43 +540,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_HSTAGS_DIR = $(GHC_UTILS_DIR)/hasktags -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 # @@ -606,7 +548,6 @@ GHC_SYSMAN_DIR = $(GHC_RTS_DIR)/parallel GHC_UNLIT_PGM = unlit$(exeext) GHC_HP2PS_PGM = hp2ps$(exeext) -GHC_HSTAGS_PGM = hasktags$(exeext) GHC_GHCTAGS_PGM = ghctags$(exeext) GHC_HSC2HS_PGM = hsc2hs$(exeext) GHC_TOUCHY_PGM = touchy$(exeext) @@ -632,18 +573,12 @@ GHC_PERL = $(PERL) endif HP2PS = $(GHC_HP2PS_DIR)/$(GHC_HP2PS_PGM) -HSTAGS = $(GHC_HSTAGS_DIR)/$(GHC_HSTAGS_PGM) MANGLER = $(INPLACE_LIB)/$(GHC_MANGLER_PGM) SPLIT = $(INPLACE_LIB)/$(GHC_SPLIT_PGM) 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) @@ -715,7 +650,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 @@ -746,8 +680,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 @@ -757,20 +692,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@ @@ -822,7 +743,6 @@ PYTHON = @PythonCmd@ PIC = pic PREPROCESSCMD = $(CC) -E RANLIB = @RANLIB@ -RM = rm -f SED = @SedCmd@ SHELL = /bin/sh @@ -837,6 +757,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 @@ -892,18 +822,17 @@ ISCC = #----------------------------------------------------------------------------- # DocBook XML stuff -XSLTPROC = @XsltprocCmd@ -XMLLINT = @XmllintCmd@ -FOP = @FopCmd@ -XMLTEX = @XmltexCmd@ -PDFXMLTEX = @PdfxmltexCmd@ -DVIPS = @DvipsCmd@ - -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 @@ -945,6 +874,8 @@ ALEX_VERSION = @AlexVersion@ # SRC_ALEX_OPTS = -g +HSTAGS = @HstagsCmd@ + # Should we build haddock docs? HADDOCK_DOCS = YES # And HsColour the sources? @@ -978,7 +909,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 #