# 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
################################################################################
#
# 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
#
# thr : threaded
# thr_p : threaded profiled
+# s : smp
# debug : debugging (compile with -g for the C compiler, and -DDEBUG)
# debug_p : debugging profiled
+# debug_s : debugging smp
# debug_u : debugging unregisterised
# thr_debug : debugging threaded
# thr_debug_p : debugging threaded profiled
ifeq "$(BootingFromHc)" "YES"
GhcRTSWays=
else
-GhcRTSWays=thr thr_p debug thr_debug
+GhcRTSWays=thr thr_p s debug debug_s thr_debug
endif
# Option flags to pass to GHC when it's compiling modules in
# For an optimised RTS (you probably don't want to change these; we build
# a debugging RTS by default now. Use -debug to get it).
-GhcRtsHcOpts=-O2
+GhcRtsHcOpts=-optc-O2
GhcRtsCcOpts=-fomit-frame-pointer
# Include the front panel code? Needs GTK+.
WAY_u_NAME=unregisterized (using portable C only)
WAY_u_HC_OPTS=-unreg
-# Way `s':
-WAY_s_NAME=threads (for SMP)
-WAY_s_HC_OPTS=-smp -optc-DTHREADED_RTS
-
# Way `mp':
WAY_mp_NAME=parallel
WAY_mp_HC_OPTS=-parallel
WAY_thr_p_NAME=threaded profiled
WAY_thr_p_HC_OPTS=-optc-DTHREADED_RTS -prof
+# Way `s':
+WAY_s_NAME=threads (for SMP)
+WAY_s_HC_OPTS=-optc-DSMP -optc-DTHREADED_RTS
+
# Way 'debug':
WAY_debug_NAME=debug
WAY_debug_HC_OPTS=-optc-DDEBUG
# Way 'debug_s':
WAY_debug_s_NAME=debug SMP
-WAY_debug_s_HC_OPTS=-optc-DDEBUG -optc-DTHREADED_RTS -smp
+WAY_debug_s_HC_OPTS=-optc-DDEBUG -optc-DTHREADED_RTS -optc-DSMP
# Way 'thr_debug':
WAY_thr_debug_NAME=threaded