X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=3882c26bdb668c835f4ebe982d1780b511aceb24;hp=32fb196eaa03e6dc667337ad8ce29376b0154cbe;hb=190b2d90f92f61eb802275729106b5d9fb9a7a7c;hpb=e946a8b1020e9a0e75bba33c64739c93c65c1424 diff --git a/mk/config.mk.in b/mk/config.mk.in index 32fb196..3882c26 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -97,15 +97,19 @@ GhcStage1HcOpts= GhcStage2HcOpts=-O2 GhcStage3HcOpts=-O2 -GhcProfiled=NO GhcDebugged=NO -GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO) +GhcDynamic=NO -# Do we support shared libs? -PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux),YES,NO) +# GhcProfiled=YES means compile a profiled stage-2 compiler +GhcProfiled=NO -# ToDo later: -# BuildStaticLibs=@BuildStaticLibs@ +# 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-openbsd x86_64-unknown-openbsd \ + i386-unknown-mingw32 \ + 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 @@ -141,6 +145,9 @@ GhcWithNativeCodeGen=$(strip\ $(if $(filter YESYESNO,\ $(OsSupportsNCG)$(ArchSupportsNCG)$(GhcUnregisterised)),YES,NO)) +# Build a compiler with the llvm code generator backend +GhcWithLlvmCodeGen=NO + HaveLibDL = @HaveLibDL@ # ArchSupportsSMP should be set iff there is support for that arch in @@ -153,7 +160,7 @@ GhcWithSMP=$(strip $(if $(filter YESNO, $(ArchSupportsSMP)$(GhcUnregisterised)), # Whether to include GHCi in the compiler. Depends on whether the RTS linker # has support for this OS/ARCH combination. -OsSupportsGHCi=$(strip $(patsubst $(HostOS_CPP), YES, $(findstring $(HostOS_CPP), mingw32 cygwin32 linux solaris2 freebsd netbsd openbsd darwin))) +OsSupportsGHCi=$(strip $(patsubst $(HostOS_CPP), YES, $(findstring $(HostOS_CPP), mingw32 cygwin32 linux solaris2 freebsd dragonfly netbsd openbsd darwin))) ArchSupportsGHCi=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc sparc sparc64))) ifeq "$(OsSupportsGHCi)$(ArchSupportsGHCi)" "YESYES" @@ -176,7 +183,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 alpha powerpc ia64,),YES,NO)) +ArchHasAdjustorSupport = $(if $(findstring $(HostArch_CPP),i386 x86_64),YES,NO) ifeq "$(ArchHasAdjustorSupport)" "YES" UseLibFFIForAdjustors=NO else @@ -235,8 +242,6 @@ BuildSharedLibs=$(strip $(if $(findstring dyn,$(GhcLibWays)),YES,NO)) # debug_p : debugging profiled # thr_debug : debugging threaded # thr_debug_p : debugging threaded profiled -# t : ticky-ticky profiling -# debug_t : debugging ticky-ticky profiling # l : event logging # thr_l : threaded and event logging # @@ -272,9 +277,6 @@ GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO) GhcLibHcOpts=-O2 -XGenerics -# Win32 only: Enable the RTS and libraries to be built as DLLs -DLLized=@EnableWin32DLLs@ - # Strip local symbols from libraries? This can make the libraries smaller, # but makes debugging somewhat more difficult. Doesn't work with all ld's. # @@ -294,30 +296,30 @@ 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) -# Math library -LIBM=@LIBM@ +# ---------------------------------------------------------------------------- +# Package-related things -# .NET interop support? -# -DotnetSupport=NO +# Extra packages to add to the build, in dependency order +EXTRA_PACKAGES = -# Build unix package? -# -GhcLibsWithUnix=@GhcLibsWithUnix@ +# Whether to install $(EXTRA_PACKAGES) +InstallExtraPackages = NO +# Run "ghc-pkg check" on each package CHECK_PACKAGES = NO # ---------------------------------------------------------------------------- @@ -361,12 +363,12 @@ ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" DEFAULT_TMPDIR = /C/TEMP endif -BIN_DIST_DIR=bindistprep/$(BIN_DIST_NAME) - -BIN_DIST_NAME=ghc-$(ProjectVersion) -BIN_DIST_TAR=$(TOP)/bindistprep/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar -BIN_DIST_TAR_BZ2=$(BIN_DIST_TAR).bz2 -BIN_DIST_LIST=$(TOP)/bindist-list +BIN_DIST_NAME = ghc-$(ProjectVersion) +BIN_DIST_PREP_DIR = bindistprep/$(BIN_DIST_NAME) +BIN_DIST_PREP_TAR = bindistprep/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar +BIN_DIST_PREP_TAR_BZ2 = $(BIN_DIST_PREP_TAR).bz2 +BIN_DIST_TAR_BZ2 = $(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2 +BIN_DIST_LIST = bindist-list WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-i386-windows WINDOWS_INSTALLER = $(WINDOWS_INSTALLER_BASE)$(exeext) @@ -414,7 +416,6 @@ GHC_GENPRIMOP_PGM = genprimopcode$(exeext) GHC_GENAPPLY_PGM = genapply$(exeext) GHC_CABAL_PGM = ghc-cabal$(exeext) GHC_PKG_PGM = ghc-pkg$(exeext) -GHC_MKDEPENDC_PGM = mkdependC GHC_LTX_PGM = ltx$(exeext) GHC_MKDIRHIER_PGM = mkdirhier GHC_LNDIR_PGM = lndir @@ -438,7 +439,6 @@ LNDIR = $(GHC_LNDIR_DIR)/$(GHC_LNDIR_PGM) UNLIT = $(INPLACE_LIB)/$(GHC_UNLIT_PGM) TOUCHY = $(INPLACE_LIB)/$(GHC_TOUCHY_PGM) MKDIRHIER = $(INPLACE_BIN)/$(GHC_MKDIRHIER_PGM) -MKDEPENDC = $(INPLACE_BIN)/$(GHC_MKDEPENDC_PGM) GHC_CABAL_INPLACE = $(INPLACE_BIN)/$(GHC_CABAL_PGM) GENAPPLY_INPLACE = $(INPLACE_BIN)/$(GHC_GENAPPLY_PGM) GHC_PKG_INPLACE = $(INPLACE_BIN)/$(GHC_PKG_PGM) @@ -506,9 +506,10 @@ GhcPatchLevel = @GhcPatchLevel@ GhcMajVersion = @GhcMajVersion@ GhcMinVersion = @GhcMinVersion@ -ghc_ge_609 = @ghc_ge_609@ +# 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 # comparisons. We must expand $(GhcMinVersion) to two digits by @@ -540,21 +541,27 @@ endif endif # C compiler and linker flags from configure (e.g. -m to select -# correct C compiler backend). -CONF_CC_OPTS = @CONF_CC_OPTS@ -CONF_LD_OPTS = @CONF_LD_OPTS@ +# 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@ ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux" CONF_CC_OPTS += -G0 endif -SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS) $(CONF_CC_OPTS))) +SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE0))) SRC_HSC2HS_OPTS += $(foreach d,$(GMP_INCLUDE_DIRS),-I$(d)) #----------------------------------------------------------------------------- # Mingwex Library # HaveLibMingwEx = @HaveLibMingwEx@ +DLLTOOL = inplace/mingw/bin/dlltool.exe #----------------------------------------------------------------------------- # Flex (currently unused, could be moved to glafp-utils) @@ -568,12 +575,16 @@ HaveLibMingwEx = @HaveLibMingwEx@ # Other standard (ha!) Unix utilities AR = @ArCmd@ +AR_OPTS = @ArArgs@ ArSupportsInput = @ArSupportsInput@ +ArSupportsAtFile = @ArSupportsAtFile@ # Yuckage: for ghc/utils/parallel -- todo: nuke this dependency!! BASH = /usr/local/bin/bash CONTEXT_DIFF = @ContextDiffCmd@ CP = cp +# It's not easy to separate the CPP program from its flags, as +# AC_PROG_CPP defines CPP as "/usr/bin/gcc -E" CPP = @CPP@ @CPPFLAGS@ CTAGS = $(ETAGS) # @@ -591,11 +602,9 @@ INSTALL = @INSTALL@ # INSTALL := $(subst .././install-sh,$(TOP)/install-sh,$(INSTALL)) LATEX = latex -HEVEA = hevea -HACHA = hacha +PDFLATEX = pdflatex +BIBTEX = bibtex LN_S = @LN_S@ -MANMACROS = -man -MSMACROS = -ms MV = mv NROFF = nroff PERL = @PerlCmd@ @@ -604,9 +613,14 @@ PIC = pic PREPROCESSCMD = $(CC) -E RANLIB = @RANLIB@ SED = @SedCmd@ +TR = tr SHELL = /bin/sh -LD = @LdCmd@ +HaveDtrace = @HaveDtrace@ +DTRACE = @DtraceCmd@ + +LD = @LdCmd@ +NM = @NmCmd@ # Some ld's support the -x flag and some don't, so the configure # script detects which we have and sets LdXFlag to "-x" or "" @@ -620,11 +634,12 @@ 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 +# to work around it. 32767 doesn't work; 30000 does, but says +# xargs: value for -s option should be < 28153 +# so we now use 20000 to be comfortably below this bound XARGS = xargs +ifeq "$(Windows)" "YES" +XARGS_OPTS = -s 20000 endif # @@ -649,35 +664,24 @@ endif # with REAL_SHELL set to something else than /bin/sh, for instance, your favourite # command shell. # -REAL_SHELL=$(SHELL) -SIZE = size -STRIP = strip -PATCH = @PatchCmd@ -TAR = @TarCmd@ -ZIP = zip +REAL_SHELL = $(SHELL) -HSCOLOUR = @HSCOLOUR@ +STRIP_CMD = strip +PATCH_CMD = @PatchCmd@ +TAR_CMD = @TarCmd@ +BZIP2_CMD = bzip2 +GZIP_CMD = gzip -# -# This is special to literate/, ToDo: add literate-specific -# configure setup to literate/. -# -TBL = tbl -TEX = tex -TGRIND = tgrind -TGRIND_HELPER = /usr/local/lib/tgrind/tfontedpr # XXX -TIB = tib +HSCOLOUR_CMD = @HSCOLOUR@ -TIME = @TimeCmd@ -TROFF = troff -UNAME = uname +TIME_CMD = @TimeCmd@ # GTK+ -GTK_CONFIG = @GTK_CONFIG@ +GTK_CONFIG_CMD = @GTK_CONFIG@ # Set this if you want to use Inno Setup to build a Windows installer # when you make a bindist -ISCC = +ISCC_CMD = #----------------------------------------------------------------------------- # DocBook XML stuff @@ -705,12 +709,6 @@ BLD_DLL = dllwrap GHC_PKG = @GhcPkgCmd@ # -# GreenCard -# -GREENCARD = @GreenCardCmd@ -GREENCARD_VERSION = @GreenCardVersion@ - -# # Happy # HAPPY = @HappyCmd@ @@ -737,9 +735,9 @@ SRC_ALEX_OPTS = -g HSTAGS = @HstagsCmd@ # Should we build haddock docs? -HADDOCK_DOCS = $(GhcWithInterpreter) +HADDOCK_DOCS = YES # And HsColour the sources? -ifeq "$(HSCOLOUR)" "" +ifeq "$(HSCOLOUR_CMD)" "" HSCOLOUR_SRCS = NO else HSCOLOUR_SRCS = YES @@ -781,18 +779,5 @@ CONFIGURE_ARGS = @CONFIGURE_ARGS@ ICONV_INCLUDE_DIRS = @ICONV_INCLUDE_DIRS@ ICONV_LIB_DIRS = @ICONV_LIB_DIRS@ -################################################################################ -# -# Bindist testing directory -# -################################################################################ - -ifeq "$(Windows)" "YES" -BIN_DIST_INST_SUBDIR = "install dir" -else -# I very much doubt that paths with spaces will work on Unix -BIN_DIST_INST_SUBDIR = installed -endif - -BIN_DIST_INST_DIR = $(TOP)/bindisttest/$(BIN_DIST_INST_SUBDIR) - +GMP_INCLUDE_DIRS = @GMP_INCLUDE_DIRS@ +GMP_LIB_DIRS = @GMP_LIB_DIRS@