4
################################################################################
8
# This file supplies defaults for many tweakable build configuration
9
# options. Some of the defaults are filled in by the autoconf-generated
12
# DO NOT EDIT THIS FILE!
14
# - config.mk is auto-generated from config.mk.in by configure.
15
# This may be triggered automatically by the build system (say
16
# if config.mk.in has changed more recently than config.mk),
17
# so if you edit config.mk your changes will be spammed.
19
# - Settings in this file may be overriden by giving replacement
20
# definitions in build.mk. See build.mk.sample for a good
21
# starting point for a build.mk file.
23
# If you don't have a build.mk file then you get defaults for everything.
24
# The defaults should provide a reasonable vanilla build.
26
# This is one of only two files that configure generates (the other is config.h)
28
# There is a section below for each project within the fptools suite
32
# a section corresponding to each of the main .mk files
33
# included by boilerplate.mk (see boilerplate.mk for a list).
36
################################################################################
38
# Project-wide platform variables
40
################################################################################
42
# A "platform" is the GNU cpu-type/manufacturer/operating-system target machine
43
# specifier. E.g. sparc-sun-solaris2
45
# Build platform: the platform on which we are doing this build
46
# Host platform: the platform on which these binaries will run
47
# Target platform: the platform for which this compiler will generate code
49
# We don't support build & host being different, because the build
50
# process creates binaries that are run during the build, and also
53
# If host & target are different, then we are building a compiler
54
# which will generate intermediate .hc files to port to the target
55
# architecture for bootstrapping. The libraries and stage 2 compiler
56
# will be built as HC files for the target system, and likely won't
57
# build on this host platform.
59
# Guidelines for when to use HOST vs. TARGET:
61
# - In the build system (Makefile, foo.mk), normally we should test
62
# $(HOSTPLATFORM). There are some cases (eg. installation), where
63
# we expect $(HOSTPLATFORM)==$(TARGETPLATFORM), so in those cases it
64
# doesn't matter which is used.
66
# - In the compiler itself, we should test HOST or TARGET depending
67
# on whether the conditional relates to the code being generated, or
68
# the platform on which the compiler is running. For stage 2,
69
# HOSTPLATFORM should be reset to be TARGETPLATFORM (we currently
70
# don't do this, but we should).
72
# - In the RTS and library code, we should be testing TARGET only.
74
# NOTE: cross-compiling is not well supported by the build system.
75
# You have to do a lot of work by hand to cross compile: see the
76
# section on "Porting GHC" in the Building Guide.
78
HOSTPLATFORM = @HostPlatform@
79
TARGETPLATFORM = @TargetPlatform@
80
BUILDPLATFORM = @BuildPlatform@
83
# in one or two places, we need to get at the OS version (major and
84
# perhaps even minor), HostOS_Full is the OS name reported by
85
# AC_CANONICAL_SYSTEM.
87
HostPlatform_CPP = @HostPlatform_CPP@
88
HostArch_CPP = @HostArch_CPP@
89
HostOS_CPP = @HostOS_CPP@
90
HostOS_Full = @HostOS_Full@
91
HostVendor_CPP = @HostVendor_CPP@
93
TargetPlatform_CPP = @TargetPlatform_CPP@
94
TargetArch_CPP = @TargetArch_CPP@
95
TargetOS_CPP = @TargetOS_CPP@
96
TargetVendor_CPP = @TargetVendor_CPP@
98
BuildPlatform_CPP = @BuildPlatform_CPP@
99
BuildArch_CPP = @BuildArch_CPP@
100
BuildOS_CPP = @BuildOS_CPP@
101
BuildVendor_CPP = @BuildVendor_CPP@
103
@HostPlatform_CPP@_HOST = 1
104
@TargetPlatform_CPP@_TARGET = 1
105
@BuildPlatform_CPP@_BUILD = 1
107
@HostArch_CPP@_HOST_ARCH = 1
108
@TargetArch_CPP@_TARGET_ARCH = 1
109
@BuildArch_CPP@_BUILD_ARCH = 1
111
@HostOS_CPP@_HOST_OS = 1
112
@TargetOS_CPP@_TARGET_OS = 1
113
@BuildOS_CPP@_BUILD_OS = 1
115
@HostVendor_CPP@_HOST_VENDOR = 1
116
@TargetVendor_CPP@_TARGET_VENDOR = 1
117
@BuildVendor_CPP@_BUILD_VENDOR = 1
119
# Leading underscores on symbol names in object files
120
# Valid options: YES/NO
122
LeadingUnderscore=@LeadingUnderscore@
124
# Pin a suffix on executables? If so, what (Windows only).
127
# Windows=YES if on a Windows platform
128
ifneq "$(findstring $(HostOS_CPP), mingw32 cygwin32)" ""
134
################################################################################
138
# Set of options applicable to all fptools projects
140
################################################################################
142
# BootingFromHc - build GHC and the libraries from .hc files?
143
BootingFromHc = @BootingFromHc@
145
# BootingFromUnregisterisedHc - treat .hc files as containing unregisterised
146
# rather than registerised code, i.e., disable the mangler?
147
BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@
149
# Build Order: we build Happy, Haddock and Alex before GHC if they are
150
# in this source tree, just in case our GHC build depends on these
151
# local builds rather than installed versions of the tools.
153
# Build the libs first if we're bootstrapping from .hc files.
154
ifeq "$(BootingFromHc)" "YES"
155
AllProjects = glafp-utils happy alex haddock libraries hslibs ghc greencard hdirect hood nofib docs
157
AllProjects = glafp-utils happy alex haddock ghc libraries hslibs greencard hdirect hood nofib docs
161
# (OPTIONAL) set ProjectsToBuild to a list of projects to be built. If this
162
# list is empty, then all projects present in the source tree will be built.
167
# set ProjectsDontInstall to a list of projects which are normally built but
170
ProjectsDontInstall = glafp-utils nofib
173
# Should the various project tests directories be built?
175
IncludeTestDirsInBuild=NO
178
# Should the various project example directories be built?
180
IncludeExampleDirsInBuild=NO
183
# Which ways should DocBook XML documents be built?
184
# options are: dvi ps pdf html
188
################################################################################
192
# Set of (configurable) options needed by the ghc tree
193
# plus their default options (if any).
195
################################################################################
197
#---------------------------------------------------------------
199
# Variables that control how the compiler itself is built
201
#---------------------------------------------------------------
203
# The compiler used to build GHC is $(GHC). To change the actual compiler
204
# used, re-configure with --with-ghc=<path-to-ghc>.
206
# Extra ways in which to build the compiler (for example, you might want to
207
# build a profiled compiler so you can see where it spends its time)
210
# Extra option flags to pass to the compiler that compiles the compiler
211
# (Ones that are essential are wired into ghc/compiler/Makefile)
212
# Typical options to use here:
214
# -DDEBUG include debugging code and assertions (will make the
215
# compiler slower and produce debugging output, but useful
218
# -dcore-lint check the types after every pass of the compiler;
219
# a pretty strong internal check of the compiler being
220
# used to compile GHC. Useful when bootstrapping.
221
GhcHcOpts=-Rghc-timing
223
# Extra options added to specific stages of the compiler bootstrap.
224
# These are placed later on the command line, and may therefore
225
# override options from $(GhcHcOpts).
230
# Build a compiler that will build *unregisterised* libraries and
231
# binaries by default. Unregisterised code is supposed to compile and
232
# run without any support for architecture-specific assembly mangling,
233
# register assignment or tail-calls, and is therefore a good way to get
234
# started when porting GHC to new architectures.
236
# If this is set to NO, you can still use the unregisterised way
237
# (way 'u') to get unregisterised code, but the default way will be
240
# NOTE: the stage1 compiler will be a registerised binary (assuming
241
# the compiler you build with is generating registerised binaries), but
242
# the stage2 compiler will be an unregisterised binary.
246
# Build a compiler with a native code generator backend
247
# (as well as a C backend)
249
# Target platforms supported:
251
# sparc has bitrotted
252
ifneq "$(findstring $(HostArch_CPP), i386 powerpc)" ""
253
GhcWithNativeCodeGen=YES
255
GhcWithNativeCodeGen=NO
258
# Include support for generating Java
261
HaveLibDL = @HaveLibDL@
262
HaveRtldNext = @HaveRtldNext@
263
HaveRtldLocal = @HaveRtldLocal@
265
# Include GHCi in the compiler. Default to NO for the time being.
267
ifneq "$(findstring $(HostOS_CPP), mingw32 cygwin32 linux solaris2 freebsd netbsd openbsd darwin)" ""
268
GhcWithInterpreter=YES
270
GhcWithInterpreter=NO
274
# Building various ways?
275
# (right now, empty if not).
276
BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS)))
277
BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
279
#------------------------------------------------------------------------------
280
# Options for Libraries
282
# What extra ways to build the libraries in
283
# In addition to the normal sequential way, the default is to also build
284
# profiled prelude libraries.
285
# When booting from .hc files, turn this off.
286
ifeq "$(BootingFromHc)" "YES"
292
# In addition, the RTS is built in some further variations. Ways that
296
# thr_p : threaded profiled
297
# debug : debugging (compile with -g for the C compiler, and -DDEBUG)
298
# debug_p : debugging profiled
299
# debug_u : debugging unregisterised
300
# thr_debug : debugging threaded
301
# thr_debug_p : debugging threaded profiled
303
ifeq "$(BootingFromHc)" "YES"
306
GhcRTSWays=thr thr_p debug
309
# Option flags to pass to GHC when it's compiling modules in
310
# fptools/libraries. Typically these are things like -O or
311
# -dcore-lint or -H32m. The ones that are *essential* are wired into
314
# -O is pretty desirable, otherwise no inlining of prelude
315
# things (incl "+") happens when compiling with this compiler
317
GhcLibHcOpts=-O -Rghc-timing
319
# Win32 only: Enable the RTS and libraries to be built as DLLs
320
DLLized=@EnableWin32DLLs@
322
# Strip local symbols from libraries? This can make the libraries smaller,
323
# but makes debugging somewhat more difficult. Doesn't work with all ld's.
328
# ----------------------------------------------------------------------------
329
# Object-file splitting
331
# Set SplitObjs=YES or NO in your build.mk
333
# Don't use -split-objs in in GhcLibHcOpts, because the build
334
# system needs to do other special magic if you are
335
# doing object-file splitting
337
# Don't split object files for libs if we're building DLLs, or booting from
341
ifeq "$(DLLized)" "YES"
344
ifeq "$(BootingFromHc)" "YES"
347
ifeq "$(GhcUnregisterised)" "YES"
350
ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
354
# ----------------------------------------------------------------------------
355
# Options for GHC's RTS
357
# For an optimised RTS (you probably don't want to change these; we build
358
# a debugging RTS by default now. Use -package rts_debug to get it).
360
GhcRtsCcOpts=-fomit-frame-pointer
362
# Include the front panel code? Needs GTK+.
363
GhcRtsWithFrontPanel = NO
365
################################################################################
369
################################################################################
371
# Build the Haskell Readline bindings?
373
GhcLibsWithReadline=@GhcLibsWithReadline@
375
# Libraries needed for linking with readline
376
LibsReadline=@LibsReadline@
378
# Include path to readline.h
379
# (no path == in standard include path)
386
# Build the ObjectIO ?
388
GhcLibsWithObjectIO=@GhcLibsWithObjectIO@
390
# .NET interop support?
392
DotnetSupport=@DotnetSupport@
394
# Build unix package?
396
GhcLibsWithUnix=@GhcLibsWithUnix@
398
################################################################################
402
# Happy specific options
404
################################################################################
406
# The compiler you'd like to use to compile Happy
407
WithHappyHc = @WithHc@
409
# HappyHcOpts gives the flags to pass to the Haskell compiler used
410
# to compile the Happy sources with.
414
################################################################################
418
# Haggis specific options
420
################################################################################
422
################################################################################
426
# GreenCard specific options
428
################################################################################
430
################################################################################
434
# nofib specific options
436
################################################################################
438
WithNofibHc = $(GHC_INPLACE)
440
# NoFibSubDirs controls which set of tests should be run
441
# You can run one or more of
449
NoFibSubDirs = imaginary spectral real
451
# The different ways to build nofib. Default is just to mirror
452
# what is done for the ghc prelude libraries.
454
NoFibWays = $(GhcLibWays)
456
# Haskell compiler options for nofib
459
# ==============================================================================
461
# END OF PROJECT-SPECIFIC STUFF
463
# Now come the generic configuration options
465
# ==============================================================================
467
################################################################################
469
# Paths (see paths.mk)
471
################################################################################
473
# Directory used by GHC (and possibly other tools) for storing
474
# temporary files. If your TMPDIR isn't big enough, either override
475
# this in build.mk or set your environment variable "TMPDIR" to point
476
# to somewhere with more space. (TMPDIR=. is a good choice).
478
# DEFAULT_TMPDIR isn't called TMPDIR because GNU make tends to
479
# override an environment variable with the value of the make variable
480
# of the same name (if it exists) when executing sub-processes, so
481
# setting the TMPDIR env var would have no effect in the build tree.
483
DEFAULT_TMPDIR = /tmp
484
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
485
DEFAULT_TMPDIR = C:/TEMP
487
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
488
DEFAULT_TMPDIR = C:/TEMP
491
# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path. (POSIX / unix-style path).
492
FPTOOLS_TOP_ABS = @hardtop@
493
# The platform specific version of 'hardtop'.
494
FPTOOLS_TOP_ABS_PLATFORM = @hardtop_plat@
497
# Installation directories, we don't use half of these,
498
# but since the configure script has them on offer while
499
# passing through, we might as well set them.
502
exec_prefix = @exec_prefix@
506
includedir = @includedir@
507
oldincludedir = @oldincludedir@
510
ifeq "$(Windows)" "YES"
512
ifeq "$(strip $(prefix))" ""
516
# Hack: our directory layouts tend to be different on Windows, so
517
# hack around configure's bogus assumptions here.
524
# Unix: override libdir and datadir to put project-specific stuff in
525
# a subdirectory with the version number included.
527
libdir = $(if $(ProjectNameShort),$(libdir0)/$(ProjectNameShort)-$(ProjectVersion),$(libdir0))
528
datadir = $(if $(ProjectNameShort),$(datadir0)/$(ProjectNameShort)-$(ProjectVersion),$(datadir0))
532
# Default place for putting interface files is $(libdir)
533
# (overriden for packages in package.mk)
537
# Default values for most of the above are only set if
538
# they weren't configured to anything in particular
539
# via the configure script. (i.e., we make no assumption
540
# that the autoconf-generated script will assign defaults
541
# to all of the above).
543
ifeq "$(strip $(exec_prefix))" ""
544
exec_prefix = $(prefix)
546
ifeq "$(strip $(bindir))" ""
547
bindir = $(exec_prefix)/bin
551
# NOTE: by intention, libexecdir and libdir point to
553
# => Only way to override this is to set libexecdir= on the command line.
554
# (NOTE: configure script setting is ignored).
555
libexecdir = $(libdir)
557
ifeq "$(strip $(datadir))" ""
558
datadir = $(prefix)/share
560
ifeq "$(strip $(libdir))" ""
561
libdir = $(exec_prefix)/lib
563
ifeq "$(strip $(includedir))" ""
564
includedir = $(prefix)/include
566
ifeq "$(strip $(oldincludedir))" ""
567
oldincludedir = /usr/include
569
ifeq "$(strip $(mandir))" ""
570
mandir = $(prefix)/man
573
#-----------------------------------------------------------------------------
574
# install configuration
577
# Set this to have files installed with a specific owner
582
# Set this to have files installed with a specific group
587
# Invocations of `install' for the four different classes
590
INSTALL_PROGRAM = $(INSTALL) -m 755
591
INSTALL_SCRIPT = $(INSTALL) -m 755
592
INSTALL_SHLIB = $(INSTALL) -m 755
593
INSTALL_DATA = $(INSTALL) -m 644
594
INSTALL_DIR = $(MKDIRHIER)
596
# -----------------------------------------------------------------------------
597
# Utilities programs: flags
599
# If you want to give any standard flags to pretty much any utility
600
# (see utils.mk for a complete list), by adding a line here
604
# where P is the utility. For example, to add -O to all Haskell
609
SRC_HC_OPTS += -H16m -O
611
# These flags make flex 8-bit
614
SRC_INSTALL_BIN_OPTS += -s
616
# lint gets all CPP's flags too
617
SRC_LINT_OPTS += -axz -DLINT $(SRC_CPP_OPTS)
618
WAY$(_way)_LINT_OPTS += WAY$(_way)_CPP_OPTS
620
# Default fptools options for dllwrap.
621
SRC_BLD_DLL_OPTS += -mno-cygwin --target=i386-mingw32
623
# Flags for CPP when running GreenCard on .pgc files
624
GC_CPP_OPTS += -P -E -x c -traditional -D__GLASGOW_HASKELL__
627
################################################################################
629
# Utilities programs: where to find them
631
################################################################################
633
#-----------------------------------------------------------------------------
634
# FPtools Utility locations
636
# By default, the various utils needed to be build ghc and chums
637
# is set up to point to the utils/ directory. Define here the
638
# path prefix for the utilities. Notice that it's a prefix with
639
# a trailing slash, so that it can be concatenated directly on
640
# front of a program name; if it's not set then we just look
641
# along the shell's $(PATH)
643
# If instead you want to use installed or your own versions of these,
644
# override the various *_PREFIX in build.mk, i.e., having the following
649
# will force `make' to rummage around in your PATH to find `mkdependC' (not
650
# sure it would need it in the first place, but still).
652
GLAFP_UTILS = $(FPTOOLS_TOP)/glafp-utils
654
SCRIPT_PREFIX = $(GLAFP_UTILS)/scripts/
655
MKDEPENDC_PREFIX = $(GLAFP_UTILS)/mkdependC/
656
LTX_PREFIX = $(GLAFP_UTILS)/ltx/
657
RUNTEST_PREFIX = $(GLAFP_UTILS)/runstdtest/
658
VERBATIM_PREFIX = $(GLAFP_UTILS)/verbatim/
659
SGMLVERB_PREFIX = $(GLAFP_UTILS)/sgmlverb/
660
ETAGS_PREFIX = $(GLAFP_UTILS)/etags/
661
LNDIR_PREFIX = $(GLAFP_UTILS)/lndir/
662
MKDIRHIER_PREFIX = $(GLAFP_UTILS)/mkdirhier/
663
DOCBOOK_PREFIX = $(GLAFP_UTILS)/docbook/
665
HADDOCK_PREFIX = $(FPTOOLS_TOP)/haddock/
667
LITERATE_PREFIX = $(FPTOOLS_TOP)/literate/
669
UNLIT_PREFIX = $(FPTOOLS_TOP)/ghc/utils/unlit/
670
HP2PS_PREFIX = $(FPTOOLS_TOP)/ghc/utils/hp2ps/
671
HSTAGS_PREFIX = $(FPTOOLS_TOP)/ghc/utils/hasktags/
672
HSC2HS_PREFIX = $(FPTOOLS_TOP)/ghc/utils/hsc2hs/
674
#-----------------------------------------------------------------------------
675
# Haskell compilers and mkdependHS
677
# $(GHC), $(HBC) and $(NHC) point to installed versions of the relevant
678
# compilers, if available.
680
# $(HC) is a generic Haskell 98 compiler, set to $(GHC) by default.
681
# $(MKDEPENDHS) is the Haskell dependency generator (ghc -M).
683
# NOTE: Don't override $(GHC) in build.mk, use configure --with-ghc instead
684
# (because the version numbers have to be calculated).
687
GhcDir = $(dir $(GHC))
688
GhcVersion = @GhcVersion@
689
GhcMajVersion = @GhcMajVersion@
690
GhcMinVersion = @GhcMinVersion@
691
GhcPatchLevel = @GhcPatchLevel@
693
# Canonicalised ghc version number, used for easy (integer) version
694
# comparisons. We must expand $(GhcMinVersion) to two digits by
695
# adding a leading zero if necessary:
696
ifneq "$(findstring $(GhcMinVersion), 0 1 2 3 4 5 6 7 8 9)" ""
697
GhcCanonVersion = $(GhcMajVersion)0$(GhcMinVersion)
699
GhcCanonVersion = $(GhcMajVersion)$(GhcMinVersion)
708
# Sometimes we want to invoke ghc from the build tree in different
709
# projects (eg. it's handy to have a nofib & a ghc build in the same
710
# tree). We can refer to "this ghc" as $(GHC_INPLACE):
712
GHC_INPLACE = $(FPTOOLS_TOP)/ghc/compiler/ghc-inplace
713
GHC_STAGE1 = $(FPTOOLS_TOP)/ghc/compiler/stage1/ghc-inplace
714
GHC_STAGE2 = $(FPTOOLS_TOP)/ghc/compiler/stage2/ghc-inplace
715
GHC_STAGE3 = $(FPTOOLS_TOP)/ghc/compiler/stage3/ghc-inplace
717
#-----------------------------------------------------------------------------
720
# NB. Don't override $(WhatGccIsCalled) using build.mk, re-configure using
721
# the flag --with-gcc=<blah> instead. The reason is that the configure script
722
# needs to know which gcc you're using in order to perform its tests.
726
WhatGccIsCalled = @WhatGccIsCalled@
727
GccVersion = @GccVersion@
728
ifeq "$(strip $(HaveGcc))" "YES"
729
ifneq "$(strip $(UseGcc))" "YES"
732
CC = $(WhatGccIsCalled)
733
GccDir = $(dir $(WhatGccIsCalled))
737
# default C compiler flags
738
SRC_CC_OPTS = @SRC_CC_OPTS@
740
ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
744
#-----------------------------------------------------------------------------
745
# GMP Library (version 2.0.x or above)
747
HaveLibGmp = @HaveLibGmp@
750
#-----------------------------------------------------------------------------
753
HaveLibMingwEx = @HaveLibMingwEx@
755
#-----------------------------------------------------------------------------
756
# HaskellSupport framework (Mac OS X)
758
HaveFrameworkHaskellSupport = @HaveFrameworkHaskellSupport@
760
#-----------------------------------------------------------------------------
762
# (if present in libc use that one, otherwise use the one in the tree)
764
HavePosixRegex = @HavePosixRegex@
766
#-----------------------------------------------------------------------------
767
# Flex (currently unused, could be moved to glafp-utils)
770
# Don't bother with -lfl, we define our own yywrap()s anyway.
772
#WAS:FLEX_LIB = @LEXLIB@
774
#-----------------------------------------------------------------------------
775
# Other standard (ha!) Unix utilities
778
ArSupportsInput = @ArSupportsInput@
779
# Yuckage: for ghc/utils/parallel -- todo: nuke this dependency!!
780
BASH = /usr/local/bin/bash
782
CONTEXT_DIFF = @ContextDiffCmd@
784
CPP = @CPP@ @CPPFLAGS@
787
# RAWCPP_FLAGS are the flags to give to cpp (viz, gcc -E) to persuade it to
788
# behave plausibly on Haskell sources.
790
RAWCPP_FLAGS = -undef -traditional
794
# Sigh - the autoconf macro for INSTALL will subst a relative path to the fallback
795
# install-sh script (if chosen). This not terribly useful to us, so we convert
796
# it into an abs. path.
798
INSTALL := $(subst .././install-sh,$(FPTOOLS_TOP_ABS)/install-sh,$(INSTALL))
810
PREPROCESSCMD = $(CC) -E
818
# Some ld's support the -x flag and some don't, so the configure
819
# script detects which we have and sets LdXFlag to "-x" or ""
823
# GNU ld supports input via a linker script, which is useful to avoid
824
# overflowing command-line length limits.
825
LdIsGNULd = @LdIsGNULd@
828
# In emergency situations, REAL_SHELL is used to perform shell commands
829
# from within the ghc driver script, by scribbling the command line to
830
# a temp file and then having $(REAL_SHELL) execute it.
832
# The reason for having to do this is that overly long command lines
833
# cause unnecessary trouble with some shells (e.g., /bin/sh on Solaris
834
# 2.5.1), which is why this backdoor is provided. The situation of overly
835
# long command lines is either encountered while doing `make boot' in ghc/compiler,
836
# or when linking the compiler binary (`hsc').
838
# We do not use SHELL to execute long commands, as `make' will more than likely
839
# override whatever setting you have in your environment while executing.
841
# By default, REAL_SHELL is set equal to SHELL, which is not really a smart move
842
# as it is SHELL that will show up the bogosity in the first place, but setting
843
# it to anything else isn't really portable.
845
# ====> If long command lines cause you trouble, invoke `ghc' (via `make' or otherwise)
846
# with REAL_SHELL set to something else than /bin/sh, for instance, your favourite
856
# This is special to literate/, ToDo: add literate-specific
857
# configure setup to literate/.
862
TGRIND_HELPER = /usr/local/lib/tgrind/tfontedpr # XXX
869
#-----------------------------------------------------------------------------
872
XSLTPROC = @XsltprocCmd@
873
XMLLINT = @XmllintCmd@
876
PDFXMLTEX = @PdfxmltexCmd@
879
DIR_DOCBOOK_XSL = @DIR_DOCBOOK_XSL@
881
XSLTPROC_LABEL_OPTS = --stringparam toc.section.depth 3 \
882
--stringparam section.autolabel 1 \
883
--stringparam section.label.includes.component.label 1
885
#-----------------------------------------------------------------------------
886
# FPtools support software
888
# Stuff from fptools/glafp-utils
889
MKDEPENDC = $(MKDEPENDC_PREFIX)mkdependC
890
LTX = $(LTX_PREFIX)ltx
891
MKDIRHIER = $(MKDIRHIER_PREFIX)mkdirhier
892
LNDIR = $(LNDIR_PREFIX)lndir
893
ETAGS = $(ETAGS_PREFIX)etags
894
VERBATIM = $(VERBATIM_PREFIX)verbatim
895
SGMLVERB = $(SGMLVERB_PREFIX)sgmlverb
896
RUNTEST = $(RUNTEST_PREFIX)runstdtest
901
# .NET support software
909
GHC_PKG = @GhcPkgCmd@
914
GREENCARD = @GreenCardCmd@
915
GREENCARD_VERSION = @GreenCardVersion@
921
HAPPY_VERSION = @HappyVersion@
923
# Options to pass to Happy when we're going to compile the output with GHC
925
GHC_HAPPY_OPTS = -agc
927
# Temp. to work around performance problems in the HEAD around 8/12/2003,
928
# A Happy compiled with this compiler needs more stack.
929
SRC_HAPPY_OPTS = +RTS -K2m -RTS
935
ALEX_VERSION = @AlexVersion@
937
# Options to pass to Happy when we're going to compile the output with GHC
944
HADDOCK = @HaddockCmd@
945
HADDOCK_INPLACE = $(HADDOCK_PREFIX)/src/haddock-inplace
948
# Stuff from fptools/literate
950
LIT2PGM = $(LITERATE_PREFIX)lit2pgm
951
LIT2HTML = $(LITERATE_PREFIX)lit2html
952
LIT2LATEX = $(LITERATE_PREFIX)lit2latex
953
MKDEPENDLIT = $(LITERATE_PREFIX)mkdependlit
954
LIT2CHANGELOG = $(LITERATE_PREFIX)lit2changelog
955
LIT2TEXT = $(LITERATE_PREFIX)lit2text
958
# Stuff from fptools/ghc/utils
960
UNLIT = $(UNLIT_PREFIX)unlit$(exeext)
961
HP2PS = $(HP2PS_PREFIX)hp2ps$(exeext)
962
HSTAGS = $(HSTAGS_PREFIX)hasktags
963
HSC2HS = $(HSC2HS_PREFIX)hsc2hs-inplace
966
# Options for the compiling different `ways'. Various projects within
967
# the glorious fptools tree support building in various user-configured
968
# ways. For instance, you could set up one `way' such that the prelude
969
# libraries all were built with the option -ffoldr-build-on.
971
# To configure up your own way, have a look at some of the standard ways
972
# such as profiling, and create your own set of WAY_*_OPTS defs below.
973
# After having done that, add your way string to WAYS, and after having
974
# run the configure script, the different projects will add the new way
975
# to the list of ways they support.
979
# IMPORTANT! The WAYS variable configures the different `ways'
980
# you want to build a project (or maybe just parts of it, as is
981
# the case for ghc/). This variable is intended set inside the
982
# project mk setup, enforcing a global fptools WAYS is a bit too
983
# much (do you *really* want to build glafp-utils the profiled-concurrent
988
# Definitions of the different ways:
992
# - description, e.g., profiling
993
# * what they mean to the driver:
994
# - WAY_p_HC_OPTS gives the list of command-line options
999
# The ways currently defined.
1001
ALL_WAYS=p t u s mp mg a b c d e f g h i j k l m n o A B
1002
USER_WAYS=a b c d e f g h j k l m n o A B
1005
# The following ways currently have treated specially, p u t mg,
1006
# as the driver script treats these guys specially and needs to carefully be told
1007
# about the options for these. Hence, we hide the required command line options
1008
# for these in the ghc/driver, as this is the only place they are needed.
1010
# If you want to add to these default options, fill in the variables below:
1014
WAY_i_HC_OPTS= -filx -fruntime-types
1017
WAY_p_NAME=profiling
1018
WAY_p_HC_OPTS= -prof
1021
WAY_t_NAME=ticky-ticky profiling
1022
WAY_t_HC_OPTS= -ticky
1025
WAY_u_NAME=unregisterized (using portable C only)
1026
WAY_u_HC_OPTS=-unreg
1029
WAY_s_NAME=threads (for SMP)
1033
WAY_mp_NAME=parallel
1034
WAY_mp_HC_OPTS=-parallel
1038
WAY_mg_HC_OPTS=-gransim
1041
# These ways apply to the RTS only:
1045
WAY_thr_NAME=threaded
1046
WAY_thr_HC_OPTS=-optc-DTHREADED_RTS
1049
WAY_thr_p_NAME=threaded profiled
1050
WAY_thr_p_HC_OPTS=-optc-DTHREADED_RTS -prof
1053
WAY_debug_NAME=debug
1054
WAY_debug_HC_OPTS=-optc-DDEBUG
1057
WAY_debug_p_NAME=debug profiled
1058
WAY_debug_p_HC_OPTS=-optc-DDEBUG -prof
1061
WAY_debug_u_NAME=debug unregisterised
1062
WAY_debug_u_HC_OPTS=-optc-DDEBUG -unreg
1065
WAY_thr_debug_NAME=threaded
1066
WAY_thr_debug_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG
1068
# Way 'thr_debug_p':
1069
WAY_thr_debug_p_NAME=threaded
1070
WAY_thr_debug_p_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -prof
1073
# Add user-way configurations here:
1123
################################################################################
1125
# 31-bit-Int Core files
1127
################################################################################
1130
# It is possible to configure the compiler and prelude to support 31-bit
1131
# integers, suitable for a back-end and RTS using a tag bit on a 32-bit
1132
# architecture. Currently the only useful output from this option is external Core
1133
# files. The following additions to your build.mk will produce the
1134
# 31-bit core output. Note that this is *not* just a library "way"; the
1135
# compiler must be built a special way too.
1137
# GhcCppOpts +=-DWORD_SIZE_IN_BITS=31
1138
# GhcLibHcOpts +=-fext-core -fno-code -DWORD_SIZE_IN_BITS=31
1139
# GhcLibCppOpts += -DWORD_SIZE_IN_BITS=31