Add fast event logging
[ghc-hetmet.git] / mk / config.mk.in
index f4e156d..ae961bb 100644 (file)
@@ -185,6 +185,9 @@ BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@
 #
 XMLDocWays=
 
+# Should we build latex docs?
+LATEX_DOCS = NO
+
 # Mac OS X deployment target (to cross-compile for older OS versions)
 #
 MACOSX_DEPLOYMENT_VERSION = @MACOSX_DEPLOYMENT_VERSION@
@@ -241,6 +244,7 @@ GhcStage3HcOpts=-O2
 
 GhcProfiled=NO
 GhcDebugged=NO
+GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO)
 
 # Build shared and/or static libs?
 BuildSharedLibs=@BuildSharedLibs@
@@ -272,9 +276,8 @@ endif
 #
 # Target platforms supported:
 #   i386, powerpc
-#   sparc has bitrotted
 #   AIX is not supported 
-ArchSupportsNCG=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc)))
+ArchSupportsNCG=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc sparc)))
 OsSupportsNCG=$(strip $(patsubst $(HostOS_CPP), YES, $(patsubst aix,,$(HostOS_CPP))))
 
 # lazy test, because $(GhcUnregisterised) might be set in build.mk later.
@@ -382,8 +385,11 @@ endif
 #   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
+#   thr_debug_l        : threaded and debugging and event logging
 #
-GhcRTSWays=
+GhcRTSWays=l
 
 # Usually want the debug version
 ifeq "$(BootingFromHc)" "NO"
@@ -391,13 +397,14 @@ GhcRTSWays += debug
 endif
 
 ifeq "$(BuildSharedLibs)" "YES"
-GhcRTSWays += debug_dyn thr_dyn thr_debug_dyn
+GhcRTSWays += dyn debug_dyn 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_p thr_debug,)
+GhcRTSWays += $(if $(findstring NO, $(GhcUnregisterised)),thr thr_debug thr_l,)
+GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),thr_p,)
 
 # We can only build GHCi threaded if we have a threaded RTS:
 GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
@@ -438,21 +445,26 @@ PackageSourceURL = http://darcs.haskell.org/packages/$(PACKAGE)/%{FILE}
 #              system needs to do other special magic if you are
 #              doing object-file splitting
 
+ArchSupportsSplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),YES,NO))
+
 # lazy test, so that $(GhcUnregisterised) can be set in build.mk
-SplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),\
-                   $(if $(filter YES,$(BootingFromHC)),\
-                     NO,\
-                     $(if $(filter NO,$(GhcUnregisterised)),\
-                       YES,\
-                       NO)),\
-                   NO))
+SupportsSplitObjs=$(strip $(if $(filter YES,$(ArchSupportsSplitObjs)),\
+                   $(if $(filter NO,$(BootingFromHc)),\
+                     $(if $(filter NO,$(GhcUnregisterised)),\
+                       YES,\
+                       NO),\
+                      NO),\
+                    NO))
+
+# By default, enable SplitObjs for the libraries if this build supports it
+SplitObjs=$(SupportsSplitObjs)
 
 # Math library
 LIBM=@LIBM@
 
 # .NET interop support?
 #
-DotnetSupport=@DotnetSupport@
+DotnetSupport=NO
 
 # Build unix package?
 #
@@ -531,7 +543,7 @@ ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
 DEFAULT_TMPDIR         = /C/TEMP
 endif
 
-# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+# FPTOOLS_TOP_ABS: the top of the fptools hierarchy, absolute path.
 # On Windows this is a c:/foo/bar style path.
 FPTOOLS_TOP_ABS                = @hardtop@
 
@@ -539,7 +551,7 @@ BIN_DIST_TOPDIR_ABS=$(FPTOOLS_TOP_ABS)
 BIN_DIST_DIR=$(BIN_DIST_TOPDIR_ABS)/$(BIN_DIST_NAME)
 
 BIN_DIST_NAME=ghc-$(ProjectVersion)
-BIN_DIST_TAR=$(FPTOOLS_TOP_ABS)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar
+BIN_DIST_TAR=$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar
 BIN_DIST_TAR_BZ2=$(BIN_DIST_TAR).bz2
 BIN_DIST_PREP_DIR=$(FPTOOLS_TOP_ABS)/bindist-prep
 BIN_DIST_PREP=$(BIN_DIST_PREP_DIR)/$(BIN_DIST_NAME)
@@ -610,9 +622,14 @@ else
 
 # Unix: override libdir and datadir to put ghc-specific stuff in
 # a subdirectory with the version number included.
+#
+# datadir is set to libdir here as GHC needs package.conf and unlit
+# to be in the same place (and things like ghc-pkg need to agree on
+# where package.conf is, so we just set it globally).
+#
 datarootdir := $(datadir0)
-datadir     := $(datadir0)/ghc-$(ProjectVersion)
 libdir      := $(libdir0)/ghc-$(ProjectVersion)
+datadir     := $(libdir)
 
 # New autoconf (>= 2.60?) make a configure with --docdir=DIR etc flags.
 # However, in order to support older autoconf's we don't use them.
@@ -910,31 +927,40 @@ ifneq "$(findstring YES, $(UseStage1) $(BootingFromHc))" ""
 # some variables appropriately:
 HC             =$(GHC_STAGE1)
 MKDEPENDHS     =$(GHC_STAGE1)
+USE_NEW_MKDEPEND_FLAGS = YES
 GhcVersion     = @ProjectVersion@
 GhcPatchLevel  = @ProjectPatchLevel@
 # oops, these are wrong:
 GhcMajVersion  = @GhcMajVersion@
 GhcMinVersion  = @GhcMinVersion@
 
-ghc_ge_605 = YES
 ghc_ge_607 = YES
 ghc_ge_609 = YES
 
 else # not UseStage1 or BootingFromHc
 
+# Some useful GHC version predicates:
+ghc_ge_607 = @ghc_ge_607@
+ghc_ge_609 = @ghc_ge_609@
+
 HC             = @WithHc@
 MKDEPENDHS     = $(GHC)
-BOOTSTRAPPING_PACKAGE_CONF_HC_OPTS = -package-conf $(BOOTSTRAPPING_CONF)
-BOOTSTRAPPING_PACKAGE_CONF_MKDEPENDHS_OPTS = -package-conf $(BOOTSTRAPPING_CONF)
+USE_NEW_MKDEPEND_FLAGS = $(ghc_ge_609)
 GhcVersion     = @GhcVersion@
 GhcPatchLevel  = @GhcPatchLevel@
 GhcMajVersion  = @GhcMajVersion@
 GhcMinVersion  = @GhcMinVersion@
 
-# Some useful GHC version predicates:
-ghc_ge_605 = @ghc_ge_605@
-ghc_ge_607 = @ghc_ge_607@
-ghc_ge_609 = @ghc_ge_609@
+# We build a few packages using the installed GHC as part of the
+# bootstrapping process.  These are installed into a local
+# package.conf file, $(BOOTSTRAPPING_CONF).  When we invoke the
+# installed GHC we need to pass it -package-conf $(BOOTSTRAPPING_CONF).
+# So the following variables expand to -package-conf $(BOOTSTRAPPING_CONF)
+# when $(HC) does *not* point to one of the GHC binaries built in
+# the local tree.
+#
+BOOTSTRAPPING_PACKAGE_CONF_HC_OPTS =$(if $(findstring inplace, $(HC)),,-package-conf $(BOOTSTRAPPING_CONF))
+BOOTSTRAPPING_PACKAGE_CONF_MKDEPENDHS_OPTS =$(if $(findstring inplace, $(MKDEPENDHS)),,-package-conf $(BOOTSTRAPPING_CONF))
 endif
 
 # Canonicalised ghc version number, used for easy (integer) version
@@ -1170,10 +1196,14 @@ ALEX_VERSION            = @AlexVersion@
 #
 GHC_ALEX_OPTS          = -g
 
-#
-# Haddock
-# 
-HADDOCK                        = @HaddockCmd@
+# Should we build haddock docs?
+HADDOCK_DOCS = YES
+# And HsColour the sources?
+ifeq "$(HSCOLOUR)" ""
+HSCOLOUR_SRCS = NO
+else
+HSCOLOUR_SRCS = YES
+endif
 
 #
 # Options for compiling in different `ways'. 
@@ -1222,6 +1252,10 @@ WAY_p_HC_OPTS= -prof
 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
@@ -1242,6 +1276,10 @@ WAY_thr_HC_OPTS=-optc-DTHREADED_RTS
 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
@@ -1262,6 +1300,10 @@ WAY_thr_debug_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG
 WAY_thr_debug_p_NAME=threaded debug profiling
 WAY_thr_debug_p_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -prof
 
+# Way 'thr_debug_l':
+WAY_thr_debug_l_NAME=threaded debug event logging
+WAY_thr_debug_l_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -eventlog
+
 # Way 'dyn': build dynamic shared libraries
 WAY_dyn_NAME=dyn
 WAY_dyn_HC_OPTS=-fPIC -dynamic