#
################################################################################
+# BootingFromHc - build GHC and the libraries from .hc files?
+BootingFromHc = @BootingFromHc@
+
# build the libs first if we're bootstrapping from .hc files
-ifeq "$(GhcWithHscBuiltViaC)" "YES"
+ifeq "$(BootingFromHc)" "YES"
AllProjects = glafp-utils hslibs ghc green-card happy hdirect hood nofib
else
AllProjects = glafp-utils ghc hslibs green-card happy hdirect hood nofib
# a pretty strong internal check
GhcHcOpts=-O -Rghc-timing
-# GhcWithHscBuiltViaC - build GHC compiler proper (\`hsc') from .hc files?
-GhcWithHscBuiltViaC=@BootingFromHc@
-
# Build a compiler that will build *unregisterised* libraries and
# binaries by default. Unregisterised code is supposed to compile and
# run without any support for architecture-specific assembly mangling,
# In addition to the normal sequential way, the default is to also build
# profiled prelude libraries.
# When booting from .hc files, turn this off.
-ifeq "$(GhcWithHscBuiltViaC)" "YES"
+ifeq "$(BootingFromHc)" "YES"
GhcLibWays=
else
GhcLibWays=p
GhcLibHcOpts=-O -Rghc-timing
# Win32 only: Enable the RTS and libraries to be built as DLLs
-# Don't split object files for libs if we're building DLLs
DLLized=@EnableWin32DLLs@
+
+# Don't split object files for libs if we're building DLLs, or booting from
+# .hc files.
+SplitObjs=YES
+
ifeq "$(DLLized)" "YES"
SplitObjs=NO
-else
-SplitObjs=YES
endif
-
+ifeq "$(BootingFromHc)" "YES"
+SplitObjs=NO
+endif
# Strip local symbols from libraries? This can make the libraries smaller,
# but makes debugging somewhat more difficult. Doesn't work with all ld's.
#
ReadlineIncludePath=
+# Math library
+LIBM=@LIBM@
+
# Build the Haskell OpenGL/GLUT binding?
#
GhcLibsWithHOpenGL=@GhcLibsWithHOpenGL@
################################################################################
# Directory used by GHC (and possibly other tools) for storing
-# temporary files. If your /tmp isn't big enough, either override
+# temporary files. If your TMPDIR isn't big enough, either override
# this in build.mk or set your environment variable "TMPDIR" to point
# to somewhere with more space. (TMPDIR=. is a good choice).
FPTOOLS_TOP_ABS = @hardtop@
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
-FPTOOLS_TOP_ABS = $(patsubst /cygdrive/%/,%:/,@hardtop@)
+FPTOOLS_TOP_ABS = $(subst \,/,$(shell cygpath -w @hardtop@))
endif
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
-FPTOOLS_TOP_ABS = $(patsubst /cygdrive/%/,%:/,@hardtop@)
+FPTOOLS_TOP_ABS = $(subst \,/,$(shell cygpath -w @hardtop@))
endif
#
endif
endif
+# default C compiler flags
+SRC_CC_OPTS = -O
+
#-----------------------------------------------------------------------------
# GMP Library (version 2.0.x or above)
#
#
# Options to pass to Happy when we're going to compile the output with GHC
#
-GHC_HAPPY_OPTS = $(shell if expr $(HAPPY_VERSION) \< "1.8" >/dev/null; then echo -g; else echo -agc; fi)
+GHC_HAPPY_OPTS = $(shell if ( test `echo $(HAPPY_VERSION) | sed -e "s/\(.*\)\..*/\1/g"` "-gt" "1" || test `echo $(HAPPY_VERSION) | sed -e "s/.*\.\(.*\)/\1/g"` "-ge" "9" ); then echo -agc; else echo -g; fi)
#
# Stuff from fptools/literate