config.mk.in 41.3 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
190
191
192
# Mac OS X deployment target (to cross-compile for older OS versions)
#
MACOS_DEPLOYMENT_VERSION = @MACOS_DEPLOYMENT_VERSION@
MACOS_DEPLOYMENT_SDK = @MACOS_DEPLOYMENT_SDK@

193
################################################################################
194
195
#
# Variables that control how the compiler itself is built
sof's avatar
sof committed
196
#
197
################################################################################
198

199
200
# 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
201

202
203
204
205
206
# 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
207
# (Ones that are essential are wired into compiler/Makefile)
208
# Typical options to use here:
sof's avatar
sof committed
209
#
210
211
212
#	-DDEBUG		include debugging code and assertions (will make the
#			compiler slower and produce debugging output, but useful
#			for development)
sof's avatar
sof committed
213
214
#
#	-dcore-lint	check the types after every pass of the compiler;
215
216
217
218
#			a pretty strong internal check of the compiler being
#			used to compile GHC.  Useful when bootstrapping.
GhcHcOpts=-Rghc-timing

219
220
221
222
223
224
225
# 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=
GhcStage2HcOpts=
GhcStage3HcOpts=

226
GhcProfiled=NO
227
GhcDebugged=NO
228

229
230
231
232
233
234
235
236
237
238
# 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.
#
239
240
241
# 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.
242
#
243
244
245
ifneq "$(findstring $(HostArch_CPP), alpha hppa)" ""
GhcUnregisterised=YES
else
246
GhcUnregisterised=NO
247
endif
248

249
250
251
252
# Build a compiler with a native code generator backend
# (as well as a C backend)
#
# Target platforms supported:
253
254
#   i386, powerpc
#   sparc has bitrotted
255
256
257
258
#   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))))

259
260
261
262
# lazy test, because $(GhcUnregisterised) might be set in build.mk later.
GhcWithNativeCodeGen=$(strip\
    $(if $(filter YESYESNO,\
		  $(OsSupportsNCG)$(ArchSupportsNCG)$(GhcUnregisterised)),YES,NO))
263

264
265
266
# Include support for generating Java
GhcWithJavaGen=NO

267
268
HaveLibDL = @HaveLibDL@

269
270
271
# 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)))
272

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

276
277
# Whether to include GHCi in the compiler.  Depends on whether the RTS linker
# has support for this OS/ARCH combination.
278

279
OsSupportsGHCi=$(strip $(patsubst $(HostOS_CPP), YES, $(findstring $(HostOS_CPP), mingw32 cygwin32 linux solaris2 freebsd netbsd openbsd darwin)))
280
ArchSupportsGHCi=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 powerpc sparc sparc64)))
281
282

ifeq "$(OsSupportsGHCi)$(ArchSupportsGHCi)" "YESYES"
283
284
GhcWithInterpreter=YES
else 
285
GhcWithInterpreter=NO
286
endif
287

288
289
290
291
292
# 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.
293
ifneq "$(findstring $(TargetArch_CPP)X, ia64X powerpc64X)" ""
294
GhcEnableTablesNextToCode=NO
295
else
296
GhcEnableTablesNextToCode=YES
297
298
endif

Ian Lynagh's avatar
Ian Lynagh committed
299
300
301
302
303
304
305
306
# 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

307
308
309
310
# When building bindists we set this to yes so that the binaries are as
# portable as possible.
BeConservative = NO

sof's avatar
sof committed
311
312
313
314
315
#
# Building various ways?
# (right now, empty if not).
BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS)))
BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
316

317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
# 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

336
337
MakefileDeps=YES

338
#------------------------------------------------------------------------------
339
# Options for Libraries
340
341
342
343

# 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
344
# When booting from .hc files, turn this off.
345
ifeq "$(BootingFromHc)" "YES"
sof's avatar
sof committed
346
GhcLibWays=
sof's avatar
sof committed
347
else
sof's avatar
sof committed
348
GhcLibWays=p
sof's avatar
sof committed
349
endif
350

351
352
353
354
355
356
357
# 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
358
359
#   thr_debug   : debugging threaded
#   thr_debug_p : debugging threaded profiled
360
361
#   t		: ticky-ticky profiling
#   debug_t	: debugging ticky-ticky profiling
362
363
#
GhcRTSWays=
364
365
366
367
368
369
370

# 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
371
372
373
# 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,)
374

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

378
379
380
381
# 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
382
383
384
#
# 	-O is pretty desirable, otherwise no inlining of prelude
#		things (incl "+") happens when compiling with this compiler
385
386
387
388
389
#
#	-fgenerics switches on generation of support code for 
#		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
390

391
GhcLibHcOpts=-O -Rghc-timing -fgenerics
rrt's avatar
rrt committed
392

393
# Win32 only: Enable the RTS and libraries to be built as DLLs
394
DLLized=@EnableWin32DLLs@
395

396
397
398
399
400
# 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

401
402
# These are the URL patterns that Haddock uses to generate the "Source
# File" links on each page.
403
PackageSourceURL = http://darcs.haskell.org/packages/$(PACKAGE)/%{FILE}
404
405
406
407
408
409
410
411
412
413

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

414
415
416
417
418
419
420
421
# 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))
422

sebc's avatar
sebc committed
423
424
425
# Math library
LIBM=@LIBM@

426
427
428
429
# Build the ObjectIO ?
#
GhcLibsWithObjectIO=@GhcLibsWithObjectIO@

sof's avatar
sof committed
430
431
432
433
# .NET interop support?
#
DotnetSupport=@DotnetSupport@

434
435
436
437
# Build unix package?
#
GhcLibsWithUnix=@GhcLibsWithUnix@

438
439
# ----------------------------------------------------------------------------
# Options for GHC's RTS
440

441
442
443
444
# 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
445

446
447
# Include the front panel code?  Needs GTK+.
GhcRtsWithFrontPanel = NO
448

449
450
451
452
453
# Include support for CPU performance counters via the PAPI library in the RTS?
# (PAPI: http://icl.cs.utk.edu/papi/)
GhcRtsWithPapi = NO
HavePapi = @HavePapi@

454
################################################################################
455
#
456
#		nofib
457
458
459
#
# 	nofib specific options
#
460
################################################################################
461

462
WithNofibHc = $(GHC_INPLACE)
463
464
465
466
467
468
469
470
471
472

# NoFibSubDirs controls which set of tests should be run
# You can run one or more of
#	imaginary 
#	spectral
#	real
#	parallel
#	PRIVATE
#	PENDING
#	UNUSED
473
NoFibSubDirs = imaginary spectral real
474
475
476
477

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

# Haskell compiler options for nofib
481
NoFibHcOpts = -O
482

483
484
485
# Number of times to run each program
NoFibRuns = 5

486
################################################################################
487
488
489
#
#		Paths (see paths.mk)
#
490
################################################################################
491

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

497
# DEFAULT_TMPDIR isn't called TMPDIR because GNU make tends to
498
499
500
# 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.
501
502

DEFAULT_TMPDIR		= /tmp
rrt's avatar
rrt committed
503
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
504
DEFAULT_TMPDIR		= /C/TEMP
rrt's avatar
rrt committed
505
506
endif
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
507
DEFAULT_TMPDIR		= /C/TEMP
rrt's avatar
rrt committed
508
endif
509

510
511
# 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
512
FPTOOLS_TOP_ABS		= @hardtop@
513

514
BIN_DIST_NAME=ghc-$(ProjectVersion)
515
516
BIN_DIST_TOPDIR_ABS=$(FPTOOLS_TOP_ABS)
BIN_DIST_DIR=$(BIN_DIST_TOPDIR_ABS)/$(BIN_DIST_NAME)
517
BIN_DIST_TARBALL=$(FPTOOLS_TOP_ABS)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2
518

519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
# 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.
545

546
547
548
# This gets used in the default docdir when autoconf >= 2.60 is used
PACKAGE_TARNAME := @PACKAGE_TARNAME@

549
prefix          := @prefix@
550
551
552
553

# 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.
554
555
556
# 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@
557

558
559
560
561
562
563
exec_prefix     := @exec_prefix@
bindir          := @bindir@
datadir0        := @datadir@
libdir0         := @libdir@
includedir      := @includedir@
mandir          := @mandir@
Clemens Fruhwirth's avatar
Clemens Fruhwirth committed
564
dynlibdir       := @libdir@
565

566
ifeq "$(RelocatableBuild)" "YES"
567
568
569

# Hack: our directory layouts tend to be different on Windows, so
# hack around configure's bogus assumptions here.
570
571
572
datarootdir := $(prefix)
datadir     := $(prefix)
libdir      := $(prefix)
573

574
575
576
577
578
579
docdir    := $(prefix)/doc
htmldir   := $(docdir)
dvidir    := $(docdir)
pdfdir    := $(docdir)
psdir     := $(docdir)

580
581
else

582
# Unix: override libdir and datadir to put ghc-specific stuff in
583
# a subdirectory with the version number included.
584
585
586
datarootdir := $(datadir0)
datadir     := $(datadir0)/ghc-$(ProjectVersion)
libdir      := $(libdir0)/ghc-$(ProjectVersion)
587

588
589
590
# 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.

591
592
593
594
595
596
597
598
599
600
601
#docdir    := @docdir@
#htmldir   := @htmldir@
#dvidir    := @dvidir@
#pdfdir    := @pdfdir@
#psdir     := @psdir@

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

603
604
605
606
endif # Windows

headerdir := $(libdir)/include

607
608
# Default place for putting interface files is $(libdir)
# (overriden for packages in package.mk)
609
ifacedir		= $(libdir)
610

sof's avatar
sof committed
611
612
613
614
615
616
# 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)

Simon Marlow's avatar
Simon Marlow committed
617
618
619
620
621
# This is a bit of a lie, as this is a wrapper rather than the program
# itself. However, it means that we don't have to worry about Windows
# and non-Windows having different extensions.
GHC_PKG_PROG = $(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)/ghc-pkg-inplace

622
623
#-----------------------------------------------------------------------------
# install configuration
624

625
#
626
# Set this to have files installed with a specific owner
627
#
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
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
643
INSTALL_HEADER  = $(INSTALL) -m 644
Ian Lynagh's avatar
Ian Lynagh committed
644
INSTALL_MAN     = $(INSTALL) -m 644
645
646
INSTALL_DIR     = $(MKDIRHIER)

647
648
649
650
651
652
653
654
655
656
657
658
659
#
# 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.

660
661
# -----------------------------------------------------------------------------
# Utilities programs: flags 
662
663
664
665
666
667
668
669
670
671
672

# 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

673
SRC_HC_OPTS += -H16m -O
674

rrt's avatar
rrt committed
675
676
677
678
679
680
681
682
683
684
685
686
687
# 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.
SRC_BLD_DLL_OPTS += -mno-cygwin --target=i386-mingw32

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

688

689
################################################################################
690
#
691
#	Layout of the source tree
692
#
693
################################################################################
694

695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
# 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
GHC_COMPILER_DIR_REL	= compiler
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
718
GHC_GHCTAGS_DIR_REL	= $(GHC_UTILS_DIR_REL)/ghctags
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
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
746
GHC_GHCTAGS_DIR		= $(FPTOOLS_TOP)/$(GHC_GHCTAGS_DIR_REL)
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
GHC_HSC2HS_DIR		= $(FPTOOLS_TOP)/$(GHC_HSC2HS_DIR_REL)
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
774
GHC_GHCTAGS_DIR_ABS	= $(FPTOOLS_TOP_ABS)/$(GHC_GHCTAGS_DIR_REL)
775
776
777
778
779
780
781
782
783
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)

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

785
786
787
788
789
790
791
# -----------------------------------------------------------------------------
# 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
792
GHC_HP2PS_PGM		= hp2ps
793
GHC_HSTAGS_PGM		= hasktags
Simon Marlow's avatar
Simon Marlow committed
794
GHC_GHCTAGS_INPLACE_PGM	= ghctags-inplace
795
796
797
798
799
GHC_HSC2HS_INPLACE_PGM	= hsc2hs-inplace
GHC_TOUCHY_PGM		= touchy$(exeext)
GHC_MANGLER_PGM		= ghc-asm
GHC_SPLIT_PGM		= ghc-split
GHC_SYSMAN_PGM 		= SysMan
800
GHC_PKG_INPLACE_PGM	= ghc-pkg-inplace
801
802
803
804
805
806
807
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
808

809
810
811
812
813
814
815
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
GHC_CP			= "xcopy /y"
GHC_PERL		= perl
else
GHC_CP			= $(CP)
GHC_PERL		= $(PERL)
endif
816

817
UNLIT			= $(GHC_UNLIT_DIR)/$(GHC_UNLIT_PGM)
ravi@bluespec.com's avatar
ravi@bluespec.com committed
818
HP2PS			= $(GHC_HP2PS_DIR)/$(GHC_HP2PS_PGM)
819
HSTAGS			= $(GHC_HSTAGS_DIR)/$(GHC_HSTAGS_PGM)
Simon Marlow's avatar
Simon Marlow committed
820
GHCTAGS_INPLACE		= $(GHC_GHCTAGS_DIR)/$(GHC_GHCTAGS_INPLACE_PGM)
821
822
823
824
825
826
827
828
829
830
831
832
HSC2HS_INPLACE		= $(GHC_HSC2HS_DIR)/$(GHC_HSC2HS_INPLACE_PGM)
MANGLER			= $(GHC_MANGLER_DIR)/$(GHC_MANGLER_PGM)
SPLIT			= $(GHC_SPLIT_DIR)/$(GHC_SPLIT_PGM)
SYSMAN 			= $(GHC_SYSMAN_DIR)/$(GHC_SYSMAN_PGM)
GHC_PKG_INPLACE		= $(GHC_PKG_DIR)/$(GHC_PKG_INPLACE_PGM)
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)
833

834
GENERATED_FILE  = chmod a-w
Ian Lynagh's avatar
Ian Lynagh committed
835
EXECUTABLE_FILE = chmod +x
836

837
#-----------------------------------------------------------------------------
838
839
840
841
842
843
844
# 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).
845
846
847
#
# NOTE: Don't override $(GHC) in build.mk, use configure --with-ghc instead
# (because the version numbers have to be calculated).
848

849
GHC		= @WithGhc@
850
GhcDir          = $(dir $(GHC))
851

852
853
854
# Set to YES if $(GHC) has the readline package installed
GhcHasReadline	= @GhcHasReadline@

855
856
HBC		= @HBC@
NHC		= @NHC@
857

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

862
GHC_INPLACE 	= $(GHC_COMPILER_DIR)/ghc-inplace
863
864
865
866
867
868
869
870
GHC_STAGE1 	= $(GHC_COMPILER_DIR)/stage1/ghc-inplace -no-user-package-conf
GHC_STAGE2 	= $(GHC_COMPILER_DIR)/stage2/ghc-inplace -no-user-package-conf
GHC_STAGE3 	= $(GHC_COMPILER_DIR)/stage3/ghc-inplace -no-user-package-conf

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

872
873
874
ifeq "$(stage)" "2"
  UseStage1 = YES
endif
875
876
877
878
879
880
881
882
883
884
885
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@
886

Simon Marlow's avatar
Simon Marlow committed
887
ghc_ge_605 = YES
Simon Marlow's avatar
Simon Marlow committed
888
ghc_ge_607 = YES
889
890
891
892
893
894
895
896
897
898
899

else # not UseStage1 or BootingFromHc

HC	        = @WithHc@
MKDEPENDHS	= $(GHC)
GhcVersion	= @GhcVersion@
GhcPatchLevel	= @GhcPatchLevel@
GhcMajVersion	= @GhcMajVersion@
GhcMinVersion	= @GhcMinVersion@

# Some useful GHC version predicates:
900
ghc_ge_605 = @ghc_ge_605@
Simon Marlow's avatar
Simon Marlow committed
901
ghc_ge_607 = @ghc_ge_607@
902
endif
903
904
905
906
907
908
909
910

# 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)
911
endif
912

913
914
915
#-----------------------------------------------------------------------------
# C compiler
#
916
917
918
919
# 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.

920
921
HaveGcc 	= @HaveGcc@
UseGcc  	= YES
sof's avatar
sof committed
922
WhatGccIsCalled = @WhatGccIsCalled@
923
GccVersion      = @GccVersion@
924
925
926
927
928
ifeq "$(strip $(HaveGcc))" "YES"
ifneq "$(strip $(UseGcc))"  "YES"
  CC	= cc
else
  CC	= $(WhatGccIsCalled)
929
  GccDir = $(dir $(WhatGccIsCalled))
930
931
932
endif
endif

933
# default C compiler flags
sof's avatar
sof committed
934
SRC_CC_OPTS = @SRC_CC_OPTS@
935

936
937
938
939
ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
SRC_CC_OPTS += -G0
endif

940
#-----------------------------------------------------------------------------
941
# GMP Library (version 2.0.x or above)
942
943
#
HaveLibGmp	= @HaveLibGmp@
944
LibGmp		= @LibGmp@
945

946
947
948
GMP_INCLUDE_DIRS=@GMP_INCLUDE_DIRS@
GMP_LIB_DIRS=@GMP_LIB_DIRS@

949
#-----------------------------------------------------------------------------
950
# GMP framework (Mac OS X)
951
#
952
HaveFrameworkGMP = @HaveFrameworkGMP@
953

954
#-----------------------------------------------------------------------------
955
# Mingwex Library
956
#
957
HaveLibMingwEx	= @HaveLibMingwEx@
958

959
#-----------------------------------------------------------------------------
960
# Flex (currently unused, could be moved to glafp-utils)
961

962
# FLEX			= @LEX@
sof's avatar
sof committed
963
# Don't bother with -lfl, we define our own yywrap()s anyway.
964
# FLEX_LIB		= 
sof's avatar
sof committed
965
#WAS:FLEX_LIB		= @LEXLIB@
966
967
968
969
970

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

AR			= @ArCmd@
ken's avatar
ken committed
971
ArSupportsInput		= @ArSupportsInput@
972
973
974
975
976
# Yuckage: for ghc/utils/parallel -- todo: nuke this dependency!!
BASH                    = /usr/local/bin/bash

CONTEXT_DIFF		= @ContextDiffCmd@
CP			= cp
sof's avatar
sof committed
977
CPP			= @CPP@ @CPPFLAGS@
978
CTAGS 			= $(ETAGS)
979
980
981
982
983
#
# RAWCPP_FLAGS are the flags to give to cpp (viz, gcc -E) to persuade it to
# behave plausibly on Haskell sources.
#
RAWCPP_FLAGS            = -undef -traditional
rrt's avatar
rrt committed
984
FIND			= @FindCmd@
sof's avatar
sof committed
985
SORT		        = @SortCmd@
986
INSTALL			= @INSTALL@
sof's avatar
sof committed
987
988
989
990
991
#
# 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
992
INSTALL			:= $(subst .././install-sh,$(FPTOOLS_TOP_ABS)/install-sh,$(INSTALL))
993
LATEX			= latex
rrt's avatar
rrt committed
994
995
HEVEA			= hevea
HACHA			= hacha
996
997
998
999
1000
LN_S			= @LN_S@
MANMACROS		= -man
MSMACROS 		= -ms
MV			= mv
NROFF			= nroff