config.mk.in 42.4 KB
Newer Older
chak's avatar
chak committed
1
#								 -*-makefile-*-
2
3
# @configure_input@
#
4
################################################################################
5
#
6
# config.mk.in
7
#
8
9
10
# This file supplies defaults for many tweakable build configuration
# options.  Some of the defaults are filled in by the autoconf-generated
# configure script.
11
#
12
# DO NOT EDIT THIS FILE!
13
#
14
15
16
17
# 	- config.mk is auto-generated from config.mk.in by configure.
#	  This may be triggered automatically by the build system (say
#	  if config.mk.in has changed more recently than config.mk),
#	  so if you edit config.mk your changes will be spammed.
18
#
19
#	- Settings in this file may be overriden by giving replacement
20
21
22
23
24
#	  definitions in build.mk.  See build.mk.sample for a good
#	  starting point for a build.mk file.
#
#	  If you don't have a build.mk file then you get defaults for everything.
#	  The defaults should provide a reasonable vanilla build.
25
26
27
28
#
# This is one of only two files that configure generates (the other is config.h)
#

29
ifneq "$(findstring 3.7, $(MAKE_VERSION))" ""
30
31
32
ifeq "$(findstring 3.79.1, $(MAKE_VERSION))" ""
$(error GNU make version 3.79.1 or later is required.)
endif
33
endif
34

35
################################################################################
sof's avatar
sof committed
36
#
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# GHC Version
#

# ProjectVersion    is treated as a *string*
# ProjectVersionInt is treated as an *integer* (for cpp defines)

# Versioning scheme: A.B.C
#         A: major version, decimal, any number of digits
#         B: minor version, decimal, any number of digits
#	  C: patchlevel, one digit, omitted if zero.
#
# ProjectVersionInt does *not* contain the patchlevel (rationale: this
# figure is used for conditional compilations, and library interfaces
# etc. are not supposed to change between patchlevels).
#
# The ProjectVersionInt is included in interface files, and GHC
# checks that it's reading interface generated by the same ProjectVersion
# as itself. It does this even though interface file syntax may not 
# change between versions.  Rationale: calling conventions or other 
# random .o-file stuff might change even if the .hi syntax doesn't

sven.panne@aedion.de's avatar
sven.panne@aedion.de committed
58
ProjectName       = @ProjectName@
59
60
ProjectTags       =
ProjectVersion    = @ProjectVersion@$(ProjectTags)
61
62
63
64
65
66
ProjectVersionInt = @ProjectVersionInt@
ProjectPatchLevel = @ProjectPatchLevel@

################################################################################
#
#		Platform variables
sof's avatar
sof committed
67
#
68
################################################################################
sof's avatar
sof committed
69
70
71

# A "platform" is the GNU cpu-type/manufacturer/operating-system target machine
# specifier.  E.g. sparc-sun-solaris2
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#
# Build  platform: the platform on which we are doing this build
# Host   platform: the platform on which these binaries will run
# Target platform: the platform for which this compiler will generate code
#
# We don't support build & host being different, because the build
# process creates binaries that are run during the build, and also
# installed.
#
# If host & target are different, then we are building a compiler
# which will generate intermediate .hc files to port to the target
# architecture for bootstrapping.  The libraries and stage 2 compiler
# will be built as HC files for the target system, and likely won't
# build on this host platform.
#
87
88
89
90
91
92
93
# An important invariant is that for any piece of source code, the
# platform on which the code is going to run is the HOST platform,
# and the platform on which we are building is the BUILD platform.
# Additionally for the compiler, the platform this compiler will
# generate code for is the TARGET.  TARGET is not meaningful outside
# the compiler sources.
#
94
95
96
97
98
99
100
101
102
# Guidelines for when to use HOST vs. TARGET:
#
#  - In the build system (Makefile, foo.mk), normally we should test
#    $(HOSTPLATFORM).  There are some cases (eg. installation), where
#    we expect $(HOSTPLATFORM)==$(TARGETPLATFORM), so in those cases it
#    doesn't matter which is used.
#
#  - In the compiler itself, we should test HOST or TARGET depending
#    on whether the conditional relates to the code being generated, or
103
104
#    the platform on which the compiler is running.  See the section
#    on "Coding Style" in the commentary for more details.
105
#
106
#  - In all other code, we should be testing HOST only.
107
108
109
110
#
# NOTE: cross-compiling is not well supported by the build system.
# You have to do a lot of work by hand to cross compile: see the
# section on "Porting GHC" in the Building Guide.
sof's avatar
sof committed
111
112
113

HOSTPLATFORM			= @HostPlatform@
TARGETPLATFORM			= @TargetPlatform@
114
BUILDPLATFORM			= @BuildPlatform@
sof's avatar
sof committed
115
116

# Hack alert:
117
118
119
# in one or two places, we need to get at the OS version (major and
# perhaps even minor), HostOS_Full is the OS name reported by
# AC_CANONICAL_SYSTEM.
sof's avatar
sof committed
120
121
122
123
124
125
126
#
HostPlatform_CPP		= @HostPlatform_CPP@
HostArch_CPP			= @HostArch_CPP@
HostOS_CPP			= @HostOS_CPP@
HostOS_Full			= @HostOS_Full@
HostVendor_CPP	                = @HostVendor_CPP@

127
128
129
130
131
132
133
134
135
TargetPlatform_CPP		= @TargetPlatform_CPP@
TargetArch_CPP			= @TargetArch_CPP@
TargetOS_CPP			= @TargetOS_CPP@
TargetVendor_CPP                = @TargetVendor_CPP@

BuildPlatform_CPP		= @BuildPlatform_CPP@
BuildArch_CPP			= @BuildArch_CPP@
BuildOS_CPP			= @BuildOS_CPP@
BuildVendor_CPP                 = @BuildVendor_CPP@
sof's avatar
sof committed
136

137
138
139
@HostPlatform_CPP@_HOST           = 1
@TargetPlatform_CPP@_TARGET       = 1
@BuildPlatform_CPP@_BUILD         = 1
sof's avatar
sof committed
140

141
142
143
@HostArch_CPP@_HOST_ARCH          = 1
@TargetArch_CPP@_TARGET_ARCH      = 1
@BuildArch_CPP@_BUILD_ARCH        = 1
sof's avatar
sof committed
144

145
146
147
@HostOS_CPP@_HOST_OS              = 1
@TargetOS_CPP@_TARGET_OS          = 1
@BuildOS_CPP@_BUILD_OS            = 1
sof's avatar
sof committed
148

149
150
151
@HostVendor_CPP@_HOST_VENDOR      = 1
@TargetVendor_CPP@_TARGET_VENDOR  = 1
@BuildVendor_CPP@_BUILD_VENDOR    = 1
sof's avatar
sof committed
152

153
154
155
156
157
158
################################################################################
#
#		Global configuration options
#
################################################################################

sof's avatar
sof committed
159
160
161
162
163
# Leading underscores on symbol names in object files
# Valid options: YES/NO
#
LeadingUnderscore=@LeadingUnderscore@

rrt's avatar
rrt committed
164
# Pin a suffix on executables? If so, what (Windows only).
sof's avatar
sof committed
165
exeext=@exeext@
166
soext=@soext@
167

168
169
170
171
172
173
174
# Windows=YES if on a Windows platform
ifneq "$(findstring $(HostOS_CPP), mingw32 cygwin32)" ""
Windows=YES
else
Windows=NO
endif

175
176
177
# BootingFromHc - build GHC and the libraries from .hc files?
BootingFromHc = @BootingFromHc@

ken's avatar
ken committed
178
179
180
181
# BootingFromUnregisterisedHc - treat .hc files as containing unregisterised
# rather than registerised code, i.e., disable the mangler?
BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@

182
183
#
# Which ways should DocBook XML documents be built?
184
# options are: dvi ps pdf html chm HxS
185
186
187
#
XMLDocWays=

188
189
# Mac OS X deployment target (to cross-compile for older OS versions)
#
190
191
192
193
194
MACOSX_DEPLOYMENT_VERSION = @MACOSX_DEPLOYMENT_VERSION@
MACOSX_DEPLOYMENT_SDK = @MACOSX_DEPLOYMENT_SDK@

ifneq "$(MACOSX_DEPLOYMENT_VERSION)" ""
MACOSX_DEPLOYMENT_CC_OPTS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_VERSION) \
195
196
			    -isysroot $(MACOSX_DEPLOYMENT_SDK) \
			    --no-builtin-fprintf
197
198
199
200
201
202
MACOSX_DEPLOYMENT_LD_OPTS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_VERSION) \
			    -Wl,-syslibroot,$(MACOSX_DEPLOYMENT_SDK)
# We don't extend SRC_CC_OPTS and friends here directly, as (a) they may get
# overwritten in build.mk and (b) we must not use the deployment options in
# stage 1 or we get a linker error if the bootstrap compiler is for a more 
# recent OS version.
203
204
205
206
#
# We need --no-builtin-fprintf, as the use of the builtin function optimisation
# for fprintf together with #include "PosixSource" in the RTS leads to the
# use of fwrite$UNIX2003 (with GCC 4.0.1 on Mac OS X 10.5.2).
207
endif
208

209
################################################################################
210
211
#
# Variables that control how the compiler itself is built
sof's avatar
sof committed
212
#
213
################################################################################
214

215
216
# The compiler used to build GHC is $(GHC).  To change the actual compiler
# used, re-configure with --with-ghc=<path-to-ghc>.
sof's avatar
sof committed
217

218
219
220
221
222
# 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)
GhcCompilerWays=

# Extra option flags to pass to the compiler that compiles the compiler
223
# (Ones that are essential are wired into compiler/Makefile)
224
# Typical options to use here:
sof's avatar
sof committed
225
#
226
227
228
#	-DDEBUG		include debugging code and assertions (will make the
#			compiler slower and produce debugging output, but useful
#			for development)
sof's avatar
sof committed
229
230
#
#	-dcore-lint	check the types after every pass of the compiler;
231
232
233
234
#			a pretty strong internal check of the compiler being
#			used to compile GHC.  Useful when bootstrapping.
GhcHcOpts=-Rghc-timing

235
236
237
238
# Extra options added to specific stages of the compiler bootstrap.
# These are placed later on the command line, and may therefore
# override options from $(GhcHcOpts).
GhcStage1HcOpts=
239
240
GhcStage2HcOpts=-O2
GhcStage3HcOpts=-O2
241

242
GhcProfiled=NO
243
GhcDebugged=NO
244

245
246
247
248
249
250
251
252
253
254
# Build a compiler that will build *unregisterised* libraries and
# binaries by default.  Unregisterised code is supposed to compile and
# run without any support for architecture-specific assembly mangling,
# register assignment or tail-calls, and is therefore a good way to get
# started when porting GHC to new architectures.
#
# If this is set to NO, you can still use the unregisterised way
# (way 'u') to get unregisterised code, but the default way will be
# registerised.
#
255
256
257
# NOTE: the stage1 compiler will be a registerised binary (assuming
# the compiler you build with is generating registerised binaries), but
# the stage2 compiler will be an unregisterised binary.
258
#
259
260
261
ifneq "$(findstring $(HostArch_CPP), alpha hppa)" ""
GhcUnregisterised=YES
else
262
GhcUnregisterised=NO
263
endif
264

265
266
267
268
# Build a compiler with a native code generator backend
# (as well as a C backend)
#
# Target platforms supported:
269
270
#   i386, powerpc
#   sparc has bitrotted
271
272
273
274
#   AIX is not supported 
ArchSupportsNCG=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc)))
OsSupportsNCG=$(strip $(patsubst $(HostOS_CPP), YES, $(patsubst aix,,$(HostOS_CPP))))

275
276
277
278
# lazy test, because $(GhcUnregisterised) might be set in build.mk later.
GhcWithNativeCodeGen=$(strip\
    $(if $(filter YESYESNO,\
		  $(OsSupportsNCG)$(ArchSupportsNCG)$(GhcUnregisterised)),YES,NO))
279

280
281
HaveLibDL = @HaveLibDL@

282
283
284
# ArchSupportsSMP should be set iff there is support for that arch in
# includes/SMP.h
ArchSupportsSMP=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 sparc powerpc)))
285

286
287
# lazy test, because $(GhcUnregisterised) might be set in build.mk later.
GhcWithSMP=$(strip $(if $(filter YESNO, $(ArchSupportsSMP)$(GhcUnregisterised)),YES,NO))
288

289
290
# Whether to include GHCi in the compiler.  Depends on whether the RTS linker
# has support for this OS/ARCH combination.
291

292
OsSupportsGHCi=$(strip $(patsubst $(HostOS_CPP), YES, $(findstring $(HostOS_CPP), mingw32 cygwin32 linux solaris2 freebsd netbsd openbsd darwin)))
293
ArchSupportsGHCi=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc sparc sparc64)))
294
295

ifeq "$(OsSupportsGHCi)$(ArchSupportsGHCi)" "YESYES"
296
297
GhcWithInterpreter=YES
else 
298
GhcWithInterpreter=NO
299
endif
300

301
302
303
304
305
# GhcEnableTablesNextToCode tells us whether the target architecture
# supports placing info tables directly before the entry code
# (see TABLES_NEXT_TO_CODE in the RTS).  Whether we actually compile for
# TABLES_NEXT_TO_CODE depends on whether we're building unregisterised
# code or not, which may be decided by options to the compiler later.
306
ifneq "$(findstring $(TargetArch_CPP)X, ia64X powerpc64X)" ""
307
GhcEnableTablesNextToCode=NO
308
else
309
GhcEnableTablesNextToCode=YES
310
311
endif

Ian Lynagh's avatar
Ian Lynagh committed
312
313
314
315
316
317
318
319
# On Windows we normally want to make a relocatable bindist, to we
# ignore flags like libdir
ifeq "$(Windows)" "YES"
RelocatableBuild = YES
else
RelocatableBuild = NO
endif

320
321
322
323
# When building bindists we set this to yes so that the binaries are as
# portable as possible.
BeConservative = NO

sof's avatar
sof committed
324
325
326
327
328
#
# Building various ways?
# (right now, empty if not).
BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS)))
BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
329

330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
# 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

349
#------------------------------------------------------------------------------
350
# Options for Libraries
351

352
353
354
# Which directory (in libraries/) contains the integer library?
INTEGER_LIBRARY=integer-gmp

355
356
357
# What extra ways to build the libraries in
# In addition to the normal sequential way, the default is to also build
# profiled prelude libraries.
sof's avatar
sof committed
358
# When booting from .hc files, turn this off.
359
ifeq "$(BootingFromHc)" "YES"
sof's avatar
sof committed
360
GhcLibWays=
sof's avatar
sof committed
361
else
sof's avatar
sof committed
362
GhcLibWays=p
sof's avatar
sof committed
363
endif
364

365
366
367
368
369
370
371
# In addition, the RTS is built in some further variations.  Ways that
# make sense here:
# 
#   thr         : threaded
#   thr_p       : threaded profiled
#   debug       : debugging (compile with -g for the C compiler, and -DDEBUG)
#   debug_p     : debugging profiled
372
373
#   thr_debug   : debugging threaded
#   thr_debug_p : debugging threaded profiled
374
375
#   t		: ticky-ticky profiling
#   debug_t	: debugging ticky-ticky profiling
376
377
#
GhcRTSWays=
378
379
380
381
382
383
384

# Usually want the debug version
ifeq "$(BootingFromHc)" "NO"
GhcRTSWays += debug 
endif

# Want the threaded versions unless we're unregisterised
Simon Marlow's avatar
Simon Marlow committed
385
386
387
# Defer the check until later by using $(if..), because GhcUnregisterised might
# be set in build.mk, which hasn't been read yet.
GhcRTSWays += $(if $(findstring NO, $(GhcUnregisterised)),thr thr_p thr_debug,)
388

389
# We can only build GHCi threaded if we have a threaded RTS:
390
GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
391

392
393
394
395
# Option flags to pass to GHC when it's compiling modules in
# fptools/libraries.  Typically these are things like -O or
# -dcore-lint or -H32m.  The ones that are *essential* are wired into
# the build system.
sof's avatar
sof committed
396
#
397
# 	-O(2) is pretty desirable, otherwise no inlining of prelude
sof's avatar
sof committed
398
#		things (incl "+") happens when compiling with this compiler
399
#
400
#	-XGenerics switches on generation of support code for 
401
402
403
#		derivable type classes.  This is now off by default,
#		but we switch it on for the libraries so that we generate
#		the code in case someone importing wants it
sof's avatar
sof committed
404

405
GhcLibHcOpts=-O2 -Rghc-timing -XGenerics
rrt's avatar
rrt committed
406

407
# Win32 only: Enable the RTS and libraries to be built as DLLs
408
DLLized=@EnableWin32DLLs@
409

410
411
412
413
414
# Strip local symbols from libraries?  This can make the libraries smaller,
# but makes debugging somewhat more difficult.  Doesn't work with all ld's.
#
StripLibraries=NO

415
416
# These are the URL patterns that Haddock uses to generate the "Source
# File" links on each page.
417
PackageSourceURL = http://darcs.haskell.org/packages/$(PACKAGE)/%{FILE}
418
419
420
421
422
423
424
425
426
427

# ----------------------------------------------------------------------------
# Object-file splitting
#
# 	Set SplitObjs=YES or NO in your build.mk
#
#	Don't use -split-objs in in GhcLibHcOpts, because the build
#		system needs to do other special magic if you are
#		doing object-file splitting

428
429
430
431
432
433
434
435
# lazy test, so that $(GhcUnregisterised) can be set in build.mk
SplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),\
	            $(if $(filter YES,$(BootingFromHC)),\
		      NO,\
	              $(if $(filter NO,$(GhcUnregisterised)),\
			YES,\
			NO)),\
		    NO))
436

sebc's avatar
sebc committed
437
438
439
# Math library
LIBM=@LIBM@

sof's avatar
sof committed
440
441
442
443
# .NET interop support?
#
DotnetSupport=@DotnetSupport@

444
445
446
447
# Build unix package?
#
GhcLibsWithUnix=@GhcLibsWithUnix@

448
449
# ----------------------------------------------------------------------------
# Options for GHC's RTS
450

451
452
453
454
# For an optimised RTS (you probably don't want to change these; we build
# a debugging RTS by default now.  Use -debug to get it).
GhcRtsHcOpts=-optc-O2
GhcRtsCcOpts=-fomit-frame-pointer
455

456
457
# Include the front panel code?  Needs GTK+.
GhcRtsWithFrontPanel = NO
458

459
460
461
# Include support for CPU performance counters via the PAPI library in the RTS?
# (PAPI: http://icl.cs.utk.edu/papi/)
GhcRtsWithPapi = NO
462
463
PapiLibDir=
PapiIncludeDir=
464

465
################################################################################
466
#
467
#		nofib
468
469
470
#
# 	nofib specific options
#
471
################################################################################
472

473
WithNofibHc = $(GHC_INPLACE)
474
475
476
477
478
479
480
481
482
483

# NoFibSubDirs controls which set of tests should be run
# You can run one or more of
#	imaginary 
#	spectral
#	real
#	parallel
#	PRIVATE
#	PENDING
#	UNUSED
484
NoFibSubDirs = imaginary spectral real
485
486
487
488

# The different ways to build nofib. Default is just to mirror
# what is done for the ghc prelude libraries.
#
489
NoFibWays = $(GhcLibWays)
490
491

# Haskell compiler options for nofib
492
NoFibHcOpts = -O
493

494
495
496
# Number of times to run each program
NoFibRuns = 5

497
################################################################################
498
499
500
#
#		Paths (see paths.mk)
#
501
################################################################################
502

503
# Directory used by GHC (and possibly other tools) for storing
rrt's avatar
rrt committed
504
# temporary files.  If your TMPDIR isn't big enough, either override
505
506
507
# this in build.mk or set your environment variable "TMPDIR" to point
# to somewhere with more space.  (TMPDIR=. is a good choice).

508
# DEFAULT_TMPDIR isn't called TMPDIR because GNU make tends to
509
510
511
# 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.
512
513

DEFAULT_TMPDIR		= /tmp
rrt's avatar
rrt committed
514
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
515
DEFAULT_TMPDIR		= /C/TEMP
rrt's avatar
rrt committed
516
517
endif
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
518
DEFAULT_TMPDIR		= /C/TEMP
rrt's avatar
rrt committed
519
endif
520

521
522
# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.
# On Windows this is a c:/foo/bar style path.
sof's avatar
sof committed
523
FPTOOLS_TOP_ABS		= @hardtop@
524

525
BIN_DIST_NAME=ghc-$(ProjectVersion)
526
527
BIN_DIST_TOPDIR_ABS=$(FPTOOLS_TOP_ABS)
BIN_DIST_DIR=$(BIN_DIST_TOPDIR_ABS)/$(BIN_DIST_NAME)
528
BIN_DIST_TARBALL=$(FPTOOLS_TOP_ABS)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2
529

530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
# 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.
556

557
558
559
# This gets used in the default docdir when autoconf >= 2.60 is used
PACKAGE_TARNAME := @PACKAGE_TARNAME@

560
prefix          := @prefix@
561
562
563
564

# New autoconf (>= 2.60?) make a configure with a --datarootdir=DIR flag.
# However, in order to support older autoconf's we don't use it.
# datarootdir is set lower down instead.
565
566
567
# But, as datadir is defined in terms of datarootdir, we also need to
# set it to the value (if any) that configure gives it here.
datarootdir     := @datarootdir@
568

569
570
571
572
573
574
exec_prefix     := @exec_prefix@
bindir          := @bindir@
datadir0        := @datadir@
libdir0         := @libdir@
includedir      := @includedir@
mandir          := @mandir@
Clemens Fruhwirth's avatar
Clemens Fruhwirth committed
575
dynlibdir       := @libdir@
576

577
ifeq "$(RelocatableBuild)" "YES"
578
579
580

# Hack: our directory layouts tend to be different on Windows, so
# hack around configure's bogus assumptions here.
581
582
583
datarootdir := $(prefix)
datadir     := $(prefix)
libdir      := $(prefix)
584

585
586
587
588
589
590
docdir    := $(prefix)/doc
htmldir   := $(docdir)
dvidir    := $(docdir)
pdfdir    := $(docdir)
psdir     := $(docdir)

591
592
else

593
# Unix: override libdir and datadir to put ghc-specific stuff in
594
# a subdirectory with the version number included.
595
596
597
datarootdir := $(datadir0)
datadir     := $(datadir0)/ghc-$(ProjectVersion)
libdir      := $(libdir0)/ghc-$(ProjectVersion)
598

599
600
601
# New autoconf (>= 2.60?) make a configure with --docdir=DIR etc flags.
# However, in order to support older autoconf's we don't use them.

602
603
604
605
606
607
608
609
610
611
612
#docdir    := @docdir@
#htmldir   := @htmldir@
#dvidir    := @dvidir@
#pdfdir    := @pdfdir@
#psdir     := @psdir@

docdir    := $(datarootdir)/doc/ghc
htmldir   := $(docdir)
dvidir    := $(docdir)
pdfdir    := $(docdir)
psdir     := $(docdir)
613

614
615
616
617
endif # Windows

headerdir := $(libdir)/include

618
619
# Default place for putting interface files is $(libdir)
# (overriden for packages in package.mk)
620
ifacedir		= $(libdir)
621

sof's avatar
sof committed
622
623
624
625
626
627
# NOTE: by intention, libexecdir and libdir point to 
# the same place.
#  => Only way to override this is to set libexecdir= on the command line.
#     (NOTE: configure script setting is ignored).
libexecdir		= $(libdir)

628
GHC_PKG_PROG = $(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)/install-inplace/bin/ghc-pkg
Simon Marlow's avatar
Simon Marlow committed
629

630
631
#-----------------------------------------------------------------------------
# install configuration
632

633
#
634
# Set this to have files installed with a specific owner
635
#
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
INSTALL_OWNER =

# 
# Set this to have files installed with a specific group
#
INSTALL_GROUP =

#
# Invocations of `install' for the four different classes
# of targets:
#
INSTALL_PROGRAM = $(INSTALL) -m 755
INSTALL_SCRIPT  = $(INSTALL) -m 755
INSTALL_SHLIB   = $(INSTALL) -m 755
INSTALL_DATA    = $(INSTALL) -m 644
651
INSTALL_HEADER  = $(INSTALL) -m 644
Ian Lynagh's avatar
Ian Lynagh committed
652
INSTALL_MAN     = $(INSTALL) -m 644
653
654
INSTALL_DIR     = $(MKDIRHIER)

655
656
657
658
659
660
661
662
663
664
665
666
667
#
# runhaskell and hsc2hs are special, in that other compilers besides
# GHC might provide them.  Systems with a package manager often come
# with tools to manage this kind of clash, e.g. RPM's
# update-alternatives.  When building a distribution for such a system,
# we recommend setting both of the following to 'YES'.
#
# NO_INSTALL_RUNHASKELL = YES
# NO_INSTALL_HSC2HS     = YES
#
# NB. we use negative tests here because for binary-distributions we cannot
# test build-time variables at install-time, so they must default to on.

668
669
# -----------------------------------------------------------------------------
# Utilities programs: flags 
670
671
672
673
674
675
676
677
678
679
680

# If you want to give any standard flags to pretty much any utility
# (see utils.mk for a complete list), by adding a line here
#
# 	SRC_P_OPTS += ...
#
# where P is the utility. For example, to add -O to all Haskell
# compilations, 
#
#	SRC_HC_OPTS += -O

681
SRC_HC_OPTS += -H32m -O
682

rrt's avatar
rrt committed
683
684
685
686
687
688
689
690
# These flags make flex 8-bit
SRC_FLEX_OPTS	+= -8

# lint gets all CPP's flags too
SRC_LINT_OPTS		+= -axz -DLINT $(SRC_CPP_OPTS)
WAY$(_way)_LINT_OPTS	+= WAY$(_way)_CPP_OPTS

# Default fptools options for dllwrap.
691
SRC_BLD_DLL_OPTS += --target=i386-mingw32
rrt's avatar
rrt committed
692
693
694
695

# Flags for CPP when running GreenCard on .pgc files
GC_CPP_OPTS += -P -E -x c -traditional -D__GLASGOW_HASKELL__

696

697
################################################################################
698
#
699
#	Layout of the source tree
700
#
701
################################################################################
702

703
704
705
706
707
708
709
710
# 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_REL)
# indicates a directory relative to the top of the source tree, whereas
# $(GHC_FOO_DIR) is a directory relative to the current directory.
# $(GHC_FOO_DIR_ABS) is the absolute path to the directory.

GHC_UTILS_DIR_REL	= utils
GHC_INCLUDE_DIR_REL	= includes
711
GHC_COMPILER_DIR_REL = ghc
712
713
714
715
716
717
718
719
720
721
722
723
724
725
GHC_RTS_DIR_REL	   	= rts
GHC_UTILS_DIR_REL 	= utils
GHC_DRIVER_DIR_REL	= driver
GHC_COMPAT_DIR_REL	= compat

GHC_MKDEPENDC_DIR_REL	= $(GHC_UTILS_DIR_REL)/mkdependC
GHC_LTX_DIR_REL		= $(GHC_UTILS_DIR_REL)/ltx
GHC_RUNTEST_DIR_REL	= $(GHC_UTILS_DIR_REL)/runstdtest
GHC_LNDIR_DIR_REL	= $(GHC_UTILS_DIR_REL)/lndir
GHC_MKDIRHIER_DIR_REL	= $(GHC_UTILS_DIR_REL)/mkdirhier
GHC_DOCBOOK_DIR_REL	= $(GHC_UTILS_DIR_REL)/docbook
GHC_UNLIT_DIR_REL    	= $(GHC_UTILS_DIR_REL)/unlit
GHC_HP2PS_DIR_REL	= $(GHC_UTILS_DIR_REL)/hp2ps
GHC_HSTAGS_DIR_REL	= $(GHC_UTILS_DIR_REL)/hasktags
Simon Marlow's avatar
Simon Marlow committed
726
GHC_GHCTAGS_DIR_REL	= $(GHC_UTILS_DIR_REL)/ghctags
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
GHC_HSC2HS_DIR_REL	= $(GHC_UTILS_DIR_REL)/hsc2hs
GHC_TOUCHY_DIR_REL	= $(GHC_UTILS_DIR_REL)/touchy
GHC_PKG_DIR_REL		= $(GHC_UTILS_DIR_REL)/ghc-pkg
GHC_GENPRIMOP_DIR_REL	= $(GHC_UTILS_DIR_REL)/genprimopcode
GHC_GENAPPLY_DIR_REL	= $(GHC_UTILS_DIR_REL)/genapply

GHC_MANGLER_DIR_REL	= $(GHC_DRIVER_DIR_REL)/mangler
GHC_SPLIT_DIR_REL	= $(GHC_DRIVER_DIR_REL)/split
GHC_SYSMAN_DIR_REL	= $(GHC_RTS_DIR_REL)/parallel

GHC_UTILS_DIR		= $(FPTOOLS_TOP)/$(GHC_UTILS_DIR_REL)
GHC_INCLUDE_DIR	  	= $(FPTOOLS_TOP)/$(GHC_INCLUDE_DIR_REL)
GHC_COMPILER_DIR	= $(FPTOOLS_TOP)/$(GHC_COMPILER_DIR_REL)
GHC_RTS_DIR	   	= $(FPTOOLS_TOP)/$(GHC_RTS_DIR_REL)
GHC_UTILS_DIR 		= $(FPTOOLS_TOP)/$(GHC_UTILS_DIR_REL)
GHC_DRIVER_DIR		= $(FPTOOLS_TOP)/$(GHC_DRIVER_DIR_REL)
GHC_COMPAT_DIR		= $(FPTOOLS_TOP)/$(GHC_COMPAT_DIR_REL)

GHC_MKDEPENDC_DIR	= $(FPTOOLS_TOP)/$(GHC_MKDEPENDC_DIR_REL)
GHC_LTX_DIR		= $(FPTOOLS_TOP)/$(GHC_LTX_DIR_REL)
GHC_RUNTEST_DIR		= $(FPTOOLS_TOP)/$(GHC_RUNTEST_DIR_REL)
GHC_LNDIR_DIR		= $(FPTOOLS_TOP)/$(GHC_LNDIR_DIR_REL)
GHC_MKDIRHIER_DIR	= $(FPTOOLS_TOP)/$(GHC_MKDIRHIER_DIR_REL)
GHC_DOCBOOK_DIR		= $(FPTOOLS_TOP)/$(GHC_DOCBOOK_DIR_REL)
GHC_UNLIT_DIR    	= $(FPTOOLS_TOP)/$(GHC_UNLIT_DIR_REL)
GHC_HP2PS_DIR		= $(FPTOOLS_TOP)/$(GHC_HP2PS_DIR_REL)
GHC_HSTAGS_DIR		= $(FPTOOLS_TOP)/$(GHC_HSTAGS_DIR_REL)
Simon Marlow's avatar
Simon Marlow committed
754
GHC_GHCTAGS_DIR		= $(FPTOOLS_TOP)/$(GHC_GHCTAGS_DIR_REL)
Ian Lynagh's avatar
Ian Lynagh committed
755
GHC_HSC2HS_DIR		= $(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
GHC_TOUCHY_DIR		= $(FPTOOLS_TOP)/$(GHC_TOUCHY_DIR_REL)
GHC_PKG_DIR		= $(FPTOOLS_TOP)/$(GHC_PKG_DIR_REL)
GHC_GENPRIMOP_DIR	= $(FPTOOLS_TOP)/$(GHC_GENPRIMOP_DIR_REL)
GHC_GENAPPLY_DIR	= $(FPTOOLS_TOP)/$(GHC_GENAPPLY_DIR_REL)

GHC_MANGLER_DIR		= $(FPTOOLS_TOP)/$(GHC_MANGLER_DIR_REL)
GHC_SPLIT_DIR		= $(FPTOOLS_TOP)/$(GHC_SPLIT_DIR_REL)
GHC_SYSMAN_DIR		= $(FPTOOLS_TOP)/$(GHC_SYSMAN_DIR_REL)

GHC_UTILS_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_UTILS_DIR_REL)
GHC_INCLUDE_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_INCLUDE_DIR_REL)
GHC_COMPILER_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_COMPILER_DIR_REL)
GHC_RTS_DIR_ABS	   	= $(FPTOOLS_TOP_ABS)/$(GHC_RTS_DIR_REL)
GHC_UTILS_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_UTILS_DIR_REL)
GHC_DRIVER_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_DRIVER_DIR_REL)
GHC_COMPAT_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_COMPAT_DIR_REL)

GHC_MKDEPENDC_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_MKDEPENDC_DIR_REL)
GHC_LTX_DIR_ABS		= $(FPTOOLS_TOP_ABS)/$(GHC_LTX_DIR_REL)
GHC_RUNTEST_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_RUNTEST_DIR_REL)
GHC_LNDIR_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_LNDIR_DIR_REL)
GHC_MKDIRHIER_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_MKDIRHIER_DIR_REL)
GHC_DOCBOOK_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_DOCBOOK_DIR_REL)
GHC_UNLIT_DIR    	= $(FPTOOLS_TOP_ABS)/$(GHC_UNLIT_DIR_REL)
GHC_HP2PS_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_HP2PS_DIR_REL)
GHC_HSTAGS_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_HSTAGS_DIR_REL)
Simon Marlow's avatar
Simon Marlow committed
782
GHC_GHCTAGS_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_GHCTAGS_DIR_REL)
783
784
785
786
787
GHC_HSC2HS_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)
GHC_TOUCHY_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_TOUCHY_DIR_REL)
GHC_PKG_DIR_ABS		= $(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)
GHC_GENPRIMOP_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_GENPRIMOP_DIR_REL)
GHC_GENAPPLY_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_GENAPPLY_DIR_REL)
788
GHC_COMPILER_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_COMPILER_DIR_REL)
789
790
791
792

GHC_MANGLER_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_MANGLER_DIR_REL)
GHC_SYSMAN_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_SYSMAN_DIR_REL)
GHC_SPLIT_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_SPLIT_DIR_REL)
793

794
795
796
797
798
799
800
# -----------------------------------------------------------------------------
# Names of programs in the GHC tree
#
#      xxx_PGM	        the name of an executable, without the path
#      xxx		the executable relative to the current dir

GHC_UNLIT_PGM		= unlit$(exeext)
ravi@bluespec.com's avatar
ravi@bluespec.com committed
801
GHC_HP2PS_PGM		= hp2ps
802
GHC_HSTAGS_PGM		= hasktags
Simon Marlow's avatar
Simon Marlow committed
803
GHC_GHCTAGS_INPLACE_PGM	= ghctags-inplace
Ian Lynagh's avatar
Ian Lynagh committed
804
GHC_HSC2HS_INPLACE_PGM	= hsc2hs
805
806
807
808
809
810
811
812
813
814
815
GHC_TOUCHY_PGM		= touchy$(exeext)
GHC_MANGLER_PGM		= ghc-asm
GHC_SPLIT_PGM		= ghc-split
GHC_SYSMAN_PGM 		= SysMan
GHC_GENPRIMOP_PGM	= genprimopcode
GHC_GENAPPLY_PGM	= genapply
GHC_MKDEPENDC_PGM 	= mkdependC
GHC_LTX_PGM 		= ltx
GHC_MKDIRHIER_PGM	= mkdirhier
GHC_LNDIR_PGM		= lndir
GHC_RUNTEST_PGM		= runstdtest
816

817
818
819
820
821
822
823
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
GHC_CP			= "xcopy /y"
GHC_PERL		= perl
else
GHC_CP			= $(CP)
GHC_PERL		= $(PERL)
endif
824

825
UNLIT			= $(GHC_UNLIT_DIR)/$(GHC_UNLIT_PGM)
ravi@bluespec.com's avatar
ravi@bluespec.com committed
826
HP2PS			= $(GHC_HP2PS_DIR)/$(GHC_HP2PS_PGM)
827
HSTAGS			= $(GHC_HSTAGS_DIR)/$(GHC_HSTAGS_PGM)
Simon Marlow's avatar
Simon Marlow committed
828
GHCTAGS_INPLACE		= $(GHC_GHCTAGS_DIR)/$(GHC_GHCTAGS_INPLACE_PGM)
Ian Lynagh's avatar
Ian Lynagh committed
829
HSC2HS_INPLACE		= $(GHC_HSC2HS_DIR)/install-inplace/bin/$(GHC_HSC2HS_INPLACE_PGM)
830
831
832
MANGLER			= $(GHC_MANGLER_DIR)/$(GHC_MANGLER_PGM)
SPLIT			= $(GHC_SPLIT_DIR)/$(GHC_SPLIT_PGM)
SYSMAN 			= $(GHC_SYSMAN_DIR)/$(GHC_SYSMAN_PGM)
833
GHC_PKG_INPLACE		= $(GHC_PKG_PROG)
834
835
836
837
838
839
840
GENPRIMOP		= $(GHC_GENPRIMOP_DIR)/$(GHC_GENPRIMOP_PGM)
GENAPPLY		= $(GHC_GENAPPLY_DIR)/$(GHC_GENAPPLY_PGM)
MKDEPENDC 		= $(GHC_MKDEPENDC_DIR)/$(GHC_MKDEPENDC_PGM)
LTX 			= $(GHC_LTX_DIR)/$(GHC_LTX_PGM)
MKDIRHIER		= $(GHC_MKDIRHIER_DIR)/$(GHC_MKDIRHIER_PGM)
LNDIR			= $(GHC_LNDIR_DIR)/$(GHC_LNDIR_PGM)
RUNTEST			= $(GHC_RUNTEST_DIR)/$(GHC_RUNTEST_PGM)
841

842
GENERATED_FILE  = chmod a-w
Ian Lynagh's avatar
Ian Lynagh committed
843
EXECUTABLE_FILE = chmod +x
844

845
#-----------------------------------------------------------------------------
846
847
848
849
850
851
852
# Haskell compilers and mkdependHS

# $(GHC), $(HBC) and $(NHC) point to installed versions of the relevant
# compilers, if available.
#
# $(HC) is a generic Haskell 98 compiler, set to $(GHC) by default.
# $(MKDEPENDHS) is the Haskell dependency generator (ghc -M).
853
854
855
#
# NOTE: Don't override $(GHC) in build.mk, use configure --with-ghc instead
# (because the version numbers have to be calculated).
856

857
GHC		= @WithGhc@
858
GhcDir          = $(dir $(GHC))
859

Ian Lynagh's avatar
Ian Lynagh committed
860
861
# Set to YES if $(GHC) has the editline package installed
GhcHasEditline	= @GhcHasEditline@
862

863
864
HBC		= @HBC@
NHC		= @NHC@
865

866
# Sometimes we want to invoke ghc from the build tree in different
867
# places (eg. it's handy to have a nofib & a ghc build in the same
rrt's avatar
rrt committed
868
# tree).  We can refer to "this ghc" as $(GHC_INPLACE):
869

870
871
872
873
874
875
GHC_INPLACE = $(GHC_STAGE1)
GHC_STAGE1  = $(GHC_COMPILER_DIR_ABS)/stage1-inplace/bin/ghc
GHC_STAGE2  = $(GHC_COMPILER_DIR_ABS)/stage2-inplace/bin/ghc
GHC_STAGE3  = $(GHC_COMPILER_DIR_ABS)/stage3-inplace/bin/ghc
# XXX All those used to have -no-user-package-conf, but then we can't
# pass them to Cabal
876

Ian Lynagh's avatar
Ian Lynagh committed
877
878
BOOTSTRAPPING_CONF = $(FPTOOLS_TOP_ABS)/libraries/bootstrapping.conf

879
880
881
882
# NOTE: add -no-user-package-conf for stage 1-3 above, so that
# we avoid picking up any packages the user might happen to have
# installed for this GHC version.  They are bound to be incompatible
# with the packages we built in the tree.
883

884
885
886
ifeq "$(stage)" "2"
  UseStage1 = YES
endif
887
888
889
890
891
892
893
894
895
896
897
ifneq "$(findstring YES, $(UseStage1) $(BootingFromHc))" ""

# We are using the stage1 compiler to compile Haskell code, set up
# some variables appropriately:
HC		=$(GHC_STAGE1)
MKDEPENDHS	=$(GHC_STAGE1)
GhcVersion	= @ProjectVersion@
GhcPatchLevel	= @ProjectPatchLevel@
# oops, these are wrong:
GhcMajVersion	= @GhcMajVersion@
GhcMinVersion	= @GhcMinVersion@
898

Simon Marlow's avatar
Simon Marlow committed
899
ghc_ge_605 = YES
Simon Marlow's avatar
Simon Marlow committed
900
ghc_ge_607 = YES
Ian Lynagh's avatar
Ian Lynagh committed
901
ghc_ge_609 = YES
902
903
904
905
906

else # not UseStage1 or BootingFromHc

HC	        = @WithHc@
MKDEPENDHS	= $(GHC)
Ian Lynagh's avatar
Ian Lynagh committed
907
908
BOOTSTRAPPING_PACKAGE_CONF_HC_OPTS = -package-conf $(BOOTSTRAPPING_CONF)
BOOTSTRAPPING_PACKAGE_CONF_MKDEPENDHS_OPTS = -package-conf $(BOOTSTRAPPING_CONF)
909
910
911
912
913
914
GhcVersion	= @GhcVersion@
GhcPatchLevel	= @GhcPatchLevel@
GhcMajVersion	= @GhcMajVersion@
GhcMinVersion	= @GhcMinVersion@

# Some useful GHC version predicates:
915
ghc_ge_605 = @ghc_ge_605@
Simon Marlow's avatar
Simon Marlow committed
916
ghc_ge_607 = @ghc_ge_607@
Ian Lynagh's avatar
Ian Lynagh committed
917
ghc_ge_609 = @ghc_ge_609@
918
endif
919
920
921
922
923
924
925
926

# Canonicalised ghc version number, used for easy (integer) version
# comparisons.  We must expand $(GhcMinVersion) to two digits by
# adding a leading zero if necessary:
ifneq "$(findstring $(GhcMinVersion), 0 1 2 3 4 5 6 7 8 9)" ""
GhcCanonVersion = $(GhcMajVersion)0$(GhcMinVersion)
else
GhcCanonVersion = $(GhcMajVersion)$(GhcMinVersion)
927
endif
928

929
930
931
#-----------------------------------------------------------------------------
# C compiler
#
932
933
934
935
# NB. Don't override $(WhatGccIsCalled) using build.mk,  re-configure using
# the flag --with-gcc=<blah> instead.  The reason is that the configure script
# needs to know which gcc you're using in order to perform its tests.

936
937
HaveGcc 	= @HaveGcc@
UseGcc  	= YES
sof's avatar
sof committed
938
WhatGccIsCalled = @WhatGccIsCalled@
939
GccVersion      = @GccVersion@
940
941
942
943
944
ifeq "$(strip $(HaveGcc))" "YES"
ifneq "$(strip $(UseGcc))"  "YES"
  CC	= cc
else
  CC	= $(WhatGccIsCalled)
945
  GccDir = $(dir $(WhatGccIsCalled))
946
947
948
endif
endif

949
# default C compiler flags
sof's avatar
sof committed
950
SRC_CC_OPTS = @SRC_CC_OPTS@
951

952
953
954
955
ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
SRC_CC_OPTS += -G0
endif

Ian Lynagh's avatar
Ian Lynagh committed
956
957
958
959
960
961
962
963
964
965
SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS)))

# Given
#   foo bar
# make
#   :\"-Ifoo\":\"-Ibar\"
nothing=
space=$(nothing) $(nothing)
SRC_HSC2HS_OPTS += $(subst $(space),,$(foreach d,$(GMP_INCLUDE_DIRS),:\"-I$(d)\"))

966
#-----------------------------------------------------------------------------
967
# GMP Library (version 2.0.x or above)
968
969
#
HaveLibGmp	= @HaveLibGmp@
970
LibGmp		= @LibGmp@
971

972
973
974
GMP_INCLUDE_DIRS=@GMP_INCLUDE_DIRS@
GMP_LIB_DIRS=@GMP_LIB_DIRS@

975
#-----------------------------------------------------------------------------
976
# GMP framework (Mac OS X)
977
#
978
HaveFrameworkGMP = @HaveFrameworkGMP@
979

980
#-----------------------------------------------------------------------------
981
# Mingwex Library
982
#
983
HaveLibMingwEx	= @HaveLibMingwEx@
984

985
#-----------------------------------------------------------------------------
986
# Flex (currently unused, could be moved to glafp-utils)
987

988
# FLEX			= @LEX@
sof's avatar
sof committed
989
# Don't bother with -lfl, we define our own yywrap()s anyway.
990
# FLEX_LIB		= 
sof's avatar
sof committed
991
#WAS:FLEX_LIB		= @LEXLIB@
992
993
994
995
996

#-----------------------------------------------------------------------------
# Other standard (ha!) Unix utilities

AR			= @ArCmd@
ken's avatar
ken committed
997
ArSupportsInput		= @ArSupportsInput@
998
999
1000
# Yuckage: for ghc/utils/parallel -- todo: nuke this dependency!!
BASH                    = /usr/local/bin/bash