# a section corresponding to each of the main .mk files
# included by boilerplate.mk (see boilerplate.mk for a list).
+ifneq "$(findstring 3.7, $(MAKE_VERSION))" ""
+ifeq "$(findstring 3.79.1, $(MAKE_VERSION))" ""
+$(error GNU make version 3.79.1 or later is required.)
+endif
+endif
################################################################################
#
#
# Which ways should DocBook XML documents be built?
-# options are: dvi ps pdf html
+# options are: dvi ps pdf html chm HxS
#
XMLDocWays=
# Target platforms supported:
# i386, powerpc
# sparc has bitrotted
-ifneq "$(findstring $(HostArch_CPP), i386 x86_64 powerpc)" ""
+# AIX is not supported
+ArchSupportsNCG=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc)))
+OsSupportsNCG=$(strip $(patsubst $(HostOS_CPP), YES, $(patsubst aix,,$(HostOS_CPP))))
+
+ifeq "$(OsSupportsNCG)$(ArchSupportsNCG)" "YESYES"
GhcWithNativeCodeGen=YES
else
GhcWithNativeCodeGen=NO
GhcWithJavaGen=NO
HaveLibDL = @HaveLibDL@
-HaveRtldNext = @HaveRtldNext@
-HaveRtldLocal = @HaveRtldLocal@
# 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)))
-ArchSupportsGHCi=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 powerpc powerpc64 sparc sparc64)))
+ArchSupportsGHCi=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc powerpc64 sparc sparc64)))
ifeq "$(OsSupportsGHCi)$(ArchSupportsGHCi)" "YESYES"
GhcWithInterpreter=YES
ifeq "$(BootingFromHc)" "YES"
GhcRTSWays=
else
-GhcRTSWays=thr thr_p debug
+GhcRTSWays=thr thr_p debug thr_debug
endif
# Option flags to pass to GHC when it's compiling modules in
# Don't use -split-objs in in GhcLibHcOpts, because the build
# system needs to do other special magic if you are
# doing object-file splitting
+ifneq "$(findstring $(HostArch_CPP), i386 x86_64 powerpc sparc)" ""
+SplitObjs=YES
+else
+SplitObjs=NO
+endif
# Don't split object files for libs if we're building DLLs, or booting from
# .hc files.
-SplitObjs=YES
-
ifeq "$(DLLized)" "YES"
SplitObjs=NO
endif
# Options for GHC's 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
+# a debugging RTS by default now. Use -debug to get it).
+GhcRtsHcOpts=-optc-O2
GhcRtsCcOpts=-fomit-frame-pointer
# Include the front panel code? Needs GTK+.
# Haskell compiler options for nofib
NoFibHcOpts = -O
+# Number of times to run each program
+NoFibRuns = 5
+
# ==============================================================================
#
# END OF PROJECT-SPECIFIC STUFF
# Way `s':
WAY_s_NAME=threads (for SMP)
-WAY_s_HC_OPTS=-smp
+WAY_s_HC_OPTS=-smp -optc-DTHREADED_RTS
# Way `mp':
WAY_mp_NAME=parallel
WAY_debug_u_NAME=debug unregisterised
WAY_debug_u_HC_OPTS=-optc-DDEBUG -unreg
+# Way 'debug_s':
+WAY_debug_s_NAME=debug SMP
+WAY_debug_s_HC_OPTS=-optc-DDEBUG -optc-DTHREADED_RTS -smp
+
# Way 'thr_debug':
WAY_thr_debug_NAME=threaded
WAY_thr_debug_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG