Make the new build system install the documentation
[ghc-hetmet.git] / mk / config.mk.in
index e7cc04d..fa9720d 100644 (file)
 #
 #        If you don't have a build.mk file then you get defaults for everything.
 #        The defaults should provide a reasonable vanilla build.
-#
-# This is one of only two files that configure generates (the other is config.h)
-#
-
-ifneq "$(findstring 3.7, $(MAKE_VERSION))" ""
-ifeq "$(findstring 3.79.1, $(MAKE_VERSION))" ""
-$(error GNU make version 3.79.1 or later is required.)
-endif
-endif
 
 # TOP: the top of the fptools hierarchy, absolute path.
 # On Windows this is a c:/foo/bar style path.
@@ -51,11 +42,8 @@ BootingFromHc = @BootingFromHc@
 # rather than registerised code, i.e., disable the mangler?
 BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@
 
-#
-# Which ways should DocBook XML documents be built?
-# options are: dvi ps pdf html chm HxS
-#
-XMLDocWays=
+NO_INCLUDE_DEPS = NO
+NO_INCLUDE_PKGDATA = NO
 
 # Should we build latex docs?
 LATEX_DOCS = NO
@@ -189,6 +177,16 @@ else
 GhcEnableTablesNextToCode=YES
 endif
 
+# Whether to use libffi for adjustors (foreign import "wrapper") or
+# not.  If we have built-in support (rts/Adjustor.c) then we use that,
+# otherwise we fall back on libffi, which is slightly slower.
+ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 alpha powerpc ia64,),YES,NO))
+ifeq "$(ArchHasAdjustorSupport)" "YES"
+UseLibFFIForAdjustors=NO
+else
+UseLibFFIForAdjustors=YES
+endif
+
 # On Windows we normally want to make a relocatable bindist, to we
 # ignore flags like libdir
 ifeq "$(Windows)" "YES"
@@ -207,25 +205,6 @@ BeConservative = NO
 BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS)))
 BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
 
-# Interface file version (hi-boot files only)
-#
-# A GHC built with HscIfaceFileVersion=n will look for 
-#      M.hi-boot-n, and only then for 
-#      M.hi-boot.
-# (It'll be happy with the latter if the former doesn't exist.)
-#
-#
-# This variable is used ONLY for hi-boot files.  Its only purpose is
-# to allow you to have a single directory with multiple .hi-boot files
-# for the same module, each corresponding to a different version of
-# GHC.
-#
-# HscIfaceFileVersion is propagated to hsc via
-# compiler/main/Config.hs, which is automatically generated by
-# compiler/Makefile.
-
-HscIfaceFileVersion=6
-
 #------------------------------------------------------------------------------
 # Options for Libraries
 
@@ -392,6 +371,9 @@ BIN_DIST_PREP_DIR=$(TOP)/bindist-prep
 BIN_DIST_PREP=$(BIN_DIST_PREP_DIR)/$(BIN_DIST_NAME)
 BIN_DIST_LIST=$(TOP)/bindist-list
 
+WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-i386-windows
+WINDOWS_INSTALLER = $(WINDOWS_INSTALLER_BASE)$(exeext)
+
 # 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
@@ -518,6 +500,7 @@ INSTALL_SHLIB   = $(INSTALL) -m 755
 INSTALL_DATA    = $(INSTALL) -m 644
 INSTALL_HEADER  = $(INSTALL) -m 644
 INSTALL_MAN     = $(INSTALL) -m 644
+INSTALL_DOC     = $(INSTALL) -m 644
 INSTALL_DIR     = $(MKDIRHIER)
 
 #
@@ -558,43 +541,6 @@ SRC_BLD_DLL_OPTS += --target=i386-mingw32
 GC_CPP_OPTS += -P -E -x c -traditional -D__GLASGOW_HASKELL__
 
 
-################################################################################
-#
-#      Layout of the source tree
-#
-################################################################################
-
-# Here we provide defines for the various directories in the source tree,
-# so we can move things around more easily.  A define $(GHC_FOO_DIR)
-# indicates a directory relative to the top of the source tree.
-
-GHC_UTILS_DIR           = utils
-GHC_INCLUDE_DIR         = includes
-GHC_COMPILER_DIR        = compiler
-GHC_PROG_DIR            = ghc
-GHC_RTS_DIR             = rts
-GHC_DRIVER_DIR          = driver
-GHC_COMPAT_DIR          = compat
-
-GHC_MKDEPENDC_DIR       = $(GHC_UTILS_DIR)/mkdependC
-GHC_LTX_DIR             = $(GHC_UTILS_DIR)/ltx
-GHC_LNDIR_DIR           = $(GHC_UTILS_DIR)/lndir
-GHC_MKDIRHIER_DIR       = $(GHC_UTILS_DIR)/mkdirhier
-GHC_DOCBOOK_DIR         = $(GHC_UTILS_DIR)/docbook
-GHC_UNLIT_DIR           = $(GHC_UTILS_DIR)/unlit
-GHC_HP2PS_DIR           = $(GHC_UTILS_DIR)/hp2ps
-GHC_HSTAGS_DIR          = $(GHC_UTILS_DIR)/hasktags
-GHC_GHCTAGS_DIR         = $(GHC_UTILS_DIR)/ghctags
-GHC_HSC2HS_DIR          = $(GHC_UTILS_DIR)/hsc2hs
-GHC_TOUCHY_DIR          = $(GHC_UTILS_DIR)/touchy
-GHC_PKG_DIR             = $(GHC_UTILS_DIR)/ghc-pkg
-GHC_GENPRIMOP_DIR       = $(GHC_UTILS_DIR)/genprimopcode
-GHC_GENAPPLY_DIR        = $(GHC_UTILS_DIR)/genapply
-GHC_CABAL_DIR           = $(GHC_UTILS_DIR)/ghc-cabal
-GHC_MANGLER_DIR         = $(GHC_DRIVER_DIR)/mangler
-GHC_SPLIT_DIR           = $(GHC_DRIVER_DIR)/split
-GHC_SYSMAN_DIR          = $(GHC_RTS_DIR)/parallel
-
 # -----------------------------------------------------------------------------
 # Names of programs in the GHC tree
 #
@@ -603,7 +549,6 @@ GHC_SYSMAN_DIR          = $(GHC_RTS_DIR)/parallel
 
 GHC_UNLIT_PGM           = unlit$(exeext)
 GHC_HP2PS_PGM           = hp2ps$(exeext)
-GHC_HSTAGS_PGM          = hasktags$(exeext)
 GHC_GHCTAGS_PGM         = ghctags$(exeext)
 GHC_HSC2HS_PGM          = hsc2hs$(exeext)
 GHC_TOUCHY_PGM          = touchy$(exeext)
@@ -629,18 +574,12 @@ GHC_PERL          = $(PERL)
 endif
 
 HP2PS                  = $(GHC_HP2PS_DIR)/$(GHC_HP2PS_PGM)
-HSTAGS                 = $(GHC_HSTAGS_DIR)/$(GHC_HSTAGS_PGM)
 MANGLER                        = $(INPLACE_LIB)/$(GHC_MANGLER_PGM)
 SPLIT                  = $(INPLACE_LIB)/$(GHC_SPLIT_PGM)
 SYSMAN                         = $(GHC_SYSMAN_DIR)/$(GHC_SYSMAN_PGM)
 LTX                    = $(GHC_LTX_DIR)/$(GHC_LTX_PGM)
 LNDIR                  = $(GHC_LNDIR_DIR)/$(GHC_LNDIR_PGM)
 
-INPLACE                        = inplace
-INPLACE_BIN            = $(INPLACE)/bin
-INPLACE_LIB            = $(INPLACE)/lib
-INPLACE_MINGW          = $(INPLACE)/mingw
-
 UNLIT                  = $(INPLACE_LIB)/$(GHC_UNLIT_PGM)
 TOUCHY                  = $(INPLACE_LIB)/$(GHC_TOUCHY_PGM)
 MKDIRHIER              = $(INPLACE_BIN)/$(GHC_MKDIRHIER_PGM)
@@ -712,7 +651,6 @@ GhcPatchLevel       = @GhcPatchLevel@
 GhcMajVersion  = @GhcMajVersion@
 GhcMinVersion  = @GhcMinVersion@
 
-ghc_ge_607 = @ghc_ge_607@
 ghc_ge_609 = @ghc_ge_609@
 
 # Canonicalised ghc version number, used for easy (integer) version
@@ -743,8 +681,9 @@ else
 endif
 endif
 
-# default C compiler flags
+# default C compiler and linker flags
 SRC_CC_OPTS = @SRC_CC_OPTS@
+SRC_LD_OPTS = @SRC_LD_OPTS@
 
 ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
 SRC_CC_OPTS += -G0
@@ -754,20 +693,6 @@ SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS)))
 SRC_HSC2HS_OPTS += $(foreach d,$(GMP_INCLUDE_DIRS),-I$(d))
 
 #-----------------------------------------------------------------------------
-# GMP Library (version 2.0.x or above)
-#
-HaveLibGmp     = @HaveLibGmp@
-LibGmp         = @LibGmp@
-
-GMP_INCLUDE_DIRS=@GMP_INCLUDE_DIRS@
-GMP_LIB_DIRS=@GMP_LIB_DIRS@
-
-#-----------------------------------------------------------------------------
-# GMP framework (Mac OS X)
-#
-HaveFrameworkGMP = @HaveFrameworkGMP@
-
-#-----------------------------------------------------------------------------
 # Mingwex Library
 #
 HaveLibMingwEx = @HaveLibMingwEx@
@@ -819,7 +744,6 @@ PYTHON                      = @PythonCmd@
 PIC                    = pic
 PREPROCESSCMD          = $(CC) -E
 RANLIB                 = @RANLIB@
-RM                     = rm -f
 SED                    = @SedCmd@
 SHELL                  = /bin/sh
 
@@ -834,6 +758,16 @@ LD_X                       = @LdXFlag@
 # overflowing command-line length limits.
 LdIsGNULd              = @LdIsGNULd@
 
+# On MSYS, building with SplitObjs=YES fails with 
+#   ar: Bad file number
+# see #3201.  We need to specify a smaller max command-line size
+# to work around it.  32767 doesn't work; 30000 does.
+ifeq "$(Windows)" "YES"
+XARGS = xargs -s 30000
+else
+XARGS = xargs
+endif
+
 #
 # In emergency situations, REAL_SHELL is used to perform shell commands
 # from within the ghc driver script, by scribbling the command line to
@@ -889,18 +823,17 @@ ISCC                    =
 #-----------------------------------------------------------------------------
 # DocBook XML stuff
 
-XSLTPROC               = @XsltprocCmd@
-XMLLINT                        = @XmllintCmd@
-FOP                    = @FopCmd@
-XMLTEX                 = @XmltexCmd@
-PDFXMLTEX              = @PdfxmltexCmd@
-DVIPS                  = @DvipsCmd@
-
-DIR_DOCBOOK_XSL                = @DIR_DOCBOOK_XSL@
-
-XSLTPROC_LABEL_OPTS    = --stringparam toc.section.depth 3 \
-                         --stringparam section.autolabel 1 \
-                         --stringparam section.label.includes.component.label 1
+BUILD_DOCBOOK_HTML       = @BUILD_DOCBOOK_HTML@
+BUILD_DOCBOOK_PS         = @BUILD_DOCBOOK_PS@
+BUILD_DOCBOOK_PDF        = @BUILD_DOCBOOK_PDF@
+DBLATEX                  = @DblatexCmd@
+XSLTPROC                 = @XsltprocCmd@
+XMLLINT                  = @XmllintCmd@
+HAVE_DOCBOOK_XSL        = @HAVE_DOCBOOK_XSL@
+XSLTPROC_HTML_STYLESHEET = http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
+XSLTPROC_LABEL_OPTS     = --stringparam toc.section.depth 3 \
+                          --stringparam section.autolabel 1 \
+                          --stringparam section.label.includes.component.label 1
 
 #-----------------------------------------------------------------------------
 #              FPtools support software
@@ -942,6 +875,8 @@ ALEX_VERSION                = @AlexVersion@
 #
 SRC_ALEX_OPTS          = -g
 
+HSTAGS = @HstagsCmd@
+
 # Should we build haddock docs?
 HADDOCK_DOCS = YES
 # And HsColour the sources?
@@ -975,7 +910,7 @@ endif
 #
 # The ways currently defined.
 #
-ALL_WAYS=v p t l s mp mg debug dyn thr thr_l debug_dyn thr_dyn thr_debug_dyn thr_p thr_debug thr_debug_l
+ALL_WAYS=v p t l s mp mg debug dyn thr thr_l debug_dyn thr_dyn thr_debug_dyn thr_p thr_debug thr_debug_l debug_p thr_debug_p
 USER_WAYS=a b c d e f g h j k l m n o A B
 
 #