Added comment about GNU coding standards/autoconf history
[ghc-hetmet.git] / mk / config.mk.in
index 80c52f2..7148144 100644 (file)
@@ -357,11 +357,7 @@ endif
 GhcRTSWays += $(if $(findstring NO, $(GhcUnregisterised)),thr thr_p thr_debug,)
 
 # We can only build GHCi threaded if we have a threaded RTS:
-ifneq "$(findstring thr, $(GhcRTSWays))" ""
-GhcThreaded=YES
-else
-GhcThreaded=NO
-endif
+GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
 
 # Option flags to pass to GHC when it's compiling modules in
 # fptools/libraries.  Typically these are things like -O or
@@ -501,23 +497,47 @@ ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
 DEFAULT_TMPDIR         = /C/TEMP
 endif
 
-# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path. (POSIX / unix-style path).
+# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
+# On Windows this is a c:/foo/bar style path.
 FPTOOLS_TOP_ABS                = @hardtop@
-# The platform specific version of 'hardtop'.
-FPTOOLS_TOP_ABS_PLATFORM = @hardtop_plat@
 
 # This gets used in the default docdir
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
 
 BIN_DIST_NAME=ghc-$(ProjectVersion)
-BIN_DIST_TOPDIR=$(FPTOOLS_TOP_ABS)
-BIN_DIST_DIR=$(BIN_DIST_TOPDIR)/$(BIN_DIST_NAME)
-BIN_DIST_TARBALL=$(BIN_DIST_TOPDIR)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2
-
-#
-# 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 set them.
+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
+
+# 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
+# set them. Note that we have to be careful, because the GNU coding standards
+# have changed a bit over the course of time, and autoconf development reflects
+# this.
+#
+# A little bit of history regarding autoconf and GNU coding standards, use this
+# as a cheat-sheet for the stuff below:
+#
+# variable    | default < 2.60     | default >= 2.60
+# ------------+--------------------+--------------------------------------
+# exec_prefix | ${prefix}          | ${prefix}
+# libdir      | ${exec_prefix}/lib | ${exec_prefix}/lib
+# datarootdir | NONE!              | ${prefix}/share
+# datadir     | ${prefix}/share    | ${datarootdir}
+# infodir     | ${prefix}/info     | ${datarootdir}/info
+# mandir      | ${prefix}/man      | ${datarootdir}/man
+# docdir      | NONE!              | ${datarootdir}/doc/${PACKAGE_TARNAME}
+# htmldir     | NONE!              | ${docdir}
+# dvidir      | NONE!              | ${docdir}
+# pdfdir      | NONE!              | ${docdir}
+# psdir       | NONE!              | ${docdir}
+#
+# NOTE: The default e.g. ${docdir} above means that autoconf substitutes the
+# string "${docdir}", not the value of docdir! This is crucial for the GNU
+# coding standards.
 
 prefix          := @prefix@
 
@@ -618,6 +638,11 @@ ifeq "$(strip $(mandir))" ""
 mandir         = $(prefix)/man
 endif
 
+# This is a bit of a lie, as this is a wrapper rather than the program
+# itself. However, it means that we don't have to worry about Windows
+# and non-Windows having different extensions.
+GHC_PKG_PROG = $(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)/ghc-pkg-inplace
+
 #-----------------------------------------------------------------------------
 # install configuration