#
#---------------------------------------------------------------
-# Specify the Haskell compiler to be used to compile the compiler itself
-#
-# WithGhcHc Path name of the compiler to use
-#
-# WithGhcHcType What "type" of compiler is being used
-# Valid options:
-# HC_CHALMERS_HBC
-# HC_GLASGOW_GHC
-# HC_ROJEMO_NHC
-# HC_UNSPECIFIED
-
-WithGhcHc = @WithHc@
-
-# Variable which is set to the version number of the $(WithGhcHc) we're using.
-# Not currently used, but might come in handy sometime soon.
-#WithGhcHcVersion = $(shell echo `if ( $(WithGhcHc) --version 2>/dev/null >/dev/null ) then $(WithGhcHc) --version 2>&1 | @SedCmd@ -e 's/^.*version [^0-9]*\([.0-9]*\).*/\1/;s/\.//'; else echo unknown; fi; ` )
+# The compiler used to build GHC is $(GHC). To change the actual compiler
+# used, re-configure with --with-ghc=<path-to-ghc>.
# Extra ways in which to build the compiler (for example, you might want to
# build a profiled compiler so you can see where it spends its time)
#
# -dcore-lint check the types after every pass of the compiler;
# a pretty strong internal check
-GhcHcOpts=-O
+GhcHcOpts=-O -Rghc-timing
# GhcWithHscBuiltViaC - build GHC compiler proper (\`hsc') from .hc files?
GhcWithHscBuiltViaC=@BootingFromHc@
-# Build a registerised version of hsc and runtime
-# (unregisterised used for Hugs at the moment)
-GhcWithRegisterised=YES
-
# Build a compiler with a native code generator backend
# (as well as a C backend)
#
# Target platforms supported:
# i386, alpha & sparc
-GhcWithNativeCodeGen=$(shell if (test x$(findstring $(HostArch_CPP),i386 alpha sparc) = x); then echo NO; else echo YES; fi)
+ifneq "$(findstring $(HostArch_CPP), i386 alpha sparc)" ""
+GhcWithNativeCodeGen=YES
+else
+GhcWithNativeCodeGen=NO
+endif
+
+# Include GHCi in the compiler. Default to NO for the time being.
+
+# ifneq "$(findstring $(HostOS_CPP), linux solaris freebsd netbsd openbsd)" ""
+# GhcWithInterpreter=YES
+# else
+GhcWithInterpreter=NO
+# endif
#
# Building various ways?
# -O is pretty desirable, otherwise no inlining of prelude
# things (incl "+") happens when compiling with this compiler
-GhcLibHcOpts=-O
+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
-EnableWin32DLLs=@EnableWin32DLLs@
-ifeq "$(EnableWin32DLLs)" "YES"
+DLLized=@EnableWin32DLLs@
+ifeq "$(DLLized)" "YES"
SplitObjs=NO
else
SplitObjs=YES
GhcRtsHcOpts=-O2
GhcRtsCcOpts=-O2 -optc-fomit-frame-pointer
+# Include the front panel code? Needs GTK+.
+GhcRtsWithFrontPanel = NO
+
################################################################################
#
# hslibs project
HsLibsFor = ghc
# hslibs for GHC also uses the following variables (defined above):
-# GhcLibWays, GhcLibHcOpts, GhcLibToolsHcOpts, EnableWin32DLLs, StripLibraries
+# GhcLibWays, GhcLibHcOpts, GhcLibToolsHcOpts, DLLized, StripLibraries
# Haskell compiler options for tools in hslibs
GhcLibToolsHcOpts=-O
#
ReadlineIncludePath=
+# Build the Haskell OpenGL/GLUT binding?
+#
+GhcLibsWithHOpenGL=@GhcLibsWithHOpenGL@
+
################################################################################
#
# happy project
# this in build.mk or set your environment variable "TMPDIR" to point
# to somewhere with more space. (TMPDIR=. is a good choice).
-TMPDIR = /tmp
+# DEFAULT_TMPDIR isn't called TMPDIR because GNU make tends to
+# override an environment variable with the value of the make variable
+# of the same name (if it exists) when executing sub-processes, so
+# setting the TMPDIR env var would have no effect in the build tree.
+
+DEFAULT_TMPDIR = /tmp
# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
ifeq "$(strip $(mandir))" ""
mandir = $(prefix)/man
endif
-
+
################################################################################
#
GREENCARD_PREFIX = $(FPTOOLS_TOP)/green-card/src/
UNLIT_PREFIX = $(FPTOOLS_TOP)/ghc/utils/unlit/
-STAT2RESID_PREFIX = $(FPTOOLS_TOP)/ghc/utils/stat2resid/
HP2PS_PREFIX = $(FPTOOLS_TOP)/ghc/utils/hp2ps/
HSTAGS_PREFIX = $(FPTOOLS_TOP)/ghc/utils/hstags/
-
+HSC2HS_PREFIX = $(FPTOOLS_TOP)/ghc/utils/hsc2hs/
#-----------------------------------------------------------------------------
# Haskell compilers and mkdependHS
#
# $(HC) is a generic Haskell 98 compiler, set to $(GHC) by default.
# $(MKDEPENDHS) is the Haskell dependency generator (ghc -M).
+#
+# NOTE: Don't override $(GHC) in build.mk, use configure --with-ghc instead
+# (because the version numbers have to be calculated).
-GHC = @GHC@
+GHC = @WithGhc@
GhcVersion = @GhcVersion@
GhcMajVersion = @GhcMajVersion@
GhcMinVersion = @GhcMinVersion@
NHC = @NHC@
HC = @WithHc@
-MKDEPENDHS = $(HC)
+MKDEPENDHS = $(GHC)
# Sometimes we want to invoke ghc from the build tree in different
# projects (eg. it's handy to have a nofib & a ghc build in the same
# tree). We can refer to "this ghc" as $(GHC_INPLACE):
-GHC_INPLACE = $(FPTOOLS_TOP)/ghc/driver/ghc-inplace
+GHC_INPLACE = $(FPTOOLS_TOP)/ghc/compiler/ghc-inplace
#-----------------------------------------------------------------------------
# C compiler
HaveRegex = @HaveRegex@
#-----------------------------------------------------------------------------
+# GTK+
+
+GTK_CONFIG = @GTK_CONFIG@
+GTK_VERSION = @GTK_VERSION@
+
+#-----------------------------------------------------------------------------
# Flex
FLEX = @LEX@
#
INSTALL := $(subst .././install-sh,$(FPTOOLS_TOP_ABS)/install-sh,$(INSTALL))
LATEX = latex
+HEVEA = hevea
+HACHA = hacha
LN_S = @LN_S@
MANMACROS = -man
MSMACROS = -ms
# Stuff from fptools/ghc/utils
#
UNLIT = $(UNLIT_PREFIX)unlit$(EXE_SUFFIX)
-STAT2RESID = $(STAT2RESID_PREFIX)stat2resid
HP2PS = $(HP2PS_PREFIX)hp2ps$(EXE_SUFFIX)
-HSCPP = $(HSCPP_PREFIX)hscpp
HSTAGS = $(HSTAGS_PREFIX)hstags
+HSC2HS = $(HSC2HS_PREFIX)hsc2hs-inplace
#
# Options for the compiling different `ways'. Various projects within
WAY_mg_NAME=GranSim
WAY_mg_HC_OPTS=-gransim
-# Way `dll':
-WAY_dll_NAME=Win32 DLLs
-WAY_dll_HC_OPTS=-dll
-
#
# Add user-way configurations here:
#