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_INST_DIR = $(FPTOOLS_TOP_ABS)/bindisttest/installed
+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"
INSTALL_MAN = $(INSTALL) -m 644
INSTALL_DIR = $(MKDIRHIER)
+#
+# runhaskell and hsc2hs are special, in that other compilers besides
+# GHC might provide them. Systems with a package manager often come
+# with tools to manage this kind of clash, e.g. RPM's
+# update-alternatives. When building a distribution for such a system,
+# we recommend setting both of the following to 'YES'.
+#
+# NO_INSTALL_RUNHASKELL = YES
+# NO_INSTALL_HSC2HS = YES
+#
+# NB. we use negative tests here because for binary-distributions we cannot
+# test build-time variables at install-time, so they must default to on.
+
# -----------------------------------------------------------------------------
# Utilities programs: flags
# 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_UNLIT_DIR_REL = $(GHC_UTILS_DIR_REL)/unlit
GHC_HP2PS_DIR_REL = $(GHC_UTILS_DIR_REL)/hp2ps
GHC_HSTAGS_DIR_REL = $(GHC_UTILS_DIR_REL)/hasktags
+GHC_GHCTAGS_DIR_REL = $(GHC_UTILS_DIR_REL)/ghctags
GHC_HSC2HS_DIR_REL = $(GHC_UTILS_DIR_REL)/hsc2hs
GHC_TOUCHY_DIR_REL = $(GHC_UTILS_DIR_REL)/touchy
GHC_PKG_DIR_REL = $(GHC_UTILS_DIR_REL)/ghc-pkg
GHC_UNLIT_DIR = $(FPTOOLS_TOP)/$(GHC_UNLIT_DIR_REL)
GHC_HP2PS_DIR = $(FPTOOLS_TOP)/$(GHC_HP2PS_DIR_REL)
GHC_HSTAGS_DIR = $(FPTOOLS_TOP)/$(GHC_HSTAGS_DIR_REL)
+GHC_GHCTAGS_DIR = $(FPTOOLS_TOP)/$(GHC_GHCTAGS_DIR_REL)
GHC_HSC2HS_DIR = $(FPTOOLS_TOP)/$(GHC_HSC2HS_DIR_REL)
GHC_TOUCHY_DIR = $(FPTOOLS_TOP)/$(GHC_TOUCHY_DIR_REL)
GHC_PKG_DIR = $(FPTOOLS_TOP)/$(GHC_PKG_DIR_REL)
GHC_UNLIT_DIR = $(FPTOOLS_TOP_ABS)/$(GHC_UNLIT_DIR_REL)
GHC_HP2PS_DIR_ABS = $(FPTOOLS_TOP_ABS)/$(GHC_HP2PS_DIR_REL)
GHC_HSTAGS_DIR_ABS = $(FPTOOLS_TOP_ABS)/$(GHC_HSTAGS_DIR_REL)
+GHC_GHCTAGS_DIR_ABS = $(FPTOOLS_TOP_ABS)/$(GHC_GHCTAGS_DIR_REL)
GHC_HSC2HS_DIR_ABS = $(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)
GHC_TOUCHY_DIR_ABS = $(FPTOOLS_TOP_ABS)/$(GHC_TOUCHY_DIR_REL)
GHC_PKG_DIR_ABS = $(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)
GHC_UNLIT_PGM = unlit$(exeext)
GHC_HP2PS_PGM = hp2ps
GHC_HSTAGS_PGM = hasktags
+GHC_GHCTAGS_INPLACE_PGM = ghctags-inplace
GHC_HSC2HS_INPLACE_PGM = hsc2hs-inplace
GHC_TOUCHY_PGM = touchy$(exeext)
GHC_MANGLER_PGM = ghc-asm
UNLIT = $(GHC_UNLIT_DIR)/$(GHC_UNLIT_PGM)
HP2PS = $(GHC_HP2PS_DIR)/$(GHC_HP2PS_PGM)
HSTAGS = $(GHC_HSTAGS_DIR)/$(GHC_HSTAGS_PGM)
+GHCTAGS_INPLACE = $(GHC_GHCTAGS_DIR)/$(GHC_GHCTAGS_INPLACE_PGM)
HSC2HS_INPLACE = $(GHC_HSC2HS_DIR)/$(GHC_HSC2HS_INPLACE_PGM)
MANGLER = $(GHC_MANGLER_DIR)/$(GHC_MANGLER_PGM)
SPLIT = $(GHC_SPLIT_DIR)/$(GHC_SPLIT_PGM)
# 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.
ifneq "$(findstring YES, $(UseStage1) $(BootingFromHc))" ""
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.
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)
+