# rather than registerised code, i.e., disable the mangler?
BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@
-# build the libs first if we're bootstrapping from .hc files
+# Build Order: we build Happy, Haddock and Alex before GHC if they are
+# in this source tree, just in case our GHC build depends on these
+# local builds rather than installed versions of the tools.
+#
+# Build the libs first if we're bootstrapping from .hc files.
ifeq "$(BootingFromHc)" "YES"
-AllProjects = glafp-utils libraries hslibs ghc greencard happy hdirect hood nofib haddock alex
+AllProjects = glafp-utils happy alex haddock libraries hslibs ghc greencard hdirect hood nofib
else
-AllProjects = glafp-utils ghc libraries hslibs greencard happy hdirect hood nofib haddock alex
+AllProjects = glafp-utils happy alex haddock ghc libraries hslibs greencard hdirect hood nofib
endif
#
IncludeTestDirsInBuild=NO
#
+# Should the various project example directories be built?
+#
+IncludeExampleDirsInBuild=NO
+
+#
# Which ways should SGML documents be built?
# options are: dvi ps pdf html rtf
#
# (way 'u') to get unregisterised code, but the default way will be
# registerised.
#
-# NOTE: this is not the same as building the compiler itself
-# unregisterised. That's done by either (a) bootstrapping with a
-# compiler that was built with GhcUnregisterised=YES, or (b)
-# bootstrapping with a compiler that has way 'u' libraries, and the
-# flag '-unreg' is added to GhcHcOpts above.
+# NOTE: the stage1 compiler will be a registerised binary (assuming
+# the compiler you build with is generating registerised binaries), but
+# the stage2 compiler will be an unregisterised binary.
#
GhcUnregisterised=NO
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
# ----------------------------------------------------------------------------
# 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.
-#
+# DEPRECATED:
+# This option is no longer used. We now always build the threaded RTS,
+# add the flag '-threaded' to GHC to get it.
GhcRtsThreaded=@ThreadedRts@
################################################################################
# Build the Haskell Readline bindings?
#
-GhcLibsWithReadline=@HaveReadlineHeaders@
+GhcLibsWithReadline=@GhcLibsWithReadline@
# Libraries needed for linking with readline
LibsReadline=@LibsReadline@
#
GhcLibsWithObjectIO=@GhcLibsWithObjectIO@
-# Build the Haskell OpenGL/GLUT binding?
+# Build the Haskell OpenGL binding?
+#
+GhcLibsWithOpenGL=@GhcLibsWithOpenGL@
+GLU_CFLAGS=@GLU_CFLAGS@
+GLU_LIBS=@GLU_LIBS@
+
+# Build the Haskell OpenAL binding?
#
-GhcLibsWithHOpenGL=@GhcLibsWithHOpenGL@
-GL_CFLAGS=@GL_CFLAGS@
-GL_LIBS=@GL_LIBS@
+GhcLibsWithOpenAL=@GhcLibsWithOpenAL@
+
+# Build the Haskell GLUT binding?
+#
+GhcLibsWithGLUT=@GhcLibsWithGLUT@
GLUT_LIBS=@GLUT_LIBS@
+# X11 stuff
+#
X_CFLAGS=@X_CFLAGS@
X_LIBS=@X_LIBS@
-
-#
# .NET interop support?
#
DotnetSupport=@DotnetSupport@
+# Build unix package?
+#
+GhcLibsWithUnix=@GhcLibsWithUnix@
+
################################################################################
#
# happy project
# GTK+
GTK_CONFIG = @GTK_CONFIG@
-GTK_VERSION = @GTK_VERSION@
#-----------------------------------------------------------------------------
# Flex (currently unused, could be moved to glafp-utils)
#
GHC_HAPPY_OPTS = -agc
+# Temp. to work around performance problems in the HEAD around 8/12/2003,
+# A Happy compiled with this compiler needs more stack.
+SRC_HAPPY_OPTS = +RTS -K2m -RTS
+
#
# Alex
#
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=