-#
+# -*-makefile-*-
# @configure_input@
#
################################################################################
#
LeadingUnderscore=@LeadingUnderscore@
-# Pin a suffix on executables? If so, what. (cygwin32 only).
+# Pin a suffix on executables? If so, what (Windows only).
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
#
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
#
#
ReadlineIncludePath=
+# Build the Haskell OpenGL/GLUT binding?
+#
+GhcLibsWithHOpenGL=@GhcLibsWithHOpenGL@
+
################################################################################
#
# happy project
# 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 the environment variable with the value of the make
+# variable 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.
# 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@
#
ifeq "$(strip $(libdir))" ""
libdir = $(exec_prefix)/lib
endif
-ifeq "$(strip $(infodir))" ""
-infodir = $(prefix)/info
-endif
ifeq "$(strip $(includedir))" ""
includedir = $(prefix)/include
endif
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/
# $(MKDEPENDHS) is the Haskell dependency generator (ghc -M).
GHC = @GHC@
+GhcVersion = @GhcVersion@
+GhcMajVersion = @GhcMajVersion@
+GhcMinVersion = @GhcMinVersion@
+GhcPatchLevel = @GhcPatchLevel@
+
HBC = @HBC@
NHC = @NHC@
# Sometimes we want to invoke ghc from the build tree in different
# 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):
+# tree). We can refer to "this ghc" as $(GHC_INPLACE).
+# The addition to PATH makes the inplace GHC pick up the right
+# DLLs under Windows; it won't have any effect on other platforms.
-GHC_INPLACE = $(FPTOOLS_TOP)/ghc/driver/ghc-inplace
+GHC_INPLACE = PATH=$(FPTOOLS_TOP)/dll:$$PATH $(FPTOOLS_TOP)/ghc/driver/ghc-inplace
#-----------------------------------------------------------------------------
# C compiler
LibGmp = @LibGmp@
#-----------------------------------------------------------------------------
+# Regex library
+# (if present in libc use that one, otherwise use the one in the tree)
+#
+HaveRegex = @HaveRegex@
+
+#-----------------------------------------------------------------------------
# Flex
FLEX = @LEX@
# 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.
#
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
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
SRC_SGML2PS_OPTS = -d $(SGMLSTYLESHEET)
SRC_SGML2RTF_OPTS = -d $(SGMLSTYLESHEET)
+DOCBOOK_CATALOG = @Catalog@
+
#-----------------------------------------------------------------------------
# FPtools support software
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
# Way `dll':
WAY_dll_NAME=Win32 DLLs
-WAY_dll_HC_OPTS=
+WAY_dll_HC_OPTS=-dll
#
# Add user-way configurations here: