[project @ 2004-06-05 21:55:51 by panne]
[ghc-hetmet.git] / mk / config.mk.in
index afd2941..71aa514 100644 (file)
@@ -145,9 +145,9 @@ BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@
 #
 # Build the libs first if we're bootstrapping from .hc files.
 ifeq "$(BootingFromHc)" "YES"
-AllProjects = glafp-utils happy alex haddock libraries hslibs ghc greencard hdirect hood nofib
+AllProjects = glafp-utils happy alex haddock libraries hslibs ghc greencard hdirect hood nofib docs
 else
-AllProjects = glafp-utils happy alex haddock ghc libraries hslibs greencard hdirect hood nofib
+AllProjects = glafp-utils happy alex haddock ghc libraries hslibs greencard hdirect hood nofib docs
 endif
 
 #
@@ -281,6 +281,22 @@ else
 GhcLibWays=p
 endif
 
+# In addition, the RTS is built in some further variations.  Ways that
+# make sense here:
+# 
+#   thr         : threaded
+#   thr_p       : threaded profiled
+#   debug       : debugging (compile with -g for the C compiler, and -DDEBUG)
+#   debug_p     : debugging profiled
+#   thr_debug   : debugging threaded
+#   thr_debug_p : debugging threaded profiled
+#
+ifeq "$(BootingFromHc)" "YES"
+GhcRTSWays=
+else
+GhcRTSWays=thr thr_p debug
+endif
+
 # Option flags to pass to GHC when it's compiling modules in
 # fptools/libraries.  Typically these are things like -O or
 # -dcore-lint or -H32m.  The ones that are *essential* are wired into
@@ -340,32 +356,14 @@ endif
 # ----------------------------------------------------------------------------
 # Options for GHC's RTS
 
-# This is a good way to set things like -optc-g and -optc-DDEBUG for the RTS.
-# GhcRtsHcOpts is used when compiling .hc files and .c files.
-# GhcRtsCcOpts is used when compiling .c  files only.
-
-# For a debugging RTS:
-# GhcRtsHcOpts = -optc-DDEBUG
-# GhcRtsCcOpts = -g
-
-# For an optimised RTS:
+# For an optimised RTS (you probably don't want to change these; we build
+# a debugging RTS by default now.  Use -package rts_debug to get it).
 GhcRtsHcOpts=-O2
 GhcRtsCcOpts=-fomit-frame-pointer
 
 # Include the front panel code?  Needs GTK+.
 GhcRtsWithFrontPanel = NO
 
-#
-# To have the RTS support interoperation with OS threads, set
-# GhcRtsThreaded to YES (preferably via the --enable-threaded-rts
-# configure script option). The consequence of this is spelled out
-# in details elsewhere, but, briefly, Concurrent Haskell threads
-# can now make external (i.e., C) calls without blocking the progress
-# of other CH threads. Multiple native threads can also execute
-# Haskell code without getting in each others way too.
-# 
-GhcRtsThreaded=@ThreadedRts@
-
 ################################################################################
 #
 # libraries project
@@ -408,6 +406,7 @@ GLUT_LIBS=@GLUT_LIBS@
 
 # X11 stuff
 #
+GhcLibsWithX11=@GhcLibsWithX11@
 X_CFLAGS=@X_CFLAGS@
 X_LIBS=@X_LIBS@
 
@@ -522,21 +521,52 @@ FPTOOLS_TOP_ABS_PLATFORM = @hardtop_plat@
 # but since the configure script has them on offer while
 # passing through, we might as well set them.
 
+ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
+
 prefix                 = @prefix@
 exec_prefix            = @exec_prefix@
 bindir                 = @bindir@
 datadir0               = @datadir@
-
-#sysconfdir            = @datadir@
-#sharedstatedir                = @sharedstatedir@
-#localstatedir         = @localstatedir@
 libdir0                        = @libdir@
 includedir             = @includedir@
 oldincludedir          = @oldincludedir@
 mandir                 = @mandir@
 
-#UNUSED:infodir                = @infodir@
-#UNUSED:srcdir          = @srcdir@
+ifeq "$(strip $(prefix))" ""
+prefix         = c:/ghc
+endif
+
+ifacedir   = $(libdir)
+
+ifeq "$(strip $(exec_prefix))" ""
+exec_prefix            = $(prefix)
+endif
+ifeq "$(strip $(bindir))" ""
+bindir                 = $(exec_prefix)/bin
+endif
+
+libexecdir             = $(libdir)
+
+ifeq "$(strip $(datadir))" ""
+datadir                = $(prefix)/imports
+endif
+ifeq "$(strip $(libdir))" ""
+libdir         = $(prefix)
+endif
+ifeq "$(strip $(includedir))" ""
+includedir     = $(prefix)/include
+endif
+
+else
+
+prefix                 = @prefix@
+exec_prefix            = @exec_prefix@
+bindir                 = @bindir@
+datadir0               = @datadir@
+libdir0                        = @libdir@
+includedir             = @includedir@
+oldincludedir          = @oldincludedir@
+mandir                 = @mandir@
 
 #
 # override libdir and datadir to put project-specific stuff in
@@ -586,6 +616,9 @@ ifeq "$(strip $(mandir))" ""
 mandir         = $(prefix)/man
 endif
 
+endif  # i386-unknown-mingw32
+
+
 ################################################################################
 #
 #              Utilities programs: flags
@@ -680,6 +713,7 @@ HSC2HS_PREFIX               = $(FPTOOLS_TOP)/ghc/utils/hsc2hs/
 # (because the version numbers have to be calculated).
 
 GHC            = @WithGhc@
+GhcDir          = $(dir $(GHC))
 GhcVersion     = @GhcVersion@
 GhcMajVersion  = @GhcMajVersion@
 GhcMinVersion  = @GhcMinVersion@
@@ -719,11 +753,13 @@ GHC_STAGE3        = $(FPTOOLS_TOP)/ghc/compiler/stage3/ghc-inplace
 HaveGcc        = @HaveGcc@
 UseGcc         = YES
 WhatGccIsCalled = @WhatGccIsCalled@
+GccVersion      = @GccVersion@
 ifeq "$(strip $(HaveGcc))" "YES"
 ifneq "$(strip $(UseGcc))"  "YES"
   CC   = cc
 else
   CC   = $(WhatGccIsCalled)
+  GccDir = $(dir $(WhatGccIsCalled))
 endif
 endif
 
@@ -1040,6 +1076,34 @@ 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 '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 '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
+WAY_thr_debug_p_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -prof
+
+#
 # Add user-way configurations here:
 #
 WAY_A_NAME=