#
XMLDocWays=
+# Mac OS X deployment target (to cross-compile for older OS versions)
+#
+MACOSX_DEPLOYMENT_VERSION = @MACOSX_DEPLOYMENT_VERSION@
+MACOSX_DEPLOYMENT_SDK = @MACOSX_DEPLOYMENT_SDK@
+
+ifneq "$(MACOSX_DEPLOYMENT_VERSION)" ""
+MACOSX_DEPLOYMENT_CC_OPTS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_VERSION) \
+ -isysroot $(MACOSX_DEPLOYMENT_SDK) \
+ --no-builtin-fprintf
+MACOSX_DEPLOYMENT_LD_OPTS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_VERSION) \
+ -Wl,-syslibroot,$(MACOSX_DEPLOYMENT_SDK)
+# We don't extend SRC_CC_OPTS and friends here directly, as (a) they may get
+# overwritten in build.mk and (b) we must not use the deployment options in
+# stage 1 or we get a linker error if the bootstrap compiler is for a more
+# recent OS version.
+#
+# We need --no-builtin-fprintf, as the use of the builtin function optimisation
+# for fprintf together with #include "PosixSource" in the RTS leads to the
+# use of fwrite$UNIX2003 (with GCC 4.0.1 on Mac OS X 10.5.2).
+endif
+
################################################################################
#
# Variables that control how the compiler itself is built
# These are placed later on the command line, and may therefore
# override options from $(GhcHcOpts).
GhcStage1HcOpts=
-GhcStage2HcOpts=
-GhcStage3HcOpts=
+GhcStage2HcOpts=-O2
+GhcStage3HcOpts=-O2
GhcProfiled=NO
GhcDebugged=NO
#------------------------------------------------------------------------------
# Options for Libraries
+# Which directory (in libraries/) contains the integer library?
+INTEGER_LIBRARY=integer-gmp
+
# What extra ways to build the libraries in
# In addition to the normal sequential way, the default is to also build
# profiled prelude libraries.
# -dcore-lint or -H32m. The ones that are *essential* are wired into
# the build system.
#
-# -O is pretty desirable, otherwise no inlining of prelude
+# -O(2) is pretty desirable, otherwise no inlining of prelude
# things (incl "+") happens when compiling with this compiler
#
# -fgenerics switches on generation of support code for
# but we switch it on for the libraries so that we generate
# the code in case someone importing wants it
-GhcLibHcOpts=-O -Rghc-timing -fgenerics
+GhcLibHcOpts=-O2 -Rghc-timing -fgenerics
# Win32 only: Enable the RTS and libraries to be built as DLLs
DLLized=@EnableWin32DLLs@
FPTOOLS_TOP_ABS = @hardtop@
BIN_DIST_NAME=ghc-$(ProjectVersion)
-BIN_DIST_TOPDIR_REL=$(FPTOOLS_TOP)
BIN_DIST_TOPDIR_ABS=$(FPTOOLS_TOP_ABS)
BIN_DIST_DIR=$(BIN_DIST_TOPDIR_ABS)/$(BIN_DIST_NAME)
-BIN_DIST_TARBALL=$(BIN_DIST_TOPDIR_REL)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2
+BIN_DIST_TARBALL=$(FPTOOLS_TOP_ABS)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2
# Definition of installation directories, we don't use half of these, but since
# the configure script has them on offer while passing through, we might as well
libdir0 := @libdir@
includedir := @includedir@
mandir := @mandir@
+dynlibdir := @libdir@
ifeq "$(RelocatableBuild)" "YES"
#
# SRC_HC_OPTS += -O
-SRC_HC_OPTS += -H16m -O
+SRC_HC_OPTS += -H32m -O
# These flags make flex 8-bit
SRC_FLEX_OPTS += -8
-SRC_INSTALL_BIN_OPTS += -s
-
# lint gets all CPP's flags too
SRC_LINT_OPTS += -axz -DLINT $(SRC_CPP_OPTS)
WAY$(_way)_LINT_OPTS += WAY$(_way)_CPP_OPTS
GHC = @WithGhc@
GhcDir = $(dir $(GHC))
-# Set to YES if $(GHC) has the readline package installed
-GhcHasReadline = @GhcHasReadline@
+# Set to YES if $(GHC) has the editline package installed
+GhcHasEditline = @GhcHasEditline@
HBC = @HBC@
NHC = @NHC@
# tree). We can refer to "this ghc" as $(GHC_INPLACE):
GHC_INPLACE = $(GHC_COMPILER_DIR)/ghc-inplace
-GHC_STAGE1 = $(GHC_COMPILER_DIR)/stage1/ghc-inplace
-GHC_STAGE2 = $(GHC_COMPILER_DIR)/stage2/ghc-inplace
-GHC_STAGE3 = $(GHC_COMPILER_DIR)/stage3/ghc-inplace
+GHC_STAGE1 = $(GHC_COMPILER_DIR)/stage1/ghc-inplace -no-user-package-conf
+GHC_STAGE2 = $(GHC_COMPILER_DIR)/stage2/ghc-inplace -no-user-package-conf
+GHC_STAGE3 = $(GHC_COMPILER_DIR)/stage3/ghc-inplace -no-user-package-conf
+
+# NOTE: add -no-user-package-conf for stage 1-3 above, so that
+# we avoid picking up any packages the user might happen to have
+# installed for this GHC version. They are bound to be incompatible
+# with the packages we built in the tree.
+ifeq "$(stage)" "2"
+ UseStage1 = YES
+endif
ifneq "$(findstring YES, $(UseStage1) $(BootingFromHc))" ""
# We are using the stage1 compiler to compile Haskell code, set up
GhcMajVersion = @GhcMajVersion@
GhcMinVersion = @GhcMinVersion@
-ghc_ge_601 = YES
-ghc_ge_602 = YES
-ghc_ge_603 = YES
ghc_ge_605 = YES
ghc_ge_607 = YES
GhcMinVersion = @GhcMinVersion@
# Some useful GHC version predicates:
-ghc_ge_601 = @ghc_ge_601@
-ghc_ge_602 = @ghc_ge_602@
-ghc_ge_603 = @ghc_ge_603@
ghc_ge_605 = @ghc_ge_605@
ghc_ge_607 = @ghc_ge_607@
endif
TAR = @TarCmd@
ZIP = zip
+HSCOLOUR = @HSCOLOUR@
+
#
# This is special to literate/, ToDo: add literate-specific
# configure setup to literate/.
#
# Options to pass to Happy when we're going to compile the output with GHC
#
-GHC_HAPPY_OPTS = -agc
+GHC_HAPPY_OPTS = -agc --strict
# Temp. to work around performance problems in the HEAD around 8/12/2003,
# A Happy compiled with this compiler needs more stack.
WAY_thr_debug_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG
# Way 'thr_debug_p':
-WAY_thr_debug_p_NAME=threaded
+WAY_thr_debug_p_NAME=threaded debug profiling
WAY_thr_debug_p_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -prof
# Way 'dyn': build dynamic shared libraries
CONFIGURE_ARGS = @CONFIGURE_ARGS@
+################################################################################
+#
+# Bindist testing directory
+#
+################################################################################
+
+ifeq "$(Windows)" "YES"
+BIN_DIST_INST_SUBDIR = "install dir"
+else
+# I very much doubt that paths with spaces will work on Unix
+BIN_DIST_INST_SUBDIR = installed
+endif
+
+BIN_DIST_INST_DIR = $(FPTOOLS_TOP_ABS)/bindisttest/$(BIN_DIST_INST_SUBDIR)
+