1
2
3
4
5
6
7
8
9
10
11
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
41
42
43
44
45
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
nothing=
space=$(nothing) $(nothing)
comma=,
GHC_PKG_INSTALL_PROG = $(FPTOOLS_TOP_ABS)/utils/ghc-pkg/dist-install/build/ghc-pkg/ghc-pkg
LIBRARIES_ABS = $(FPTOOLS_TOP_ABS)/libraries
UTILS_ABS = $(FPTOOLS_TOP_ABS)/utils
CABAL = $(LIBRARIES_ABS)/cabal-bin $(GHC) $(LIBRARIES_ABS)/bootstrapping.conf $(CABAL_DOTTED_VERSION)
INSTALL_PACKAGE = \
$(UTILS_ABS)/installPackage/install-inplace/bin/installPackage
STAGE3_PACKAGE_CONF = $(FPTOOLS_TOP_ABS)/stage3.package.conf
# Euch, hideous hack:
CABAL_DOTTED_VERSION = $(shell grep "^Version:" $(LIBRARIES_ABS)/Cabal/Cabal.cabal | sed "s/^Version: //")
CABAL_VERSION = $(subst .,$(comma),$(CABAL_DOTTED_VERSION))
CABAL_CONSTRAINT = --constraint="Cabal == $(CABAL_DOTTED_VERSION)"
# We rely on all the CONFIGURE_ARGS being quoted with '...', and there
# being no 's inside the values.
FLAGGED_CONFIGURE_ARGS = $(subst $(space)',\
$(space)--configure-option=',\
$(space)$(CONFIGURE_ARGS))
COMMON_CONFIGURE_FLAGS = \
--libsubdir='$$pkgid' \
--with-gcc=$(WhatGccIsCalled) \
--with-ld=$(LD) \
$(addprefix --hsc2hs-option=,$(SRC_HSC2HS_OPTS))
ifeq "$(HSCOLOUR_SRCS)" "YES"
CONFIGURE_OPTS += --with-hscolour="$(HSCOLOUR)"
endif
ifneq "$(ALEX)" ""
COMMON_CONFIGURE_FLAGS += --with-alex="$(ALEX)"
endif
ifneq "$(HAPPY)" ""
COMMON_CONFIGURE_FLAGS += --with-happy="$(HAPPY)"
endif
COMMON_CONFIGURE_FLAGS += $(FLAGGED_CONFIGURE_ARGS) \
--configure-option=--with-cc="$(CC)"
COMMON_CONFIGURE_FLAGS += $(shell [ -f $(HSC2HS_INPLACE) ] && \
echo --with-hsc2hs=$(HSC2HS_INPLACE) )
ifeq "$(Windows)" "YES"
NONEXISTENT=c:/NONEXISTENT
else
NONEXISTENT=/NONEXISTENT
endif
# We put non-existant paths in when configuring things that we plan to
# install, as we require that builds don't depend on these paths when
# making bindists.
INSTALL_DIRS_CONFIGURE_FLAGS = \
--prefix=$(NONEXISTENT) \
--bindir=$(NONEXISTENT) \
--libdir=$(NONEXISTENT) \
--libexecdir=$(NONEXISTENT) \
--datadir=$(NONEXISTENT) \
--docdir=$(NONEXISTENT) \
--haddockdir=$(NONEXISTENT) \
--htmldir=$(NONEXISTENT)
INPLACE_GHC_DATADIR_CONFIGURE_FLAGS = \
--datadir=$(FPTOOLS_TOP_ABS)/inplace-datadir \
--datasubdir=.
INPLACE_DIRS_CONFIGURE_FLAGS = \
--prefix=`$(FPTOOLS_TOP_ABS)/utils/pwd/pwd forwardslash`/install-inplace
USE_BOOT_CONFIGURE_FLAGS = \
--with-compiler=$(GHC) \
--with-hc-pkg=$(GHC_PKG) \
--package-db $(FPTOOLS_TOP_ABS)/libraries/bootstrapping.conf
USE_STAGE_CONFIGURE_FLAGS = \
--with-hc-pkg=$(GHC_PKG_INPLACE) \
$(addprefix --cc-option=,$(MACOSX_DEPLOYMENT_CC_OPTS)) \
$(addprefix --ld-option=,$(MACOSX_DEPLOYMENT_LD_OPTS))
USE_STAGE1_CONFIGURE_FLAGS = \
--with-compiler=$(GHC_STAGE1) \
$(USE_STAGE_CONFIGURE_FLAGS)
USE_STAGE2_CONFIGURE_FLAGS = \
--with-compiler=$(GHC_STAGE2) \
$(USE_STAGE_CONFIGURE_FLAGS)
BUILD_FLAGS = $(addprefix --ghc-option=,$(SRC_HC_OPTS))
# We now define various i* variables, which are used for the paths
# when installing Cabal libraries
ifeq "$(RelocatableBuild)" "YES"
# On Windows we want to make moveable bindists, but we need to tell
# ghc-pkg where the haddock docs are. Therefore we completely ignore
# where the user tells us to put the haddock documentation and put it
# somewhere whose relative location we know. When installing we need
# to give Cabal a real path, though.
iprefix = $$topdir
ibindir = $$topdir
ilibdir = $$topdir
ilibexecdir = $$topdir
idynlibdir = $$topdir
idatadir = $$topdir
idocdir = $$topdir/doc/libraries/$$pkg
ihaddockdir = $$topdir/doc/libraries/$$pkg
ihtmldir = $$httptopdir/doc/libraries/$$pkg
html_installed_root = $(prefix)/doc/libraries
else
# On non-Windows we can just give absolute paths all the time, and
# thus obey the htmldir that we are given.
iprefix = $(prefix)
ibindir = $(bindir)
ilibdir = $(libdir)
ilibexecdir = $(libexecdir)
idynlibdir = $(dynlibdir)
idatadir = $(datadir)
idocdir = $(docdir)/libraries/$$pkg
ihaddockdir = $(htmldir)/libraries/$$pkg
ihtmldir = $(htmldir)/libraries/$$pkg
html_installed_root = $(htmldir)/libraries
endif
|