# * ghc&hslibs next
# then it's up to you
-ProjectsToBuild = glafp-utils literate ghc hslibs
+ProjectsToBuild = glafp-utils literate ghc hslibs
+#
+# Make a distinction between building and installing, ProjectsToInstall
+# does not include the literate bits..
+#
+ProjectsToInstall = glafp-utils ghc hslibs
#
# Should the various project tests directories be built?
#
GhcProjectName =The Glorious Glasgow Haskell Compilation System
GhcProjectNameShort =ghc
-GhcProjectVersion =2.02
+GhcProjectVersion =2.04
GhcProjectPatchLevel =0
-GhcBuildeeVersion =202
+GhcBuildeeVersion =204
GhcBuilderVersion =29
#
# Build the compiler with the deforester included?
GhcWithDeforester=NO
+#
+# Building various ways?
+# (right now, empty if not).
+BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS)))
+BuildingConcurrent=$(subst mc,YES,$(filter mc,$(WAYS)))
+BuildingProfiling=$(subst p,YES,$(filter p,$(WAYS)))
+BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
+BuildingProfilingConcurrent=$(subst mr,YES,$(filter mr,$(WAYS)))
#---------------------------------------------------------------
#
-# Variables that control how the prelude libararies and runtime system are built
+# Variables that control how the prelude libraries and runtime system are built
# What extra ways to build the libraries in
# In addition to the normal sequential way, the default is to also build
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
+#UNUSED, see below: libexecdir = @libexecdir@
datadir = @datadir@
-sysconfdir = @datadir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
+#sysconfdir = @datadir@
+#sharedstatedir = @sharedstatedir@
+#localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
includedir = @includedir@
oldincludedir = @oldincludedir@
mandir = @mandir@
-srcdir = @srcdir@
+#UNUSED:srcdir = @srcdir@
+
+#
+# Default values for most of the above are only set if
+# they weren't configured to anything in particular
+# via the configure script. (i.e., we make no assumption
+# that the autoconf-generated script will assign defaults
+# to all of the above).
+#
+ifeq "$(strip $(exec_prefix))" ""
+exec_prefix = $(prefix)
+endif
+ifeq "$(strip $(bindir))" ""
+bindir = $(exec_prefix)/bin
+endif
+
+#
+# NOTE: by intention, libexecdir and libdir point to
+# the same place.
+# => Only way to override this is to set libexecdir= on the command line.
+# (NOTE: configure script setting is ignored).
+libexecdir = $(libdir)
+
+ifeq "$(strip $(datadir))" ""
+datadir = $(prefix)/share
+endif
+ifeq "$(strip $(libdir))" ""
+libdir = $(exec_prefix)/lib
+endif
+ifeq "$(strip $(infodir))" ""
+infodir = $(prefix)/info
+endif
+ifeq "$(strip $(includedir))" ""
+includedir = $(prefix)/include
+endif
+ifeq "$(strip $(oldincludedir))" ""
+oldincludedir = /usr/include
+endif
+ifeq "$(strip $(mandir))" ""
+mandir = $(prefix)/man
+endif
+
#################################################################################
#
TARGETPLATFORM = @TargetPlatform@
BUILDPLATFORM = @HostPlatform@
+# Hack alert:
+# in one or two places, we need to get at the OS version (major and perhaps even minor),
+# HostOS_Full is the OS name reported by AC_CANONICAL_SYSTEM.
+#
HostPlatform_CPP = @HostPlatform_CPP@
HostArch_CPP = @HostArch_CPP@
HostOS_CPP = @HostOS_CPP@
+HostOS_Full = @HostOS_Full@
HostVendor_CPP = @HostVendor_CPP@
#
# install-sh script (if chosen). This not terribly useful to us, so we convert
# it into an abs. path.
#
-if "$(INSTALL)" ".././install-sh"
-INSTALL = $(FPTOOLS_TOP_ABS)/install-sh
-endif
+INSTALL := $(subst .././install-sh,$(FPTOOLS_TOP_ABS)/install-sh,$(INSTALL))
LATEX = latex
LN_S = @LN_S@
MANMACROS = -man
RM = rm -f
SED = @SedCmd@
SHELL = /bin/sh
+#
+# In emergency situations, REAL_SHELL is used to perform shell commands
+# from within the ghc driver script, by scribbling the command line to
+# a temp file and then having $(REAL_SHELL) execute it.
+#
+# The reason for having to do this is that overly long command lines
+# cause unnecessary trouble with some shells (e.g., /bin/sh on Solaris
+# 2.5.1), which is why this backdoor is provided. The situation of overly
+# long command lines is either encountered while doing `make boot' in ghc/compiler,
+# or when linking the compiler binary (`hsc').
+#
+# We do not use SHELL to execute long commands, as `make' will more than likely
+# override whatever setting you have in your environment while executing.
+
+# By default, REAL_SHELL is set equal SHELL, which is not really a smart move
+# as it SHELL that will show up the bogosity in the first place, but setting
+# it to anything else isn't really portable.
+#
+# ====> If long command lines cause you trouble, invoke `ghc' (via `make' or otherwise)
+# with REAL_SHELL set to something else than /bin/sh, for instance, your favourite
+# command shell.
+#
+REAL_SHELL=$(SHELL)
SIZE = size
STRIP = strip
TAR = @TarCmd@