[project @ 2000-11-21 12:32:55 by rrt]
[ghc-hetmet.git] / mk / config.mk.in
index d8fdf44..146addc 100644 (file)
@@ -1,4 +1,4 @@
-#
+#                                                               -*-makefile-*-
 # @configure_input@
 #
 ################################################################################
@@ -86,7 +86,7 @@ HostVendor_CPP                        = @HostVendor_CPP@
 #
 LeadingUnderscore=@LeadingUnderscore@
 
-# Pin a suffix on executables? If so, what. (cygwin32 only).
+# Pin a suffix on executables? If so, what (Windows only).
 exeext=@exeext@
 
 ################################################################################
@@ -110,7 +110,12 @@ exeext=@exeext@
 #              * ghc next
 #              then it's up to you
 
+ifeq "$(GhcWithHscBuiltViaC)" "YES"
+# need hslibs/lang first if we're bootstrapping
+ProjectsToBuild   = glafp-utils hslibs ghc
+else
 ProjectsToBuild   = glafp-utils ghc hslibs
+endif
 #
 # Make a distinction between building and installing
 #
@@ -136,22 +141,8 @@ IncludeTestDirsInBuild=NO
 #
 #---------------------------------------------------------------
 
-# Specify the Haskell compiler to be used to compile the compiler itself
-#
-#   WithGhcHc     Path name of the compiler to use
-#
-#   WithGhcHcType  What "type" of compiler is being used
-#                 Valid options:
-#                           HC_CHALMERS_HBC
-#                           HC_GLASGOW_GHC
-#                           HC_ROJEMO_NHC
-#                           HC_UNSPECIFIED
-
-WithGhcHc = @WithHc@
-
-# Variable which is set to the version number of the $(WithGhcHc) we're using.
-# Not currently used, but might come in handy sometime soon.
-#WithGhcHcVersion = $(shell echo `if ( $(WithGhcHc) --version 2>/dev/null >/dev/null ) then $(WithGhcHc) --version 2>&1 | @SedCmd@ -e 's/^.*version [^0-9]*\([.0-9]*\).*/\1/;s/\.//'; else echo unknown; fi; ` )
+# The compiler used to build GHC is $(GHC).  To change the actual compiler
+# used, re-configure with --with-ghc=<path-to-ghc>.
 
 # Extra ways in which to build the compiler (for example, you might want to
 # build a profiled compiler so you can see where it spends its time)
@@ -173,16 +164,23 @@ GhcHcOpts=-O
 # GhcWithHscBuiltViaC - build GHC compiler proper (\`hsc') from .hc files?
 GhcWithHscBuiltViaC=@BootingFromHc@
 
-# Build a registerised version of hsc and runtime
-# (unregisterised used for Hugs at the moment)
-GhcWithRegisterised=YES
-
 # Build a compiler with a native code generator backend
 # (as well as a C backend)
 #
 # Target platforms supported:
 #   i386, alpha & sparc
-GhcWithNativeCodeGen=$(shell if (test x$(findstring $(HostArch_CPP),i386 alpha sparc) = x); then echo NO; else echo YES; fi)
+ifneq "$(findstring $(HostArch_CPP), i386 alpha sparc)" ""
+GhcWithNativeCodeGen=YES
+else
+GhcWithNativeCodeGen=NO
+endif
+
+# Include GHCi in the compiler
+ifneq "$(findstring $(HostOS_CPP), linux solaris freebsd netbsd openbsd)" ""
+GhcWithInterpreter=YES
+else 
+GhcWithInterpreter=NO
+endif
 
 #
 # Building various ways?
@@ -209,6 +207,7 @@ GhcLibWays=p
 endif
 
 # Option flags to pass to GHC when it's compiling prelude modules
+# *and* standard library modules (std) *and* modules in hslibs
 # Typically these are things like -O or -dcore-lint
 # The ones that are *essential* are wired into ghc/lib/Makefile
 #
@@ -219,8 +218,8 @@ GhcLibHcOpts=-O
 
 # Win32 only: Enable the RTS and libraries to be built as DLLs
 # Don't split object files for libs if we're building DLLs
-EnableWin32DLLs=@EnableWin32DLLs@
-ifeq "$(EnableWin32DLLs)" "YES"
+DLLized=@EnableWin32DLLs@
+ifeq "$(DLLized)" "YES"
 SplitObjs=NO
 else
 SplitObjs=YES
@@ -247,6 +246,9 @@ StripLibraries=NO
 GhcRtsHcOpts=-O2
 GhcRtsCcOpts=-O2 -optc-fomit-frame-pointer
 
+# Include the front panel code?  Needs GTK+.
+GhcRtsWithFrontPanel = NO
+
 ################################################################################
 #
 #              hslibs project
@@ -262,7 +264,7 @@ GhcRtsCcOpts=-O2 -optc-fomit-frame-pointer
 HsLibsFor      = ghc
 
 # hslibs for GHC also uses the following variables (defined above):
-#   GhcLibWays, GhcLibHcOpts, GhcLibToolsHcOpts, EnableWin32DLLs, StripLibraries
+#   GhcLibWays, GhcLibHcOpts, GhcLibToolsHcOpts, DLLized, StripLibraries
 
 # Haskell compiler options for tools in hslibs
 GhcLibToolsHcOpts=-O
@@ -279,6 +281,10 @@ LibsReadline=@LibsReadline@
 #
 ReadlineIncludePath=
 
+# Build the Haskell OpenGL/GLUT binding?
+#
+GhcLibsWithHOpenGL=@GhcLibsWithHOpenGL@
+
 ################################################################################
 #
 #              happy project
@@ -359,7 +365,12 @@ NoFibHcOpts = -O
 # this in build.mk or set your environment variable "TMPDIR" to point
 # to somewhere with more space.  (TMPDIR=. is a good choice).
 
-TMPDIR                 = /tmp
+# DEFAULT_TMPDIR isn't called TMPDIR because GNU make tends to
+# override an environment variable with the value of the make variable
+# of the same name (if it exists) when executing sub-processes, so
+# setting the TMPDIR env var would have no effect in the build tree.
+
+DEFAULT_TMPDIR         = /tmp
 
 # FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
 
@@ -370,19 +381,20 @@ FPTOOLS_TOP_ABS           = @hardtop@
 # but since the configure script has them on offer while
 # passing through, we might as well set them.
 
-prefix                  = @prefix@
-exec_prefix             = @exec_prefix@
-bindir                  = @bindir@
-#UNUSED, see below: libexecdir              = @libexecdir@
-datadir                 = @datadir@
-#sysconfdir              = @datadir@
-#sharedstatedir          = @sharedstatedir@
-#localstatedir           = @localstatedir@
-libdir                  = @libdir@
-infodir                        = @infodir@
-includedir              = @includedir@
-oldincludedir           = @oldincludedir@
+prefix                 = @prefix@
+exec_prefix            = @exec_prefix@
+bindir                 = @bindir@
+datadir                        = @datadir@
+#sysconfdir            = @datadir@
+#sharedstatedir                = @sharedstatedir@
+#localstatedir         = @localstatedir@
+libdir                 = @libdir@
+includedir             = @includedir@
+oldincludedir          = @oldincludedir@
 mandir                 = @mandir@
+
+#UNUSED, see below: libexecdir              = @libexecdir@
+#UNUSED:infodir                = @infodir@
 #UNUSED:srcdir          = @srcdir@
 
 # 
@@ -412,9 +424,6 @@ endif
 ifeq "$(strip $(libdir))" ""
 libdir         = $(exec_prefix)/lib
 endif
-ifeq "$(strip $(infodir))" ""
-infodir                = $(prefix)/info
-endif
 ifeq "$(strip $(includedir))" ""
 includedir     = $(prefix)/include
 endif
@@ -424,7 +433,7 @@ endif
 ifeq "$(strip $(mandir))" ""
 mandir         = $(prefix)/man
 endif
+
 
 ################################################################################
 #
@@ -480,22 +489,16 @@ ETAGS_PREFIX              = $(GLAFP_UTILS)/etags/
 MSUB_PREFIX            = $(GLAFP_UTILS)/msub/
 LNDIR_PREFIX           = $(GLAFP_UTILS)/lndir/
 MKDIRHIER_PREFIX       = $(GLAFP_UTILS)/mkdirhier/
-
-# Still used?
-LITERATE               = $(FPTOOLS_TOP)/literate
+DOCBOOK_PREFIX         = $(GLAFP_UTILS)/docbook/
 
 LITERATE_PREFIX        = $(FPTOOLS_TOP)/literate/
-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/
 STAT2RESID_PREFIX       = $(FPTOOLS_TOP)/ghc/utils/stat2resid/
 HP2PS_PREFIX            = $(FPTOOLS_TOP)/ghc/utils/hp2ps/
-HSCPP_PREFIX            = $(FPTOOLS_TOP)/ghc/utils/hscpp/
 HSTAGS_PREFIX           = $(FPTOOLS_TOP)/ghc/utils/hstags/
 
 
@@ -507,8 +510,16 @@ HSTAGS_PREFIX           = $(FPTOOLS_TOP)/ghc/utils/hstags/
 #
 # $(HC) is a generic Haskell 98 compiler, set to $(GHC) by default.
 # $(MKDEPENDHS) is the Haskell dependency generator (ghc -M).
+#
+# NOTE: Don't override $(GHC) in build.mk, use configure --with-ghc instead
+# (because the version numbers have to be calculated).
+
+GHC            = @WithGhc@
+GhcVersion     = @GhcVersion@
+GhcMajVersion  = @GhcMajVersion@
+GhcMinVersion  = @GhcMinVersion@
+GhcPatchLevel  = @GhcPatchLevel@
 
-GHC            = @GHC@
 HBC            = @HBC@
 NHC            = @NHC@
 
@@ -519,7 +530,7 @@ MKDEPENDHS  = $(HC)
 # projects (eg. it's handy to have a nofib & a ghc build in the same
 # tree).  We can refer to "this ghc" as $(GHC_INPLACE):
 
-GHC_INPLACE    = $(FPTOOLS_TOP)/ghc/driver/ghc-inplace
+GHC_INPLACE    = $(FPTOOLS_TOP)/ghc/compiler/ghc-inplace
 
 #-----------------------------------------------------------------------------
 # C compiler
@@ -543,6 +554,18 @@ HaveLibGmp = @HaveLibGmp@
 LibGmp         = @LibGmp@
 
 #-----------------------------------------------------------------------------
+# Regex library 
+# (if present in libc use that one, otherwise use the one in the tree)
+#
+HaveRegex      = @HaveRegex@
+
+#-----------------------------------------------------------------------------
+# GTK+
+
+GTK_CONFIG             = @GTK_CONFIG@
+GTK_VERSION            = @GTK_VERSION@
+
+#-----------------------------------------------------------------------------
 # Flex
 
 FLEX                   = @LEX@
@@ -603,7 +626,7 @@ SHELL                       = /bin/sh
 # 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
+# By default, REAL_SHELL is set equal to SHELL, which is not really a smart move
 # as it is SHELL that will show up the bogosity in the first place, but setting
 # it to anything else isn't really portable.
 #
@@ -618,9 +641,9 @@ TAR                 = @TarCmd@
 ZIP                    = zip
 
 #
-# Under cygwin32, we have to deal with .exe suffixes
+# Under Windows, we have to deal with .exe suffixes
 #
-EXE_SUFFIX=@ExeSuffix@
+EXE_SUFFIX=@exeext@
 
 #
 # This is special to literate/, ToDo: add literate-specific
@@ -638,12 +661,15 @@ UNAME                     = uname
 YACC                   = @YaccCmd@
 
 #-----------------------------------------------------------------------------
-# SGML stuff (currently not configured - we assume you have it)
+# SGML stuff
 
-SGML2DVI               = db2dvi
-SGML2HTML              = db2html
-SGML2PS                        = db2ps
-SGML2RTF               = db2rtf
+JADE                   = @JadeCmd@
+
+SGML2DVI               = $(DOCBOOK_PREFIX)db2dvi
+SGML2HTML              = $(DOCBOOK_PREFIX)db2html
+SGML2PS                        = $(DOCBOOK_PREFIX)db2ps
+SGML2PDF               = $(DOCBOOK_PREFIX)db2pdf
+SGML2RTF               = $(DOCBOOK_PREFIX)db2rtf
 
 SGMLSTYLESHEET          = $(FPTOOLS_TOP_ABS)/docs/fptools-both.dsl
 
@@ -652,6 +678,8 @@ SRC_SGML2HTML_OPTS      = -d $(SGMLSTYLESHEET)
 SRC_SGML2PS_OPTS       = -d $(SGMLSTYLESHEET)
 SRC_SGML2RTF_OPTS       = -d $(SGMLSTYLESHEET)
 
+DOCBOOK_CATALOG                = @Catalog@
+
 #-----------------------------------------------------------------------------
 #              FPtools support software
 
@@ -665,35 +693,37 @@ ETAGS                     = $(ETAGS_PREFIX)etags
 VERBATIM               = $(VERBATIM_PREFIX)verbatim
 SGMLVERB               = $(SGMLVERB_PREFIX)sgmlverb
 RUNTEST                        = $(RUNTEST_PREFIX)runstdtest
-HAPPY                  = @HappyCmd@
-HAPPY_VERSION          = @HappyVersion@                
 LX                     = @LxCmd@
 GREENCARD              = $(FPTOOLS_TOP)/green-card/src/green-card
 
 BLD_DLL                        = dllwrap
 
 #
+# Happy
+#
+HAPPY                  = @HappyCmd@
+HAPPY_VERSION          = @HappyVersion@                
+#
+# Options to pass to Happy when we're going to compile the output with GHC
+#
+GHC_HAPPY_OPTS         = $(shell if expr $(HAPPY_VERSION) \< "1.8" >/dev/null; then echo -g; else echo -agc; fi)
+
+#
 # Stuff from fptools/literate
 #
-INFO                   = $(UTIL_PREFIX)info
-MAKEINFO               = $(INFO_PREFIX)makeinfo
-POSTMAKEINFO           = $(INFO_PREFIX)postmakeinfo
 LIT2PGM                = $(LITERATE_PREFIX)lit2pgm
-LIT2TEXI               = $(LITERATE_PREFIX)lit2texi
 LIT2HTML               = $(LITERATE_PREFIX)lit2html
 LIT2LATEX              = $(LITERATE_PREFIX)lit2latex
 MKDEPENDLIT            = $(LITERATE_PREFIX)mkdependlit
 LIT2CHANGELOG          = $(LITERATE_PREFIX)lit2changelog
 LIT2TEXT               = $(LITERATE_PREFIX)lit2text
-TEXI2HTML               = $(TEXI2HTML_PREFIX)texi2html
 
 #
 # Stuff from fptools/ghc/utils
 #
-UNLIT                  = $(UNLIT_PREFIX)unlit
-UGEN                   = $(UGEN_PREFIX)ugen
+UNLIT                  = $(UNLIT_PREFIX)unlit$(EXE_SUFFIX)
 STAT2RESID             = $(STAT2RESID_PREFIX)stat2resid
-HP2PS                  = $(HP2PS_PREFIX)hp2ps
+HP2PS                  = $(HP2PS_PREFIX)hp2ps$(EXE_SUFFIX)
 HSCPP                  = $(HSCPP_PREFIX)hscpp
 HSTAGS                 = $(HSTAGS_PREFIX)hstags
 
@@ -768,10 +798,6 @@ WAY_mp_HC_OPTS=-parallel
 WAY_mg_NAME=GranSim
 WAY_mg_HC_OPTS=-gransim
 
-# Way `dll': 
-WAY_dll_NAME=Win32 DLLs
-WAY_dll_HC_OPTS=
-
 #
 # Add user-way configurations here:
 #