X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=931c4f5244e8df825c2f4a9435986b10f6879610;hp=62875259b1d9cb2cdc3a01064c1c0b90d576fbb5;hb=beb5737b7ee42c4e9373a505e7d957206d69a30e;hpb=70391624e84eb5dc6239a380f31144b8830f788f diff --git a/mk/config.mk.in b/mk/config.mk.in index 6287525..931c4f5 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -32,6 +32,11 @@ # 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 ################################################################################ # @@ -255,7 +260,11 @@ GhcUnregisterised=NO # 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 @@ -265,14 +274,12 @@ endif 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 @@ -304,8 +311,10 @@ endif # # 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 @@ -313,7 +322,7 @@ endif 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 @@ -348,7 +357,7 @@ StripLibraries=NO # 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 powerpc sparc)" "" +ifneq "$(findstring $(HostArch_CPP), i386 x86_64 powerpc sparc)" "" SplitObjs=YES else SplitObjs=NO @@ -374,7 +383,7 @@ endif # 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+. @@ -1041,10 +1050,6 @@ WAY_t_HC_OPTS= -ticky 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 - # Way `mp': WAY_mp_NAME=parallel WAY_mp_HC_OPTS=-parallel @@ -1065,6 +1070,10 @@ WAY_thr_HC_OPTS=-optc-DTHREADED_RTS 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 @@ -1079,7 +1088,7 @@ WAY_debug_u_HC_OPTS=-optc-DDEBUG -unreg # Way 'debug_s': WAY_debug_s_NAME=debug SMP -WAY_debug_s_HC_OPTS=-optc-DDEBUG -smp +WAY_debug_s_HC_OPTS=-optc-DDEBUG -optc-DTHREADED_RTS -optc-DSMP # Way 'thr_debug': WAY_thr_debug_NAME=threaded