Commit 45f860cb authored by Simon Marlow's avatar Simon Marlow
Browse files

Use $(if...) to get lazy tests instead of if..endif in a few places

This means it should be possible to set GhcUnregisterised=YES in
build.mk and the rest of the settings should follow automatically
(GhcWithNativeCodeGen, SplitObjs, GhcWithSMP).
parent cedd4187
...@@ -253,11 +253,10 @@ endif ...@@ -253,11 +253,10 @@ endif
ArchSupportsNCG=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc))) ArchSupportsNCG=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc)))
OsSupportsNCG=$(strip $(patsubst $(HostOS_CPP), YES, $(patsubst aix,,$(HostOS_CPP)))) OsSupportsNCG=$(strip $(patsubst $(HostOS_CPP), YES, $(patsubst aix,,$(HostOS_CPP))))
ifeq "$(OsSupportsNCG)$(ArchSupportsNCG)$(GhcUnregisterised)" "YESYESNO" # lazy test, because $(GhcUnregisterised) might be set in build.mk later.
GhcWithNativeCodeGen=YES GhcWithNativeCodeGen=$(strip\
else $(if $(filter YESYESNO,\
GhcWithNativeCodeGen=NO $(OsSupportsNCG)$(ArchSupportsNCG)$(GhcUnregisterised)),YES,NO))
endif
# Include support for generating Java # Include support for generating Java
GhcWithJavaGen=NO GhcWithJavaGen=NO
...@@ -268,11 +267,8 @@ HaveLibDL = @HaveLibDL@ ...@@ -268,11 +267,8 @@ HaveLibDL = @HaveLibDL@
# includes/SMP.h # includes/SMP.h
ArchSupportsSMP=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 sparc powerpc))) ArchSupportsSMP=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 sparc powerpc)))
ifeq "$(ArchSupportsSMP)$(GhcUnregisterised)" "YESNO" # lazy test, because $(GhcUnregisterised) might be set in build.mk later.
GhcWithSMP=YES GhcWithSMP=$(strip $(if $(filter YESNO, $(ArchSupportsSMP)$(GhcUnregisterised)),YES,NO))
else
GhcWithSMP=NO
endif
# Whether to include GHCi in the compiler. Depends on whether the RTS linker # Whether to include GHCi in the compiler. Depends on whether the RTS linker
# has support for this OS/ARCH combination. # has support for this OS/ARCH combination.
...@@ -401,26 +397,15 @@ CorePackages = base Cabal haskell98 readline regex-base regex-compat \ ...@@ -401,26 +397,15 @@ CorePackages = base Cabal haskell98 readline regex-base regex-compat \
# Don't use -split-objs in in GhcLibHcOpts, because the build # Don't use -split-objs in in GhcLibHcOpts, because the build
# system needs to do other special magic if you are # system needs to do other special magic if you are
# doing object-file splitting # 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 # lazy test, so that $(GhcUnregisterised) can be set in build.mk
# .hc files. SplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),\
ifeq "$(DLLized)" "YES" $(if $(filter YES,$(BootingFromHC)),\
SplitObjs=NO NO,\
endif $(if $(filter NO,$(GhcUnregisterised)),\
ifeq "$(BootingFromHc)" "YES" YES,\
SplitObjs=NO NO)),\
endif NO))
ifeq "$(GhcUnregisterised)" "YES"
SplitObjs=NO
endif
ifeq "$(TargetArch_CPP)" "ia64"
SplitObjs=NO
endif
# Math library # Math library
LIBM=@LIBM@ LIBM=@LIBM@
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment