[project @ 1997-08-22 16:13:00 by reid]
[ghc-hetmet.git] / mk / config.mk.in
index 28041b3..fb9f40f 100644 (file)
 # included by boilerplate.mk (see boilerplate.mk for a list).
 
 
+#################################################################################
+#
+#              Project-wide platform variables
+#
+#################################################################################
+
+# A "platform" is the GNU cpu-type/manufacturer/operating-system target machine
+# specifier.  E.g. sparc-sun-solaris2
+
+HOSTPLATFORM                   = @HostPlatform@
+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@
+
+#
+# ToDo: check if these can be purged now. -- sof
+#
+
+@HostPlatform_CPP@_HOST        = 1
+@HostPlatform_CPP@_TARGET      = 1
+@HostPlatform_CPP@_BUILD       = 1
+
+@HostArch_CPP@_HOST_ARCH       = 1
+@HostArch_CPP@_TARGET_ARCH     = 1
+@HostArch_CPP@_BUILD_ARCH      = 1
+
+@HostOS_CPP@_HOST_OS           = 1
+@HostOS_CPP@_TARGET_OS         = 1
+@HostOS_CPP@_BUILD_OS          = 1
+
+@HostVendor_CPP@_HOST_VENDOR    = 1
+@HostVendor_CPP@_TARGET_VENDOR  = 1
+@HostVendor_CPP@_BUILD_VENDOR   = 1
+
+# Leading underscores on symbol names in object files
+# Valid options: YES/NO
+#
+LeadingUnderscore=@LeadingUnderscore@
+
 
 #################################################################################
 #
 #              * 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?
@@ -82,9 +135,9 @@ IncludeTestDirsInBuild=NO
 # 
 GhcProjectName       =The Glorious Glasgow Haskell Compilation System
 GhcProjectNameShort  =ghc
-GhcProjectVersion    =2.02
+GhcProjectVersion    =2.05
 GhcProjectPatchLevel =0
-GhcBuildeeVersion    =202
+GhcBuildeeVersion    =205
 GhcBuilderVersion    =29
 
 #
@@ -148,15 +201,23 @@ GhcWithRegisterised=YES
 #
 # Target platforms supported:
 #   i386, alpha & sparc
-GhcWithNativeCodeGen=YES
+GhcWithNativeCodeGen=$(shell if (test x$(findstring $(HostArch_CPP),i386 alpha sparc) = x); then echo NO; else echo YES; fi)
 
 # 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
@@ -287,18 +348,58 @@ FPTOOLS_TOP_ABS           = @hardtop@
 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
 
 #################################################################################
 #
@@ -319,49 +420,6 @@ srcdir                  = @srcdir@
 
 #################################################################################
 #
-#              Platform
-#
-#################################################################################
-
-# A "platform" is the GNU cpu-type/manufacturer/operating-system target machine
-# specifier.  E.g. sparc-sun-solaris2
-
-HOSTPLATFORM                   = @HostPlatform@
-TARGETPLATFORM                 = @TargetPlatform@
-BUILDPLATFORM                  = @HostPlatform@
-
-HostPlatform_CPP               = @HostPlatform_CPP@
-HostArch_CPP                   = @HostArch_CPP@
-HostOS_CPP                     = @HostOS_CPP@
-HostVendor_CPP                 = @HostVendor_CPP@
-
-#
-# ToDo: check if these can be purged now. -- sof
-#
-
-@HostPlatform_CPP@_HOST        = 1
-@HostPlatform_CPP@_TARGET      = 1
-@HostPlatform_CPP@_BUILD       = 1
-
-@HostArch_CPP@_HOST_ARCH       = 1
-@HostArch_CPP@_TARGET_ARCH     = 1
-@HostArch_CPP@_BUILD_ARCH      = 1
-
-@HostOS_CPP@_HOST_OS           = 1
-@HostOS_CPP@_TARGET_OS         = 1
-@HostOS_CPP@_BUILD_OS          = 1
-
-@HostVendor_CPP@_HOST_VENDOR    = 1
-@HostVendor_CPP@_TARGET_VENDOR  = 1
-@HostVendor_CPP@_BUILD_VENDOR   = 1
-
-# Leading underscores on symbol names in object files
-# Valid options: YES/NO
-#
-LeadingUnderscore=@LeadingUnderscore@
-
-#################################################################################
-#
 #              Utilities programs: where to find them
 #
 #################################################################################
@@ -406,6 +464,7 @@ INFO_PREFIX                 = $(FPTOOLS_TOP)/literate/info-utils/
 TEXI2HTML_PREFIX        = $(LITERATE_PREFIX)texi2html/
 
 HAPPY_PREFIX           = $(FPTOOLS_TOP)/happy/src/
+GREENCARD_PREFIX       = $(FPTOOLS_TOP)/green-card/src/
 
 UNLIT_PREFIX           = $(FPTOOLS_TOP)/ghc/utils/unlit/
 UGEN_PREFIX             = $(FPTOOLS_TOP)/ghc/utils/ugen/
@@ -473,9 +532,7 @@ INSTALL                     = @INSTALL@
 # install-sh script (if chosen). This not terribly useful to us, so we convert
 # it into an abs. path.
 # 
-ifeq "$(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
@@ -490,6 +547,29 @@ RANLIB                     = @RANLIB@
 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@
@@ -524,6 +604,7 @@ VERBATIM            = $(VERBATIM_PREFIX)verbatim
 RUNTEST                        = $(RUNTEST_PREFIX)runstdtest
 HAPPY                  = @HappyCmd@
 LX                     = @LxCmd@
+GREENCARD              = @GreencardCmd@
 
 ifeq "$(HAPPY)" ""
 HAPPY                  = $(HAPPY_PREFIX)happy