Don't use absolute paths unnecessarily when making bindists
[ghc-hetmet.git] / mk / config.mk.in
index 53d7f81..32fb196 100644 (file)
@@ -26,7 +26,6 @@
 TOP            = @hardtop@
 
 include $(TOP)/mk/project.mk
-include $(TOP)/mk/install.mk
 
 ################################################################################
 #
@@ -102,13 +101,9 @@ GhcProfiled=NO
 GhcDebugged=NO
 GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO)
 
-# Build shared and/or static libs?
+# Do we support shared libs?
 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@
 
@@ -196,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
@@ -221,10 +219,13 @@ ifneq "$(BootingFromHc)" "YES"
 GhcLibWays += p
 endif
 
-ifeq "$(BuildSharedLibs)" "YES"
+ifeq "$(PlatformSupportsSharedLibs)" "YES"
 GhcLibWays += dyn
 endif
 
+# Handy way to test whether we're building shared libs or not.
+BuildSharedLibs=$(strip $(if $(findstring dyn,$(GhcLibWays)),YES,NO))
+
 # In addition, the RTS is built in some further variations.  Ways that
 # make sense here:
 # 
@@ -246,15 +247,12 @@ ifeq "$(BootingFromHc)" "NO"
 GhcRTSWays += debug 
 endif
 
-ifeq "$(BuildSharedLibs)" "YES"
-GhcRTSWays += dyn debug_dyn $(if $(findstring NO, $(GhcUnregisterised)),thr_dyn thr_debug_dyn)
-endif
-
 # Want the threaded versions unless we're unregisterised
 # Defer the check until later by using $(if..), because GhcUnregisterised might
 # be set in build.mk, which hasn't been read yet.
 GhcRTSWays += $(if $(findstring NO, $(GhcUnregisterised)),thr thr_debug thr_l,)
 GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),$(if $(findstring NO, $(GhcUnregisterised)),thr_p,),)
+GhcRTSWays += $(if $(findstring dyn, $(GhcLibWays)), dyn debug_dyn $(if $(findstring NO, $(GhcUnregisterised)),thr_dyn thr_debug_dyn),)
 
 # We can only build GHCi threaded if we have a threaded RTS:
 GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
@@ -363,14 +361,11 @@ 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_DIR=bindistprep/$(BIN_DIST_NAME)
 
 BIN_DIST_NAME=ghc-$(ProjectVersion)
-BIN_DIST_TAR=$(TOP)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar
+BIN_DIST_TAR=$(TOP)/bindistprep/$(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
 
 WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-i386-windows
@@ -504,7 +499,7 @@ INSTALL_GHC_STAGE=2
 
 BOOTSTRAPPING_CONF = libraries/bootstrapping.conf
 
-INPLACE_PACKAGE_CONF = $(INPLACE_LIB)/package.conf
+INPLACE_PACKAGE_CONF = $(INPLACE_LIB)/package.conf.d
 
 GhcVersion     = @GhcVersion@
 GhcPatchLevel  = @GhcPatchLevel@
@@ -512,6 +507,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
@@ -551,7 +548,7 @@ 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))
 
 #-----------------------------------------------------------------------------
@@ -740,7 +737,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
@@ -748,116 +745,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