config.mk.in 24.3 KB
Newer Older
chak's avatar
chak committed
1
#								 -*-makefile-*-
2
3
# @configure_input@
#
4
################################################################################
5
6
7
8
9
10
11
#
#			config.mk.in-template
#
#	This file defines all the variables that set the configuration of
#	a particular build.
#
#
12
################################################################################
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

# The configuration is defined in two steps:
#
#	1. The builder (i.e. the person doing the build)
#	   copies this file, config.mk.in-template
#	   to config.mk.in
#
#	2. S/he then edits it manually (gasp) to reflect any configuration
#	   options s/he wants.
#
#	3. Then s/he runs "configure", which generates config.mk from
#	   config.mk.in, substituting for system/platform-dependent things
#	   enclosed in @at-signs@.
#
# This is one of only two files that configure generates (the other is config.h)
#
# Note that after subsequent edits of config.mk.in for a build, the configure script
# will have to be re-run manually to have the change reflected in config.mk. 
#

# There is a section below for each project within the fptools suite
#
#	PLUS
#
# a section corresponding to each of the main .mk files 
# included by boilerplate.mk (see boilerplate.mk for a list).


41
################################################################################
sof's avatar
sof committed
42
43
44
#
#		Project-wide platform variables
#
45
################################################################################
sof's avatar
sof committed
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

# A "platform" is the GNU cpu-type/manufacturer/operating-system target machine
# specifier.  E.g. sparc-sun-solaris2

HOSTPLATFORM			= @HostPlatform@
TARGETPLATFORM			= @TargetPlatform@
BUILDPLATFORM			= @HostPlatform@

# Hack alert:
# 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.
#
HostPlatform_CPP		= @HostPlatform_CPP@
HostArch_CPP			= @HostArch_CPP@
HostOS_CPP			= @HostOS_CPP@
HostOS_Full			= @HostOS_Full@
HostVendor_CPP	                = @HostVendor_CPP@

#
# ToDo: check if these can be purged now. -- sof
#

@HostPlatform_CPP@_HOST        = 1
@HostPlatform_CPP@_TARGET      = 1
@HostPlatform_CPP@_BUILD       = 1

@HostArch_CPP@_HOST_ARCH       = 1
@HostArch_CPP@_TARGET_ARCH	= 1
@HostArch_CPP@_BUILD_ARCH      = 1

@HostOS_CPP@_HOST_OS           = 1
@HostOS_CPP@_TARGET_OS         = 1
@HostOS_CPP@_BUILD_OS          = 1

@HostVendor_CPP@_HOST_VENDOR    = 1
@HostVendor_CPP@_TARGET_VENDOR  = 1
@HostVendor_CPP@_BUILD_VENDOR   = 1

# Leading underscores on symbol names in object files
# Valid options: YES/NO
#
LeadingUnderscore=@LeadingUnderscore@

rrt's avatar
rrt committed
89
# Pin a suffix on executables? If so, what (Windows only).
sof's avatar
sof committed
90
exeext=@exeext@
91

92
################################################################################
93
94
95
96
97
#
#		project-wide flags
#
# 	Set of options applicable to all fptools projects
#
98
################################################################################
99

100
# build the libs first if we're bootstrapping from .hc files
101
ifeq "$(GhcWithHscBuiltViaC)" "YES"
102
AllProjects = glafp-utils hslibs ghc green-card happy hdirect hood nofib
103
else
104
AllProjects = glafp-utils ghc hslibs green-card happy hdirect hood nofib
105
endif
106
107
108
109
110
111
112

#
# (OPTIONAL) set ProjectsToBuild to a list of projects to be built.  If this
# list is empty, then all projects present in the source tree will be built.
#
ProjectsToBuild =

sof's avatar
sof committed
113
#
114
115
# set ProjectsDontInstall to a list of projects which are normally built but
# not installed.
sof's avatar
sof committed
116
#
117
ProjectsDontInstall = glafp-utils nofib
118
119
120
121
122
123

#
# Should the various project tests directories be built?
#
IncludeTestDirsInBuild=NO

124
################################################################################
125
126
127
128
129
130
#
#		GHC project
# 
# 	Set of (configurable) options needed by the ghc tree
#	plus their default options (if any).
#
131
################################################################################
132
133
134
135

#---------------------------------------------------------------
#
# Variables that control how the compiler itself is built
sof's avatar
sof committed
136
137
#
#---------------------------------------------------------------
138

139
140
# 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
141

142
143
144
145
146
147
148
# 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
# (Ones that are essential are wired into ghc/compiler/Makefile)
# Typical ones:
149
#	-H25m		allocate a bigger heap (might speed up compilation)
sof's avatar
sof committed
150
151
152
#
#	-O		compile an optimised compiler
#
153
#	-DDEBUG		include consistency/assertion checks in the compiled compiler
sof's avatar
sof committed
154
155
156
#
#	-dcore-lint	check the types after every pass of the compiler;
#			a pretty strong internal check
157
GhcHcOpts=-O -Rghc-timing
158
159

# GhcWithHscBuiltViaC - build GHC compiler proper (\`hsc') from .hc files?
sof's avatar
sof committed
160
GhcWithHscBuiltViaC=@BootingFromHc@
161

162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# 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.
#
# NOTE: this is not the same as building the compiler itself
# unregisterised.  That's done by either (a) bootstrapping with a
# compiler that was built with GhcUnregisterized=YES, or (b)
# bootstrapping with a compiler that has way 'u' libraries, and the
# flag '-unreg' is added to GhcHcOpts above.
#
GhcUnregisterised=NO

180
181
182
183
184
# Build a compiler with a native code generator backend
# (as well as a C backend)
#
# Target platforms supported:
#   i386, alpha & sparc
185
186
187
188
189
ifneq "$(findstring $(HostArch_CPP), i386 alpha sparc)" ""
GhcWithNativeCodeGen=YES
else
GhcWithNativeCodeGen=NO
endif
190

191
192
HaveLibDL = @HaveLibDL@

193
194
# Include GHCi in the compiler.  Default to NO for the time being.

195
196
ifneq "$(findstring $(HostOS_CPP), linux solaris freebsd netbsd openbsd)" ""
GhcWithInterpreter=YES
197
198
199
ifeq "$(HaveLibDL)" "YES"
SRC_HC_OPTS += -ldl
endif
200
else 
201
GhcWithInterpreter=NO
202
endif
203

sof's avatar
sof committed
204
205
206
207
208
#
# Building various ways?
# (right now, empty if not).
BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS)))
BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
209

210
211
#------------------------------------------------------------------------------
# Options for GHC's Prelude
212
213
214
215

# 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
216
217
# When booting from .hc files, turn this off.
ifeq "$(GhcWithHscBuiltViaC)" "YES"
sof's avatar
sof committed
218
GhcLibWays=
sof's avatar
sof committed
219
else
220
GhcLibWays=p
sof's avatar
sof committed
221
endif
222
223

# Option flags to pass to GHC when it's compiling prelude modules
rrt's avatar
rrt committed
224
# *and* standard library modules (std) *and* modules in hslibs
225
226
# Typically these are things like -O or -dcore-lint
# The ones that are *essential* are wired into ghc/lib/Makefile
sof's avatar
sof committed
227
228
229
230
#
# 	-O is pretty desirable, otherwise no inlining of prelude
#		things (incl "+") happens when compiling with this compiler

231
GhcLibHcOpts=-O -Rghc-timing
rrt's avatar
rrt committed
232

233
# Win32 only: Enable the RTS and libraries to be built as DLLs
rrt's avatar
rrt committed
234
# Don't split object files for libs if we're building DLLs
235
236
DLLized=@EnableWin32DLLs@
ifeq "$(DLLized)" "YES"
rrt's avatar
rrt committed
237
SplitObjs=NO
238
239
else
SplitObjs=YES
rrt's avatar
rrt committed
240
241
endif

242
243
244
245
246
247
248
249
250

# 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

# ----------------------------------------------------------------------------
# Options for GHC's RTS

251
# This is a good way to set things like -optc-g and -optc-DDEBUG for the RTS.
252
253
254
255
256
257
# GhcRtsHcOpts is used when compiling .hc files and .c files.
# GhcRtsCcOpts is used when compiling .c  files only.

# For a debugging RTS:
# GhcRtsHcOpts = -optc-DDEBUG
# GhcRtsCcOpts = -optc-g
258

259
# For an optimised RTS:
260
261
GhcRtsHcOpts=-O2
GhcRtsCcOpts=-O2 -optc-fomit-frame-pointer
262

263
264
265
# Include the front panel code?  Needs GTK+.
GhcRtsWithFrontPanel = NO

266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
################################################################################
#
#		hslibs project
#
################################################################################

# Build HsLibs for which compiler?  

# If $(HsLibsFor) == hugs or ghc, we assume we're building for the
# compiler/interpreter in the same source tree.

# HsLibsFor = ghc | hugs | nhc | hbc
HsLibsFor	= ghc

# hslibs for GHC also uses the following variables (defined above):
281
#   GhcLibWays, GhcLibHcOpts, GhcLibToolsHcOpts, DLLized, StripLibraries
282
283
284

# Haskell compiler options for tools in hslibs
GhcLibToolsHcOpts=-O
285

286
287
# Build the Haskell Readline bindings?
#
288
289
290
291
292
GhcLibsWithReadline=@HaveReadlineHeaders@

# Libraries needed for linking with readline
LibsReadline=@LibsReadline@

293
294
295
296
# Include path to readline.h
# (no path == in standard include path)
#
ReadlineIncludePath=
297

sebc's avatar
sebc committed
298
299
300
# Math library
LIBM=@LIBM@

301
302
303
304
# Build the Haskell OpenGL/GLUT binding?
#
GhcLibsWithHOpenGL=@GhcLibsWithHOpenGL@

305
################################################################################
306
307
308
309
310
#
#		happy project
#
# 	Happy specific options
#
311
################################################################################
312

313
# The compiler you'd like to use to compile Happy
314
WithHappyHc = @WithHc@
315

sof's avatar
sof committed
316
# HappyHcOpts gives the flags to pass to the Haskell compiler used
sof's avatar
sof committed
317
318
# 	      to compile the Happy sources with.
#
319
HappyHcOpts = -O
320

321
################################################################################
322
323
324
325
326
#
#		haggis project
#
# 	Haggis specific options
#
327
################################################################################
328

329
################################################################################
330
331
332
333
334
#
#		green-card project
#
# 	Green-card specific options
#
335
################################################################################
336

337
################################################################################
338
339
340
341
342
#
#		nofib project
#
# 	nofib specific options
#
343
################################################################################
344

345
WithNofibHc = $(GHC_INPLACE)
346
347
348
349
350
351
352
353
354
355

# NoFibSubDirs controls which set of tests should be run
# You can run one or more of
#	imaginary 
#	spectral
#	real
#	parallel
#	PRIVATE
#	PENDING
#	UNUSED
356
NoFibSubDirs = imaginary spectral real
357
358
359
360

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

# Haskell compiler options for nofib
364
NoFibHcOpts = -O
365
366
367
368
369
370
371
372
373

# ==============================================================================
#
#			END OF PROJECT-SPECIFIC STUFF
#
#		Now come the generic configuration options
#
# ==============================================================================

374
################################################################################
375
376
377
#
#		Paths (see paths.mk)
#
378
################################################################################
379

380
381
382
383
384
# Directory used by GHC (and possibly other tools) for storing
# temporary files.  If your /tmp isn't big enough, either override
# this in build.mk or set your environment variable "TMPDIR" to point
# to somewhere with more space.  (TMPDIR=. is a good choice).

385
# DEFAULT_TMPDIR isn't called TMPDIR because GNU make tends to
386
387
388
# 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.
389
390

DEFAULT_TMPDIR		= /tmp
rrt's avatar
rrt committed
391
392
393
394
395
396
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
DEFAULT_TMPDIR		= C:/TEMP
endif
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
DEFAULT_TMPDIR		= C:/TEMP
endif
397
398
399

# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path.

400
FPTOOLS_TOP_ABS		= @hardtop@
rrt's avatar
rrt committed
401
402
403
404
405
406
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
FPTOOLS_TOP_ABS		= $(patsubst /cygdrive/%/,%:/,@hardtop@)
endif
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
FPTOOLS_TOP_ABS		= $(patsubst /cygdrive/%/,%:/,@hardtop@)
endif
407
408
409
410
411
412

#
# 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.

413
414
415
416
417
418
419
420
421
422
prefix			= @prefix@
exec_prefix		= @exec_prefix@
bindir			= @bindir@
datadir			= @datadir@
#sysconfdir		= @datadir@
#sharedstatedir		= @sharedstatedir@
#localstatedir		= @localstatedir@
libdir			= @libdir@
includedir		= @includedir@
oldincludedir		= @oldincludedir@
423
mandir			= @mandir@
424
425
426

#UNUSED, see below: libexecdir              = @libexecdir@
#UNUSED:infodir		= @infodir@
sof's avatar
sof committed
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
#UNUSED:srcdir          = @srcdir@

# 
# Default values for most of the above are only set if
# they weren't configured to anything in particular
# via the configure script. (i.e., we make no assumption
# that the autoconf-generated script will assign defaults
# to all of the above).
#
ifeq "$(strip $(exec_prefix))" ""
exec_prefix		= $(prefix)
endif
ifeq "$(strip $(bindir))" ""
bindir			= $(exec_prefix)/bin
endif

#
# 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)

ifeq "$(strip $(datadir))" ""
datadir		= $(prefix)/share
endif
ifeq "$(strip $(libdir))" ""
libdir		= $(exec_prefix)/lib
endif
ifeq "$(strip $(includedir))" ""
includedir	= $(prefix)/include
endif
ifeq "$(strip $(oldincludedir))" ""
oldincludedir	= /usr/include
endif
ifeq "$(strip $(mandir))" ""
mandir		= $(prefix)/man
endif
465

466

467
################################################################################
468
469
470
#
#		Utilities programs: flags
#
471
################################################################################
472
473
474
475
476
477
478
479
480
481
482
483

# 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


484
################################################################################
485
486
487
#
#		Utilities programs: where to find them
#
488
################################################################################
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503

#-----------------------------------------------------------------------------
# FPtools Utility locations

# By default, the various utils needed to be build ghc and chums
# is set up to point to the utils/ directory. Define here the
# path prefix for the utilities. Notice that it's a prefix with
# a trailing slash, so that it can be concatenated directly on
# front of a program name; if it's not set then we just look
# along the shell's $(PATH)
#
# If instead you want to use installed or your own versions of these,
# override the various *_PREFIX in build.mk, i.e., having the following
# in build.mk:
#
504
#   MKDEPENDC_PREFIX=
505
#
506
# will force `make' to rummage around in your PATH to find `mkdependC' (not
507
508
509
510
511
512
513
514
515
# sure it would need it in the first place, but still).
#
GLAFP_UTILS  		= $(FPTOOLS_TOP)/glafp-utils

SCRIPT_PREFIX 		= $(GLAFP_UTILS)/scripts/
MKDEPENDC_PREFIX	= $(GLAFP_UTILS)/mkdependC/
LTX_PREFIX		= $(GLAFP_UTILS)/ltx/
RUNTEST_PREFIX		= $(GLAFP_UTILS)/runstdtest/
VERBATIM_PREFIX		= $(GLAFP_UTILS)/verbatim/
516
SGMLVERB_PREFIX		= $(GLAFP_UTILS)/sgmlverb/
517
518
519
520
ETAGS_PREFIX		= $(GLAFP_UTILS)/etags/
MSUB_PREFIX		= $(GLAFP_UTILS)/msub/
LNDIR_PREFIX		= $(GLAFP_UTILS)/lndir/
MKDIRHIER_PREFIX	= $(GLAFP_UTILS)/mkdirhier/
rrt's avatar
rrt committed
521
DOCBOOK_PREFIX		= $(GLAFP_UTILS)/docbook/
522
523
524
525

LITERATE_PREFIX    	= $(FPTOOLS_TOP)/literate/

HAPPY_PREFIX    	= $(FPTOOLS_TOP)/happy/src/
reid's avatar
reid committed
526
GREENCARD_PREFIX	= $(FPTOOLS_TOP)/green-card/src/
527
528
529
530

UNLIT_PREFIX    	= $(FPTOOLS_TOP)/ghc/utils/unlit/
HP2PS_PREFIX            = $(FPTOOLS_TOP)/ghc/utils/hp2ps/
HSTAGS_PREFIX           = $(FPTOOLS_TOP)/ghc/utils/hstags/
531
HSC2HS_PREFIX		= $(FPTOOLS_TOP)/ghc/utils/hsc2hs/
532
533

#-----------------------------------------------------------------------------
534
535
536
537
538
539
540
# 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).
541
542
543
#
# NOTE: Don't override $(GHC) in build.mk, use configure --with-ghc instead
# (because the version numbers have to be calculated).
544

545
GHC		= @WithGhc@
546
547
548
549
550
GhcVersion	= @GhcVersion@
GhcMajVersion	= @GhcMajVersion@
GhcMinVersion	= @GhcMinVersion@
GhcPatchLevel	= @GhcPatchLevel@

551
552
HBC		= @HBC@
NHC		= @NHC@
553

554
HC	        = @WithHc@
555
MKDEPENDHS	= $(GHC)
556

557
558
# 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
rrt's avatar
rrt committed
559
# tree).  We can refer to "this ghc" as $(GHC_INPLACE):
560

561
GHC_INPLACE 	= $(FPTOOLS_TOP)/ghc/compiler/ghc-inplace
562

563
564
565
566
567
568
#-----------------------------------------------------------------------------
# C compiler
#
#
HaveGcc 	= @HaveGcc@
UseGcc  	= YES
sof's avatar
sof committed
569
WhatGccIsCalled = @WhatGccIsCalled@
570
571
572
573
574
575
576
577
578
ifeq "$(strip $(HaveGcc))" "YES"
ifneq "$(strip $(UseGcc))"  "YES"
  CC	= cc
else
  CC	= $(WhatGccIsCalled)
endif
endif

#-----------------------------------------------------------------------------
579
# GMP Library (version 2.0.x or above)
580
581
#
HaveLibGmp	= @HaveLibGmp@
582
LibGmp		= @LibGmp@
583
584

#-----------------------------------------------------------------------------
585
586
587
588
589
# Regex library 
# (if present in libc use that one, otherwise use the one in the tree)
#
HaveRegex	= @HaveRegex@

590
591
592
593
594
595
#-----------------------------------------------------------------------------
# GTK+

GTK_CONFIG		= @GTK_CONFIG@
GTK_VERSION		= @GTK_VERSION@

596
#-----------------------------------------------------------------------------
597
598
599
# Flex

FLEX			= @LEX@
sof's avatar
sof committed
600
601
602
# Don't bother with -lfl, we define our own yywrap()s anyway.
FLEX_LIB		= 
#WAS:FLEX_LIB		= @LEXLIB@
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617

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

AR			= @ArCmd@
# Yuckage: for ghc/utils/parallel -- todo: nuke this dependency!!
BASH                    = /usr/local/bin/bash
#
# Could be either gzip or compress
#
COMPRESS		= @CompressCmd@
COMPRESS_SUFFIX         = @CompressSuffix@

CONTEXT_DIFF		= @ContextDiffCmd@
CP			= cp
618
CPP			= @CPP@
619
CTAGS 			= $(ETAGS)
620
RAWCPP                  = $(CPP) -undef -traditional
rrt's avatar
rrt committed
621
FIND			= @FindCmd@
622
INSTALL			= @INSTALL@
sof's avatar
sof committed
623
624
625
626
627
#
# Sigh - the autoconf macro for INSTALL will subst a relative path to the fallback
# install-sh script (if chosen). This not terribly useful to us, so we convert
# it into an abs. path.
# 
sof's avatar
sof committed
628
INSTALL			:= $(subst .././install-sh,$(FPTOOLS_TOP_ABS)/install-sh,$(INSTALL))
629
LATEX			= latex
rrt's avatar
rrt committed
630
631
HEVEA			= hevea
HACHA			= hacha
632
633
634
635
636
637
638
639
640
641
642
643
644
LN_S			= @LN_S@
MANMACROS		= -man
MSMACROS 		= -ms
MV			= mv
NROFF			= nroff
PERL 			= @PerlCmd@
PIC			= pic
PREPROCESSCMD		= $(CC) -E
PRINTER			= lpr
RANLIB			= @RANLIB@
RM			= rm -f
SED			= @SedCmd@
SHELL			= /bin/sh
sof's avatar
sof committed
645
646
647
648
649
650
651
652
653
654
655
656
657
658
#
# In emergency situations, REAL_SHELL is used to perform shell commands
# from within the ghc driver script, by scribbling the command line to
# a temp file and then having $(REAL_SHELL) execute it. 
#
# The reason for having to do this is that overly long command lines
# cause unnecessary trouble with some shells (e.g., /bin/sh on Solaris
# 2.5.1), which is why this backdoor is provided. The situation of overly
# long command lines is either encountered while doing `make boot' in ghc/compiler, 
# or when linking the compiler binary (`hsc'). 
#
# 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. 

rrt's avatar
rrt committed
659
# By default, REAL_SHELL is set equal to SHELL, which is not really a smart move
660
# as it is SHELL that will show up the bogosity in the first place, but setting
sof's avatar
sof committed
661
662
663
664
665
666
667
# it to anything else isn't really portable.
#
#  ====> If long command lines cause you trouble, invoke `ghc' (via `make' or otherwise)
# with REAL_SHELL set to something else than /bin/sh, for instance, your favourite
# command shell.
#
REAL_SHELL=$(SHELL)
668
669
670
SIZE			= size
STRIP			= strip
TAR			= @TarCmd@
sof's avatar
sof committed
671
ZIP			= zip
sof's avatar
sof committed
672
673

#
rrt's avatar
rrt committed
674
# Under Windows, we have to deal with .exe suffixes
sof's avatar
sof committed
675
#
rrt's avatar
rrt committed
676
EXE_SUFFIX=@exeext@
sof's avatar
sof committed
677

678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
#
# This is special to literate/, ToDo: add literate-specific
# configure setup to literate/.
#
TBL 			= tbl
TEX			= tex
TGRIND 			= tgrind
TGRIND_HELPER 		= /usr/local/lib/tgrind/tfontedpr # XXX
TIB			= tib

TIME			= @TimeCmd@
TROFF			= troff
UNAME			= uname
YACC			= @YaccCmd@

693
#-----------------------------------------------------------------------------
rrt's avatar
rrt committed
694
# SGML stuff
695

rrt's avatar
rrt committed
696
697
JADE			= @JadeCmd@

rrt's avatar
rrt committed
698
699
700
701
702
SGML2DVI		= $(DOCBOOK_PREFIX)db2dvi
SGML2HTML		= $(DOCBOOK_PREFIX)db2html
SGML2PS			= $(DOCBOOK_PREFIX)db2ps
SGML2PDF		= $(DOCBOOK_PREFIX)db2pdf
SGML2RTF		= $(DOCBOOK_PREFIX)db2rtf
703

rrt's avatar
rrt committed
704
705
SGMLSTYLESHEET          = $(FPTOOLS_TOP_ABS)/docs/fptools-both.dsl

706
707
708
709
SRC_SGML2DVI_OPTS       = -d $(SGMLSTYLESHEET)
SRC_SGML2HTML_OPTS      = -d $(SGMLSTYLESHEET)
SRC_SGML2PS_OPTS      	= -d $(SGMLSTYLESHEET)
SRC_SGML2RTF_OPTS       = -d $(SGMLSTYLESHEET)
rrt's avatar
rrt committed
710

711
DOCBOOK_CATALOG		= @Catalog@
chak's avatar
chak committed
712

713
714
715
716
717
718
719
720
721
722
723
#-----------------------------------------------------------------------------
# 		FPtools support software

# Stuff from fptools/glafp-utils
MKDEPENDC 		= $(MKDEPENDC_PREFIX)mkdependC
LTX 			= $(LTX_PREFIX)ltx
MKDIRHIER		= $(MKDIRHIER_PREFIX)mkdirhier
LNDIR			= $(LNDIR_PREFIX)lndir
MSUB			= $(MSUB_PREFIX)msub
ETAGS			= $(ETAGS_PREFIX)etags
VERBATIM		= $(VERBATIM_PREFIX)verbatim
724
SGMLVERB		= $(SGMLVERB_PREFIX)sgmlverb
725
726
RUNTEST			= $(RUNTEST_PREFIX)runstdtest
LX			= @LxCmd@
sof's avatar
sof committed
727
GREENCARD	        = $(FPTOOLS_TOP)/green-card/src/green-card
728

sof's avatar
sof committed
729
730
BLD_DLL			= dllwrap

731
732
733
734
735
736
737
738
739
740
#
# 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)

741
742
743
744
745
746
747
748
749
750
751
752
753
#
# Stuff from fptools/literate
#
LIT2PGM 		= $(LITERATE_PREFIX)lit2pgm
LIT2HTML      		= $(LITERATE_PREFIX)lit2html
LIT2LATEX     		= $(LITERATE_PREFIX)lit2latex
MKDEPENDLIT   		= $(LITERATE_PREFIX)mkdependlit
LIT2CHANGELOG 		= $(LITERATE_PREFIX)lit2changelog
LIT2TEXT 		= $(LITERATE_PREFIX)lit2text

#
# Stuff from fptools/ghc/utils
#
rrt's avatar
rrt committed
754
755
UNLIT	 		= $(UNLIT_PREFIX)unlit$(EXE_SUFFIX)
HP2PS			= $(HP2PS_PREFIX)hp2ps$(EXE_SUFFIX)
756
HSTAGS			= $(HSTAGS_PREFIX)hstags
757
HSC2HS			= $(HSC2HS_PREFIX)hsc2hs-inplace
758
759
760
761
762

#
# Options for the compiling different `ways'. Various projects within
# the glorious fptools tree support building in various user-configured
# ways. For instance, you could set up one `way' such that the prelude
763
# libraries all were built with the option -ffoldr-build-on.
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
# 
# To configure up your own way, have a look at some of the standard ways
# such as profiling, and create your own set of WAY_*_OPTS defs below.
# After having done that, add your way string to WAYS, and after having
# run the configure script, the different projects will add the new way
# to the list of ways they support.
#

#
# IMPORTANT! The WAYS variable configures the different `ways'
# you want to build a project (or maybe just parts of it, as is
# the case for ghc/). This variable is intended set inside the
# project mk setup, enforcing a global fptools WAYS is a bit too
# much (do you *really* want to build glafp-utils the profiled-concurrent 
# way?)
#

#
# Definitions of the different ways:
#   
#   * their name:
#          - tag, e.g., p
#          - description, e.g., profiling
#   * what they mean to the driver:
#          - WAY_p_HC_OPTS gives the list of command-line options
#            to the driver.
#

#
# The ways currently defined.
#
795
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
796
USER_WAYS=a b c d e f g h i j k l m n o A B
797
798

#
799
# The following ways currently have treated specially, p u t mg,
800
801
802
803
804
# as the driver script treats these guys specially and needs to carefully be told
# about the options for these. Hence, we hide the required command line options
# for these in the ghc/driver, as this is the only place they are needed.
# 
# If you want to add to these default options, fill in the variables below:
805
806

# Way 'p':
807
808
809
WAY_p_NAME=profiling
WAY_p_HC_OPTS= -prof

810
# Way 't':
811
812
813
814
815
WAY_t_NAME=ticky-ticky profiling
WAY_t_HC_OPTS= -ticky

# Way `u':
WAY_u_NAME=unregisterized (using portable C only)
816
WAY_u_HC_OPTS=-unreg
817

818
819
820
821
# Way `s':
WAY_s_NAME=threads (for SMP)
WAY_s_HC_OPTS=-smp

822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
# Way `mp': 
WAY_mp_NAME=parallel
WAY_mp_HC_OPTS=-parallel

# Way `mg': 
WAY_mg_NAME=GranSim
WAY_mg_HC_OPTS=-gransim

#
# Add user-way configurations here:
#
WAY_A_NAME=
WAY_A_HC_OPTS=

WAY_B_NAME=
WAY_B_HC_OPTS=

WAY_a_NAME=
WAY_a_HC_OPTS=

WAY_b_NAME=
WAY_b_HC_OPTS=

WAY_c_NAME=
WAY_c_HC_OPTS=

WAY_d_NAME=
WAY_d_HC_OPTS=

WAY_e_NAME=
WAY_e_HC_OPTS=

WAY_f_NAME=
WAY_f_HC_OPTS=

WAY_g_NAME=
WAY_g_HC_OPTS=

WAY_h_NAME=
WAY_h_HC_OPTS=

WAY_i_NAME=
WAY_i_HC_OPTS=

WAY_j_NAME=
WAY_j_HC_OPTS=

WAY_k_NAME=
WAY_k_HC_OPTS=

WAY_l_NAME=
WAY_l_HC_OPTS=

WAY_m_NAME=
WAY_m_HC_OPTS=

WAY_n_NAME=
WAY_n_HC_OPTS=

WAY_o_NAME=
WAY_o_HC_OPTS=