X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=ea3c1ffdbea442e5c70a6f3d68ded3c2fc87cfc0;hp=a120e467bd5b97eb8f1097d7ee778a1c930b5318;hb=0af418beb1aadcae1df036240151556895d00321;hpb=930421d4ed09e5389e0ef4c5eef36075a6809cc0 diff --git a/mk/config.mk.in b/mk/config.mk.in index a120e46..ea3c1ff 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -26,7 +26,6 @@ TOP = @hardtop@ include $(TOP)/mk/project.mk -include $(TOP)/mk/install.mk ################################################################################ # @@ -103,7 +102,7 @@ GhcDebugged=NO GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO) # Do we support shared libs? -PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux),YES,NO) +PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux i386-unknown-freebsd amd64-unknown-freebsd),YES,NO) # ToDo later: # BuildStaticLibs=@BuildStaticLibs@ @@ -154,7 +153,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" @@ -192,6 +191,9 @@ else RelocatableBuild = NO endif +# needs to be after $(RelocatableBuild) is set above +include $(TOP)/mk/install.mk + # When building bindists we set this to yes so that the binaries are as # portable as possible. BeConservative = NO @@ -233,8 +235,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 # @@ -270,9 +270,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. # @@ -305,9 +302,6 @@ SupportsSplitObjs=$(strip $(if $(filter YES,$(ArchSupportsSplitObjs)),\ # By default, enable SplitObjs for the libraries if this build supports it SplitObjs=$(SupportsSplitObjs) -# Math library -LIBM=@LIBM@ - # .NET interop support? # DotnetSupport=NO @@ -359,15 +353,12 @@ ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" DEFAULT_TMPDIR = /C/TEMP endif -BIN_DIST_TOPDIR_ABS=$(TOP) -BIN_DIST_DIR=$(BIN_DIST_TOPDIR_ABS)/$(BIN_DIST_NAME) - -BIN_DIST_NAME=ghc-$(ProjectVersion) -BIN_DIST_TAR=$(TOP)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar -BIN_DIST_TAR_BZ2=$(BIN_DIST_TAR).bz2 -BIN_DIST_PREP_DIR=$(TOP)/bindist-prep -BIN_DIST_PREP=$(BIN_DIST_PREP_DIR)/$(BIN_DIST_NAME) -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) @@ -415,7 +406,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 @@ -439,7 +429,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) @@ -508,6 +497,8 @@ GhcMajVersion = @GhcMajVersion@ GhcMinVersion = @GhcMinVersion@ ghc_ge_609 = @ghc_ge_609@ +ghc_ge_6102 = @ghc_ge_6102@ +ghc_ge_611 = @ghc_ge_611@ # Canonicalised ghc version number, used for easy (integer) version # comparisons. We must expand $(GhcMinVersion) to two digits by @@ -547,13 +538,14 @@ ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux" CONF_CC_OPTS += -G0 endif -SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS))) +SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS) $(CONF_CC_OPTS))) 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) @@ -567,12 +559,15 @@ HaveLibMingwEx = @HaveLibMingwEx@ # Other standard (ha!) Unix utilities AR = @ArCmd@ +AR_OPTS = @ArArgs@ ArSupportsInput = @ArSupportsInput@ # 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) # @@ -603,9 +598,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,10 +620,9 @@ LdIsGNULd = @LdIsGNULd@ # 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 +ifeq "$(Windows)" "YES" +XARGS_OPTS = -s 30000 endif # @@ -736,7 +735,7 @@ SRC_ALEX_OPTS = -g HSTAGS = @HstagsCmd@ # Should we build haddock docs? -HADDOCK_DOCS = YES +HADDOCK_DOCS = $(GhcWithInterpreter) # And HsColour the sources? ifeq "$(HSCOLOUR)" "" HSCOLOUR_SRCS = NO @@ -744,116 +743,6 @@ else HSCOLOUR_SRCS = YES endif -# -# Options for compiling in different `ways'. -# -# To configure up your own way, have a look at some of the standard ways -# such as profiling, and create your own set of WAY_*_OPTS defs below. -# After having done that, add your way string to WAYS, and after having -# run the configure script, the different projects will add the new way -# to the list of ways they support. -# - -# -# Definitions of the different ways: -# -# * their name: -# - tag, e.g., p -# - description, e.g., profiling -# * what they mean to the driver: -# - WAY_p_HC_OPTS gives the list of command-line options -# to the driver. -# - -# -# 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 debug_p thr_debug_p - -# -# The following ways currently have treated specially, p t mg, -# as the driver script treats these guys specially and needs to carefully be told -# about the options for these. Hence, we hide the required command line options -# for these in the driver, as this is the only place they are needed. -# -# If you want to add to these default options, fill in the variables below: - -# Way 'v': -WAY_v_NAME=vanilla -WAY_v_HC_OPTS= - -# Way 'p': -WAY_p_NAME=profiling -WAY_p_HC_OPTS= -prof - -# Way 't': -WAY_t_NAME=ticky-ticky profiling -WAY_t_HC_OPTS= -ticky - -# Way 'l': -WAY_l_NAME=event logging -WAY_l_HC_OPTS= -eventlog - -# Way `mp': -WAY_mp_NAME=parallel -WAY_mp_HC_OPTS=-parallel - -# Way `mg': -WAY_mg_NAME=GranSim -WAY_mg_HC_OPTS=-gransim - -# -# These ways apply to the RTS only: -# - -# Way 'thr': -WAY_thr_NAME=threaded -WAY_thr_HC_OPTS=-optc-DTHREADED_RTS - -# Way 'thr_p': -WAY_thr_p_NAME=threaded profiled -WAY_thr_p_HC_OPTS=-optc-DTHREADED_RTS -prof - -# Way 'thr_l': -WAY_thr_l_NAME=threaded event logging -WAY_thr_l_HC_OPTS=-optc-DTHREADED_RTS -eventlog - -# Way 'debug': -WAY_debug_NAME=debug -WAY_debug_HC_OPTS=-optc-DDEBUG - -# Way 'debug_p': -WAY_debug_p_NAME=debug profiled -WAY_debug_p_HC_OPTS=-optc-DDEBUG -prof - -# Way 'debug_t': -WAY_debug_t_NAME=debug ticky-ticky profiling -WAY_debug_t_HC_OPTS= -ticky -optc-DDEBUG - -# Way 'thr_debug': -WAY_thr_debug_NAME=threaded -WAY_thr_debug_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG - -# Way 'thr_debug_p': -WAY_thr_debug_p_NAME=threaded debug profiling -WAY_thr_debug_p_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -prof - -# Way 'dyn': build dynamic shared libraries -WAY_dyn_NAME=dyn -WAY_dyn_HC_OPTS=-fPIC -dynamic - -# Way 'thr_dyn': -WAY_thr_dyn_NAME=thr_dyn -WAY_thr_dyn_HC_OPTS=-fPIC -dynamic -optc-DTHREADED_RTS - -# Way 'thr_debug_dyn': -WAY_thr_debug_dyn_NAME=thr_dyn -WAY_thr_debug_dyn_HC_OPTS=-fPIC -dynamic -optc-DTHREADED_RTS -optc-DDEBUG - -# Way 'debug_dyn': -WAY_debug_dyn_NAME=thr_dyn -WAY_debug_dyn_HC_OPTS=-fPIC -dynamic -optc-DDEBUG - ################################################################################ # # 31-bit-Int Core files @@ -896,12 +785,6 @@ ICONV_LIB_DIRS = @ICONV_LIB_DIRS@ # ################################################################################ -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)