Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 902 lines (755 sloc) 29.319 kB
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
1 dnl == autoconf source for the Glasgow FP tools ==
81cb761 [project @ 2003-08-18 14:54:40 by panne]
panne authored
2 dnl (run "grep '^dnl \*' configure.ac | sed -e 's/dnl / /g; s/\*\*/ +/g;'"
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
3 dnl (or some such) to see the outline of this file)
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
4 dnl
5 #
06decfc Detect the snapshot version number using darcs
Simon Marlow authored
6 # (c) The University of Glasgow 1994-2004
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
7 #
06decfc Detect the snapshot version number using darcs
Simon Marlow authored
8 # Configure script template for GHC
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
9 #
a97485b [project @ 2004-11-11 16:48:55 by simonmar]
simonmar authored
10 # Process with 'autoreconf' to get a working configure script.
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
11 #
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
12 # For the generated configure script, do "./configure --help" to
13 # see what flags are available. (Better yet, read the documentation!)
14 #
15
03e3dd7 @igfoo Bump version number to 7.3
igfoo authored
16 AC_INIT([The Glorious Glasgow Haskell Compilation System], [7.3], [glasgow-haskell-bugs@haskell.org], [ghc])
0065d5a Reorganisation of the source tree
Simon Marlow authored
17
06decfc Detect the snapshot version number using darcs
Simon Marlow authored
18 # Set this to YES for a released version, otherwise NO
25f44cb Don't hardwire RELEASE into configure.ac
sven.panne@aedion.de authored
19 : ${RELEASE=NO}
06decfc Detect the snapshot version number using darcs
Simon Marlow authored
20
21 # The primary version (e.g. 6.7, 6.6.1) is set in the AC_INIT line
22 # above. If this is not a released version, then we will append the
23 # date to the version number (e.g. 6.7.20070204). The date is
24 # constructed by finding the date of the most recent patch in the
25 # darcs repository. If this is a source distribution (not a darcs
26 # checkout), then we ship a file 'VERSION' containing the full version
27 # when the source distribution was created.
28
dbb439d emit an error if the user ran autoconf instead of autoreconf
Simon Marlow authored
29 if test ! -f mk/config.h.in; then
d70136c @igfoo Update various 'sh boot's to 'perl boot'
igfoo authored
30 echo "mk/config.h.in doesn't exist: perhaps you haven't run 'perl boot'?"
dbb439d emit an error if the user ran autoconf instead of autoreconf
Simon Marlow authored
31 exit 1
32 fi
33
8fbf686 @igfoo Pass configure arguments to the library configure scripts
igfoo authored
34 AC_SUBST([CONFIGURE_ARGS], [$ac_configure_args])
35
b41067a Windows fixes to build system: use the 'find' and 'sort' found by con…
simonpj@microsoft.com authored
36 dnl ----------------------------------------------------------
37 dnl ** Find unixy sort and find commands,
38 dnl ** which are needed by FP_SETUP_PROJECT_VERSION
39
40 dnl ** Find find command (for Win32's benefit)
41 FP_PROG_FIND
42
43 dnl ** Find sort command (for the benefit of Win32 environs)
44 FP_PROG_SORT
45
46 dnl ----------------------------------------------------------
0065d5a Reorganisation of the source tree
Simon Marlow authored
47 FP_SETUP_PROJECT_VERSION
48
49 # Hmmm, we fix the RPM release number to 1 here... Is this convenient?
50 AC_SUBST([release], [1])
ced47f7 [project @ 2004-09-18 12:49:55 by panne]
panne authored
51
1fb1ab5 [project @ 1997-03-14 07:52:06 by simonpj]
simonpj authored
52 # First off, a distrib sanity check..
ced47f7 [project @ 2004-09-18 12:49:55 by panne]
panne authored
53 AC_CONFIG_SRCDIR([mk/config.mk.in])
02b6015 [project @ 1996-11-21 16:45:53 by simonm]
simonm authored
54
da8f39a [project @ 2003-08-19 12:42:39 by panne]
panne authored
55 dnl * We require autoconf version 2.52
56 dnl We need 2.50 due to the use of AC_SYS_LARGEFILE and AC_MSG_NOTICE.
57 dnl We need 2.52 due to the use of AS_TR_CPP and AS_TR_SH.
907d2e9 [project @ 2004-09-22 08:36:58 by panne]
panne authored
58 AC_PREREQ([2.52])
493055c [project @ 2003-05-29 09:01:20 by simonmar]
simonmar authored
59
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
60 # -------------------------------------------------------------------------
61 # Prepare to generate the following header files
62 #
1fb1ab5 [project @ 1997-03-14 07:52:06 by simonpj]
simonpj authored
63 #
64 AC_CONFIG_HEADER(mk/config.h)
02b6015 [project @ 1996-11-21 16:45:53 by simonm]
simonm authored
65
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
66 # No, semi-sadly, we don't do `--srcdir'...
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
67 if test x"$srcdir" != 'x.' ; then
1fb1ab5 [project @ 1997-03-14 07:52:06 by simonpj]
simonpj authored
68 echo "This configuration does not support the \`--srcdir' option.."
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
69 exit 1
70 fi
71
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
72 dnl --------------------------------------------------------------
73 dnl * Project specific configuration options
74 dnl --------------------------------------------------------------
75 dnl What follows is a bunch of options that can either be configured
76 dnl through command line options to the configure script or by
77 dnl supplying defns in the build tree's mk/build.mk. Having the option to
78 dnl use either is considered a Feature.
79
80 dnl ** What command to use to compile compiler sources ?
81 dnl --------------------------------------------------------------
803963a [project @ 2000-11-02 14:27:01 by simonmar]
simonmar authored
82
f30908b [project @ 2004-11-20 16:02:41 by panne]
panne authored
83 AC_ARG_WITH([ghc],
18abe9c [project @ 2003-12-18 10:46:49 by simonmar]
simonmar authored
84 [AC_HELP_STRING([--with-ghc=ARG],
f30908b [project @ 2004-11-20 16:02:41 by panne]
panne authored
85 [Use ARG as the path to GHC [default=autodetect]])],
86 [WithGhc="$withval"],
87 [if test "$GHC" = ""; then
88 AC_PATH_PROG([GHC], [ghc])
dae2fd8 [project @ 2001-09-18 08:53:01 by simonmar]
simonmar authored
89 fi
f30908b [project @ 2004-11-20 16:02:41 by panne]
panne authored
90 WithGhc="$GHC"])
803963a [project @ 2000-11-02 14:27:01 by simonmar]
simonmar authored
91
5775d51 Add OSTYPE build-system variable, and use it
simonpj@microsoft.com authored
92
93 dnl ** Tell the make system which OS we are using
94 dnl $OSTYPE is set by the operating system to "msys" or "cygwin" or something
95 AC_SUBST(OSTYPE)
96
efc0f42 @simonmar Restore the GHC version check
simonmar authored
97 dnl ** Booting from .hc files?
98 dnl --------------------------------------------------------------
99 AC_ARG_ENABLE(hc-boot,
100 [AC_HELP_STRING([--enable-hc-boot],
101 [Boot the Glasgow Haskell Compiler from intermediate .hc files.
102 (This option is mostly of interest to porters.) [default=no]])],
103 [ if test x"$enableval" = x"yes"; then
104 BootingFromHc=YES
105 else
106 BootingFromHc=NO
107 fi
108 ],
109 [BootingFromHc=NO]
110 )
111 AC_SUBST(BootingFromHc)
112
34cc75e @igfoo GHC new build system megapatch
igfoo authored
113 AC_ARG_ENABLE(bootstrap-with-devel-snapshot,
114 [AC_HELP_STRING([--enable-bootstrap-with-devel-snapshot],
115 [Allow bootstrapping using a development snapshot of GHC. This is not guaranteed to work.])],
116 EnableBootstrapWithDevelSnaphost=YES,
117 EnableBootstrapWithDevelSnaphost=NO
118 )
119
803963a [project @ 2000-11-02 14:27:01 by simonmar]
simonmar authored
120 if test "$WithGhc" != ""; then
121 FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
34cc75e @igfoo GHC new build system megapatch
igfoo authored
122
436e13f @simonmar rejig ghc version test; fail if GHC version can't be determined
simonmar authored
123 if test "$GhcMajVersion" = "unknown" -o "$GhcMinVersion" = "unknown"; then
124 AC_MSG_ERROR([Cannot determine the version of $WithGhc. Is it really GHC?])
34cc75e @igfoo GHC new build system megapatch
igfoo authored
125 fi
126
803963a [project @ 2000-11-02 14:27:01 by simonmar]
simonmar authored
127 AC_SUBST(GhcVersion)dnl
128 AC_SUBST(GhcMajVersion)dnl
129 AC_SUBST(GhcMinVersion)dnl
130 AC_SUBST(GhcPatchLevel)dnl
9b58234 @igfoo Fix the way configure sets the ghc_ge_* variables
igfoo authored
131 GhcMinVersion2=`echo "$GhcMinVersion" | sed 's/^\\(.\\)$/0\\1/'`
132 GhcCanonVersion="$GhcMajVersion$GhcMinVersion2"
0f183f7 @igfoo When compiling with GHC >= 6.13, use -rtsopts
igfoo authored
133 if test $GhcCanonVersion -ge 613; then ghc_ge_613=YES; else ghc_ge_613=NO; fi
134 AC_SUBST(ghc_ge_613)dnl
b8c2582 @igfoo Get CC_STAGE0 from the bootstrapping compiler
igfoo authored
135
3e401d7 @igfoo Rename "GCC command" to "C compiler command"
igfoo authored
136 BOOTSTRAPPING_GHC_INFO_FIELD([CC_STAGE0],[C compiler command],['$(CC)'])
a8ea672 @igfoo Add ar location and details to settings file
igfoo authored
137 BOOTSTRAPPING_GHC_INFO_FIELD([AR_STAGE0],[ar command],['$(AR)'])
138 BOOTSTRAPPING_GHC_INFO_FIELD([AR_OPTS_STAGE0],[ar flags],['$(AR_OPTS)'])
139 BOOTSTRAPPING_GHC_INFO_FIELD([ArSupportsAtFile_STAGE0],[ar supports at file],['$(ArSupportsAtFile)'])
803963a [project @ 2000-11-02 14:27:01 by simonmar]
simonmar authored
140 fi
141
efc0f42 @simonmar Restore the GHC version check
simonmar authored
142 dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on
35ccb18 @igfoo Remove redundant tests for whether we're in a GHC tree
igfoo authored
143 if test "$BootingFromHc" = "NO"; then
efc0f42 @simonmar Restore the GHC version check
simonmar authored
144 if test "$WithGhc" = ""; then
145 AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
146 fi
cf00e6f @igfoo GHC 6.12 is now needed to build the HEAD
igfoo authored
147 FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.12],
148 [AC_MSG_ERROR([GHC version 6.12 or later is required to compile GHC.])])dnl
efc0f42 @simonmar Restore the GHC version check
simonmar authored
149
150 if test `expr $GhcMinVersion % 2` = "1"; then
151 if test "$EnableBootstrapWithDevelSnaphost" = "NO"; then
152 AC_MSG_ERROR([
153 $WithGhc is a development snapshot of GHC, version $GhcVersion.
154 Bootstrapping using this version of GHC is not supported, and may not
155 work. Use --enable-bootstrap-with-devel-snapshot to try it anyway,
156 or --with-ghc to specify a different GHC to use.])
157 fi
158 fi
159 fi;
160
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
161 # GHC is passed to Cabal, so we need a native path
162 if test "${WithGhc}" != ""
163 then
ae368b7 @simonmar Fix some bugs to do with tools in paths containing spaces
simonmar authored
164 ghc_host=`"${WithGhc}" +RTS --info | grep 'Host platform' | sed -e 's/.*, "//' -e 's/")//'`
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
165
166 if test "$ghc_host" = "i386-unknown-mingw32"
167 then
168 if test "${OSTYPE}" = "msys"
169 then
170 WithGhc=`echo "${WithGhc}" | sed "s#^/\([a-zA-Z]\)/#\1:/#"`
171 else
172 # Canonicalise to <drive>:/path/to/ghc
ae368b7 @simonmar Fix some bugs to do with tools in paths containing spaces
simonmar authored
173 WithGhc=`cygpath -m "${WithGhc}"`
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
174 fi
175 echo "GHC path canonicalised to: ${WithGhc}"
176 fi
177 fi
178 AC_SUBST([WithGhc])
179
17c5559 @igfoo Don't put all of $CFLAGS into $SRC_CC_OPTS
igfoo authored
180 dnl ** Without optimization some INLINE trickery fails for GHCi
181 SRC_CC_OPTS="-O"
182
e69c737 @igfoo configure.ac tweaks
igfoo authored
183 FP_ICONV
184 FP_GMP
8822316 @igfoo Add configure flags for the location of GMP includes/library; fixes #…
igfoo authored
185
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
186 dnl--------------------------------------------------------------------
187 dnl * Choose host(/target/build) platform
188 dnl--------------------------------------------------------------------
7a88e2d @igfoo Remove duplicate "./configure --help" output; fixes #4075
igfoo authored
189 dnl If we aren't explicitly told what values to use with configure flags,
190 dnl we ask the bootstrapping compiler what platform it is for
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
191
1bf79d5 @simonmar Allow GNU-standard --host, --build, --target configure options (#3637)
simonmar authored
192 if test "${WithGhc}" != ""
193 then
194 bootstrap_host=`"${WithGhc}" +RTS --info | grep '^ ,("Host platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'`
195 bootstrap_target=`"${WithGhc}" +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'`
196 if test "$bootstrap_host" != "$bootstrap_target"
197 then
198 echo "Bootstrapping GHC is a cross compiler. This probably isn't going to work"
199 fi
200 fi
201
202 # We have to run these unconditionally, but we may discard their
203 # results in the following code
204 AC_CANONICAL_BUILD
205 AC_CANONICAL_HOST
206 AC_CANONICAL_TARGET
207
650d644 @igfoo Fix platform detection in bindists
igfoo authored
208 FPTOOLS_SET_PLATFORM_VARS
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
209
c5dbacb @simonmar In configure, test that GHC generates code for the correct platform (…
simonmar authored
210 # Verify that the installed (bootstrap) GHC is capable of generating
211 # code for the requested build platform.
429c762 @igfoo configure: bootstrapping fix (#5155)
igfoo authored
212 if test "$BootingFromHc" = "NO"
c5dbacb @simonmar In configure, test that GHC generates code for the correct platform (…
simonmar authored
213 then
429c762 @igfoo configure: bootstrapping fix (#5155)
igfoo authored
214 if test "$BuildPlatform" != "$bootstrap_target"
215 then
216 echo "This GHC (${WithGhc}) does not generate code for the build platform"
217 echo " GHC target platform : $bootstrap_target"
218 echo " Desired build platform : $BuildPlatform"
219 exit 1
220 fi
c5dbacb @simonmar In configure, test that GHC generates code for the correct platform (…
simonmar authored
221 fi
222
651cd99 @igfoo Fix bindist finding gcc on OS X; fixes trac #5397
igfoo authored
223 # Testing if we shall enable shared libs support on Solaris.
224 # Anything older than SunOS 5.11 aka Solaris 11 (Express) is broken.
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
225
651cd99 @igfoo Fix bindist finding gcc on OS X; fixes trac #5397
igfoo authored
226 SOLARIS_BROKEN_SHLD=NO
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
227
651cd99 @igfoo Fix bindist finding gcc on OS X; fixes trac #5397
igfoo authored
228 case $host in
229 i386-*-solaris2)
230 # here we go with the test
231 MINOR=`uname -r|cut -d '.' -f 2-`
232 if test "$MINOR" -lt "11"; then
233 SOLARIS_BROKEN_SHLD=YES
234 fi
235 ;;
236 esac
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
237
e7f04c3 @kgardas - disable shared lib support on Solaris 10 and older (fixes #4973)
kgardas authored
238 AC_SUBST(SOLARIS_BROKEN_SHLD)
239
82fbc4b @igfoo Change how we find the host/build/target platforms
igfoo authored
240 AC_ARG_WITH(hc,
241 [AC_HELP_STRING([--with-hc=ARG],
242 [Use ARG as the path to the compiler for compiling ordinary
243 Haskell code (default= value of --with-ghc)])],
244 [WithHc="$withval"],
245 [WithHc=$WithGhc]
246 )
247 AC_SUBST(WithHc)
248
e51cdf9 @igfoo Make a mingw tree from mingw tarballs
igfoo authored
249 # This uses GHC, so put it after the "GHC is required" check above:
6bb8d64 @igfoo For bindists, build ghc-pwd with stage 1
igfoo authored
250 FP_INTREE_GHC_PWD
e51cdf9 @igfoo Make a mingw tree from mingw tarballs
igfoo authored
251 FP_FIND_ROOT
252
253 if test "$HostOS" = "mingw32"
254 then
e717ed3 @igfoo Tweak the cleaning of inplace/; fixes trac #4320
igfoo authored
255 test -d inplace || mkdir inplace
256
e51cdf9 @igfoo Make a mingw tree from mingw tarballs
igfoo authored
257 CC="$hardtop/inplace/mingw/bin/gcc.exe"
258 LD="$hardtop/inplace/mingw/bin/ld.exe"
259 NM="$hardtop/inplace/mingw/bin/nm.exe"
8924296 @igfoo Set the location of ar to be the in-tree ar on Windows
igfoo authored
260 fp_prog_ar_raw="$hardtop/inplace/mingw/bin/ar.exe"
5d30f83 @simonmar add comment to remind people to update driver/gcc/gcc.c
simonmar authored
261
262 # NB. If you update the tarbballs to a new version of gcc, don't
263 # forget to tweak the paths in driver/gcc/gcc.c.
e51cdf9 @igfoo Make a mingw tree from mingw tarballs
igfoo authored
264 if ! test -d inplace/mingw ||
9578f9b @igfoo Update intree-mingw creation
igfoo authored
265 test inplace/mingw -ot ghc-tarballs/mingw/binutils*.tar.lzma ||
266 test inplace/mingw -ot ghc-tarballs/mingw/gcc-core*.tar.lzma ||
267 test inplace/mingw -ot ghc-tarballs/mingw/gcc-c++*.tar.lzma ||
ff5e4de @simonmar update to mingw gcc 4.5.2
simonmar authored
268 test inplace/mingw -ot ghc-tarballs/mingw/libgcc*.tar.gz ||
9578f9b @igfoo Update intree-mingw creation
igfoo authored
269 test inplace/mingw -ot ghc-tarballs/mingw/libgmp*.tar.gz ||
270 test inplace/mingw -ot ghc-tarballs/mingw/libmpc*.tar.gz ||
271 test inplace/mingw -ot ghc-tarballs/mingw/libmpfr*.tar.gz ||
1dac1b2 @igfoo Add libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to mingw tarballs
igfoo authored
272 test inplace/mingw -ot ghc-tarballs/mingw/libstdc*.tar.lzma ||
9578f9b @igfoo Update intree-mingw creation
igfoo authored
273 test inplace/mingw -ot ghc-tarballs/mingw/mingwrt*-dev.tar.gz ||
274 test inplace/mingw -ot ghc-tarballs/mingw/mingwrt*-dll.tar.gz ||
bed9246 @igfoo Update commands to build in-tree mingw
igfoo authored
275 test inplace/mingw -ot ghc-tarballs/mingw/w32api*.tar.lzma
e51cdf9 @igfoo Make a mingw tree from mingw tarballs
igfoo authored
276 then
277 AC_MSG_NOTICE([Making in-tree mingw tree])
278 rm -rf inplace/mingw
279 mkdir inplace/mingw
64f6d46 @igfoo Add some &&s to configure
igfoo authored
280 (
281 cd inplace/mingw &&
9578f9b @igfoo Update intree-mingw creation
igfoo authored
282 tar --lzma -xf ../../ghc-tarballs/mingw/binutils*.tar.lzma &&
283 tar --lzma -xf ../../ghc-tarballs/mingw/gcc-core*.tar.lzma &&
284 tar --lzma -xf ../../ghc-tarballs/mingw/gcc-c++*.tar.lzma &&
ff5e4de @simonmar update to mingw gcc 4.5.2
simonmar authored
285 tar --lzma -xf ../../ghc-tarballs/mingw/libgcc*.tar.lzma &&
9578f9b @igfoo Update intree-mingw creation
igfoo authored
286 tar --lzma -xf ../../ghc-tarballs/mingw/libgmp*.tar.lzma &&
287 tar --lzma -xf ../../ghc-tarballs/mingw/libmpc*.tar.lzma &&
288 tar --lzma -xf ../../ghc-tarballs/mingw/libmpfr*.tar.lzma &&
1dac1b2 @igfoo Add libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to mingw tarballs
igfoo authored
289 tar --lzma -xf ../../ghc-tarballs/mingw/libstdc*.tar.lzma &&
9578f9b @igfoo Update intree-mingw creation
igfoo authored
290 tar -z -xf ../../ghc-tarballs/mingw/mingwrt*-dev.tar.gz &&
291 tar -z -xf ../../ghc-tarballs/mingw/mingwrt*-dll.tar.gz &&
292 tar --lzma -xf ../../ghc-tarballs/mingw/w32api*.tar.lzma &&
64f6d46 @igfoo Add some &&s to configure
igfoo authored
293 mv bin/gcc.exe bin/realgcc.exe
294 )
3bd221e @igfoo Fix gcc wrapper for new mingw binaries
igfoo authored
295 PATH=`pwd`/inplace/mingw/bin:$PATH inplace/mingw/bin/realgcc.exe driver/gcc/gcc.c driver/utils/cwrapper.c driver/utils/getLocation.c -Idriver/utils -o inplace/mingw/bin/gcc.exe
296 if ! test -e inplace/mingw/bin/gcc.exe
297 then
298 AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
299 fi
e51cdf9 @igfoo Make a mingw tree from mingw tarballs
igfoo authored
300 AC_MSG_NOTICE([In-tree mingw tree created])
301 fi
4bd0312 @igfoo Use the ghc-perl tarball on Windows, instead of the msys one
igfoo authored
302 if ! test -d inplace/perl ||
303 test inplace/perl -ot ghc-tarballs/perl/ghc-perl*.tar.gz
304 then
305 AC_MSG_NOTICE([Making in-tree perl tree])
306 rm -rf inplace/perl
307 mkdir inplace
308 mkdir inplace/perl
309 (
310 cd inplace/perl &&
311 tar -zxf ../../ghc-tarballs/perl/ghc-perl*.tar.gz
312 )
313 AC_MSG_NOTICE([In-tree perl tree created])
314 fi
e51cdf9 @igfoo Make a mingw tree from mingw tarballs
igfoo authored
315 fi
316
6d934cc @igfoo Refactor configure.ac's: Put XCODE_VERSION() in aclocal.m4
igfoo authored
317 XCODE_VERSION()
a01e195 @igfoo Small configure.ac refactoring
igfoo authored
318
319 SplitObjsBroken=NO
320 if test "$TargetOS_CPP" = "darwin"
321 then
322 # Split objects is broken (#4013) with XCode < 3.2
323 if test "$XCodeVersion1" -lt 3
324 then
325 SplitObjsBroken=YES
326 else
327 if test "$XCodeVersion1" -eq 3
a8013a7 @igfoo Improve the XCode version detection
igfoo authored
328 then
a01e195 @igfoo Small configure.ac refactoring
igfoo authored
329 if test "$XCodeVersion2" -lt 2
fc94442 @igfoo Write the XCode version test differently
igfoo authored
330 then
a01e195 @igfoo Small configure.ac refactoring
igfoo authored
331 SplitObjsBroken=YES
fc94442 @igfoo Write the XCode version test differently
igfoo authored
332 fi
a8013a7 @igfoo Improve the XCode version detection
igfoo authored
333 fi
7443053 @igfoo Turn off split objects on Darwin if XCode < 3.2 (#4013)
igfoo authored
334 fi
335 fi
336 AC_SUBST([SplitObjsBroken])
337
eb01af6 @mchakravarty On OS X, use gcc-4.2 with Xcode 4 and up
mchakravarty authored
338 dnl ** Which gcc to use?
339 dnl --------------------------------------------------------------
1422ea4 @igfoo Refactor configure.ac's: Define FIND_GCC() in aclocal.m4
igfoo authored
340 FIND_GCC()
eb01af6 @mchakravarty On OS X, use gcc-4.2 with Xcode 4 and up
mchakravarty authored
341
342 dnl ** Which ld to use?
343 dnl --------------------------------------------------------------
344 FP_ARG_WITH_PATH_GNU_PROG([LD], [ld])
345 LdCmd="$LD"
346 AC_SUBST([LdCmd])
347
348 dnl ** Which nm to use?
349 dnl --------------------------------------------------------------
350 FP_ARG_WITH_PATH_GNU_PROG([NM], [nm])
351 NmCmd="$NM"
352 AC_SUBST([NmCmd])
353
15575cf @mchakravarty Add configure option --with-macos-deployment-target
mchakravarty authored
354 dnl ** Mac OS X: explicit deployment target
355 dnl --------------------------------------------------------------
5b846fa @mchakravarty Mac OS X deployment target: piping opts through Makefiles
mchakravarty authored
356 AC_ARG_WITH([macosx-deployment-target],
357 [AC_HELP_STRING([--with-macosx-deployment-target=VERSION],
358 [Build for Mac OS VERSION and higher (default= version of build host)])],
359 [FP_MACOSX_DEPLOYMENT_TARGET="$withval"
15575cf @mchakravarty Add configure option --with-macos-deployment-target
mchakravarty authored
360 if test "x$TargetOS_CPP-$TargetVendor_CPP" != "xdarwin-apple"; then
361 # ignore everywhere, but on Mac OS
5b846fa @mchakravarty Mac OS X deployment target: piping opts through Makefiles
mchakravarty authored
362 AC_MSG_WARN([--macosx-deployment-target is only available on Mac OS X])
363 FP_MACOSX_DEPLOYMENT_TARGET=none
15575cf @mchakravarty Add configure option --with-macos-deployment-target
mchakravarty authored
364 fi],
5b846fa @mchakravarty Mac OS X deployment target: piping opts through Makefiles
mchakravarty authored
365 [FP_MACOSX_DEPLOYMENT_TARGET=none]
15575cf @mchakravarty Add configure option --with-macos-deployment-target
mchakravarty authored
366 )
5b846fa @mchakravarty Mac OS X deployment target: piping opts through Makefiles
mchakravarty authored
367 FP_CHECK_MACOSX_DEPLOYMENT_TARGET
368 AC_SUBST(MACOSX_DEPLOYMENT_VERSION)
369 AC_SUBST(MACOSX_DEPLOYMENT_SDK)
15575cf @mchakravarty Add configure option --with-macos-deployment-target
mchakravarty authored
370
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
371 dnl --------------------------------------------------------------
372 dnl End of configure script option section
373 dnl --------------------------------------------------------------
374
375
376 dnl --------------------------------------------------------------
377 dnl * General configuration checks
378 dnl --------------------------------------------------------------
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
379
7ca6e18 [project @ 2003-11-15 19:37:13 by panne]
panne authored
380 dnl ** Can the unix package be built?
381 dnl --------------------------------------------------------------
382
383 if test x"$TargetPlatform" = x"i386-unknown-mingw32"; then
384 GhcLibsWithUnix=NO
385 else
386 GhcLibsWithUnix=YES
387 fi
388 AC_SUBST([GhcLibsWithUnix])
389
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
390 dnl ** does #! work?
391 AC_SYS_INTERPRETER()
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
392
e69c737 @igfoo configure.ac tweaks
igfoo authored
393 dnl ** look for `perl'
dfc021e [project @ 2000-05-09 10:43:45 by rrt]
rrt authored
394 case $HostOS_CPP in
395 cygwin32|mingw32)
e69c737 @igfoo configure.ac tweaks
igfoo authored
396 PerlCmd=$hardtop/inplace/perl/perl
397 ;;
dfc021e [project @ 2000-05-09 10:43:45 by rrt]
rrt authored
398 *)
e69c737 @igfoo configure.ac tweaks
igfoo authored
399 AC_PATH_PROG(PerlCmd,perl)
400 if test -z "$PerlCmd"
401 then
402 echo "You must install perl before you can continue"
403 echo "Perhaps it is already installed, but not in your PATH?"
404 exit 1
405 else
406 FPTOOLS_CHECK_PERL_VERSION
407 fi
408 ;;
dfc021e [project @ 2000-05-09 10:43:45 by rrt]
rrt authored
409 esac
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
410
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
411 dnl ** does #! path/to/perl work? (sometimes it's too long...)
90825aa [project @ 1998-07-24 10:42:33 by sof]
sof authored
412 FPTOOLS_SHEBANG_PERL
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
413
c6cda1d [project @ 2002-07-31 14:11:13 by simonmar]
simonmar authored
414 dnl ** check for Python
415 AC_PATH_PROG(PythonCmd,python)
416
6338b45 [project @ 2001-06-28 17:56:10 by rrt]
rrt authored
417 dnl ** look for GCC and find out which version
418 dnl Figure out which C compiler to use. Gcc is preferred.
419 dnl If gcc, make sure it's at least 2.1
420 dnl
3549fd1 @igfoo Rename FP_HAVE_GCC to FP_GCC_VERSION
igfoo authored
421 FP_GCC_VERSION
89c5623 @igfoo Don't test for gcc flags before we've found gcc
igfoo authored
422
6247b59 @dmpots Add autoconf support to detect an LLVM-based C compiler
authored
423 dnl ** look to see if we have a C compiler using an llvm back end.
424 dnl
425 FP_CC_LLVM_BACKEND
426
001b9a4 @igfoo Keep separate linker flags, for when we want to link with gcc or ld
igfoo authored
427 FPTOOLS_SET_C_LD_FLAGS([target],[CFLAGS],[LDFLAGS],[IGNORE_LINKER_LD_FLAGS],[CPPFLAGS])
428 FPTOOLS_SET_C_LD_FLAGS([build],[CONF_CC_OPTS_STAGE0],[CONF_GCC_LINKER_OPTS_STAGE0],[CONF_LD_LINKER_OPTS_STAGE0],[CONF_CPP_OPTS_STAGE0])
429 FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_GCC_LINKER_OPTS_STAGE1],[CONF_LD_LINKER_OPTS_STAGE1],[CONF_CPP_OPTS_STAGE1])
89c5623 @igfoo Don't test for gcc flags before we've found gcc
igfoo authored
430 # Stage 3 won't be supported by cross-compilation
001b9a4 @igfoo Keep separate linker flags, for when we want to link with gcc or ld
igfoo authored
431 FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_GCC_LINKER_OPTS_STAGE2],[CONF_LD_LINKER_OPTS_STAGE2],[CONF_CPP_OPTS_STAGE2])
89c5623 @igfoo Don't test for gcc flags before we've found gcc
igfoo authored
432
2ebe8ad FIX #1427, #1569: gcc 4.2.x needs -fno-toplevel-reorder
Simon Marlow authored
433 FP_GCC_EXTRA_FLAGS
6338b45 [project @ 2001-06-28 17:56:10 by rrt]
rrt authored
434
435 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
436 AC_PROG_CPP
1fb1ab5 [project @ 1997-03-14 07:52:06 by simonpj]
simonpj authored
437
30fad70 @igfoo Use different CC/LD options for different stages
igfoo authored
438 AC_SUBST(CONF_CC_OPTS_STAGE0)
439 AC_SUBST(CONF_CC_OPTS_STAGE1)
440 AC_SUBST(CONF_CC_OPTS_STAGE2)
001b9a4 @igfoo Keep separate linker flags, for when we want to link with gcc or ld
igfoo authored
441 AC_SUBST(CONF_GCC_LINKER_OPTS_STAGE0)
442 AC_SUBST(CONF_GCC_LINKER_OPTS_STAGE1)
443 AC_SUBST(CONF_GCC_LINKER_OPTS_STAGE2)
444 AC_SUBST(CONF_LD_LINKER_OPTS_STAGE0)
445 AC_SUBST(CONF_LD_LINKER_OPTS_STAGE1)
446 AC_SUBST(CONF_LD_LINKER_OPTS_STAGE2)
75cd9c5 @igfoo Make CPPFLAGS variables, as well as CFLAGS and LDFLAGS
igfoo authored
447 AC_SUBST(CONF_CPP_OPTS_STAGE0)
448 AC_SUBST(CONF_CPP_OPTS_STAGE1)
449 AC_SUBST(CONF_CPP_OPTS_STAGE2)
8b85c1c [project @ 2001-06-28 18:05:48 by rrt]
rrt authored
450
81c6dc7 @igfoo Share more code between configure.ac and distrib/configure.ac.in
igfoo authored
451 FP_SETTINGS
1003471 @igfoo Move some Windows special-casing out of the compiler
igfoo authored
452
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
453 dnl ** figure out how to do context diffs
6a0b7a2 [project @ 2003-08-19 09:23:08 by panne]
panne authored
454 FP_PROG_CONTEXT_DIFF
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
455
5bb5986 chmod +x install-sh, see bug #978
Simon Marlow authored
456 dnl Let's make sure install-sh is executable here. If we got it from
457 dnl a darcs repo, it might not be (see bug #978).
458 chmod +x install-sh
ac4610c @igfoo Make install-sh executable /before/ we try to find it
igfoo authored
459 dnl ** figure out how to do a BSD-ish install
460 AC_PROG_INSTALL
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
461
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
462 dnl If you can run configure, you certainly have /bin/sh
6b4abad [project @ 2003-08-19 14:22:14 by panne]
panne authored
463 AC_DEFINE([HAVE_BIN_SH], [1], [Define to 1 if you have /bin/sh.])
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
464
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
465 dnl ** how to invoke `ar' and `ranlib'
f74a195 @igfoo Explicitly check whether ar supports the @file syntax
igfoo authored
466 FP_PROG_AR_SUPPORTS_ATFILE
444a39a [project @ 2004-04-07 12:17:09 by panne]
panne authored
467 FP_PROG_AR_NEEDS_RANLIB
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
468
1fb1ab5 [project @ 1997-03-14 07:52:06 by simonpj]
simonpj authored
469 dnl ** Check to see whether ln -s works
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
470 AC_PROG_LN_S
471
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
472
473 dnl ** Find the path to sed
22f78dd @igfoo Look for sed as gsed first
igfoo authored
474 AC_PATH_PROGS(SedCmd,gsed sed,sed)
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
475
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
476
477 dnl ** check for time command
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
478 AC_PATH_PROG(TimeCmd,time)
479
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
480 dnl ** check for tar
481 dnl if GNU tar is named gtar, look for it first.
3a238f0 @igfoo Add gnutar to the list of names we use when looking for GNU tar
igfoo authored
482 AC_PATH_PROGS(TarCmd,gnutar gtar tar,tar)
cfce9df [project @ 1997-08-28 21:15:14 by sof]
sof authored
483
34cc75e @igfoo GHC new build system megapatch
igfoo authored
484 dnl ** check for patch
485 dnl if GNU patch is named gpatch, look for it first
486 AC_PATH_PROGS(PatchCmd,gpatch patch, patch)
487
015d3d4 @mchakravarty Expose all EventLog events as DTrace probes
mchakravarty authored
488 dnl ** check for dtrace (currently only implemented for Mac OS X)
489 HaveDtrace=NO
490 AC_PATH_PROG(DtraceCmd,dtrace)
491 if test -n "$DtraceCmd"; then
1e8493b @igfoo Enable DTrace on Solaris; based on a patch from Karel Gardas
igfoo authored
492 if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple" -o "x$TargetOS_CPP-$TargetVendor_CPP" == "xsolaris2-unknown"; then
015d3d4 @mchakravarty Expose all EventLog events as DTrace probes
mchakravarty authored
493 HaveDtrace=YES
494 fi
495 fi
496 AC_SUBST(HaveDtrace)
497
b93e282 @igfoo MERGED: If we have hscolour then make source code links in teh haddoc…
igfoo authored
498 AC_PATH_PROG(HSCOLOUR,HsColour)
fc3ed31 canonicalise the path to HsColour
Simon Marlow authored
499 # HsColour is passed to Cabal, so we need a native path
cf07181 @igfoo Tweak the configure script Windows-specific bits
igfoo authored
500 if test "x$HostPlatform" = "xi386-unknown-mingw32" && \
501 test "${OSTYPE}" != "msys" && \
502 test "${HSCOLOUR}" != ""
503 then
504 # Canonicalise to <drive>:/path/to/gcc
505 HSCOLOUR=`cygpath -m ${HSCOLOUR}`
fc3ed31 canonicalise the path to HsColour
Simon Marlow authored
506 fi
b93e282 @igfoo MERGED: If we have hscolour then make source code links in teh haddoc…
igfoo authored
507
53386c3 [project @ 2004-08-15 20:28:02 by panne]
panne authored
508 dnl ** check for DocBook toolchain
509 FP_CHECK_DOCBOOK_DTD
cfe2fd2 @simonmar tidy up autoconfiguration of docbook stuff
simonmar authored
510 FP_DOCBOOK_XSL
1cce2f5 @igfoo Handle deciding what docs to build better
igfoo authored
511 FP_PROG_DBLATEX
512
a08aa16 [project @ 2003-05-17 14:49:45 by reid]
reid authored
513 dnl ** check for ghc-pkg command
7363193 [project @ 2004-08-28 16:20:35 by panne]
panne authored
514 FP_PROG_GHC_PKG
a08aa16 [project @ 2003-05-17 14:49:45 by reid]
reid authored
515
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
516 dnl ** check for installed happy binary + version
15d621f [project @ 1998-04-16 12:14:13 by sof]
sof authored
517 dnl (don't do it if we're booting from .hc files though.)
827b7c9 [project @ 2001-03-20 14:51:47 by simonmar]
simonmar authored
518 if test "$BootingFromHc" = "NO"; then
90825aa [project @ 1998-07-24 10:42:33 by sof]
sof authored
519 FPTOOLS_HAPPY
15d621f [project @ 1998-04-16 12:14:13 by sof]
sof authored
520 fi;
cfce9df [project @ 1997-08-28 21:15:14 by sof]
sof authored
521
e2314d3 [project @ 2003-08-13 12:34:04 by simonmar]
simonmar authored
522 dnl ** check for installed alex binary + version
523 dnl (don't do it if we're booting from .hc files though.)
524 if test "$BootingFromHc" = "NO"; then
525 FPTOOLS_ALEX
526 fi;
527
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
528 dnl --------------------------------------------------
529 dnl ### program checking section ends here ###
530 dnl --------------------------------------------------
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
531
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
532 dnl --------------------------------------------------
533 dnl * Platform header file and syscall feature tests
534 dnl ### checking the state of the local header files and syscalls ###
b035961 [project @ 1997-09-03 23:53:03 by sof]
sof authored
535
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
536 dnl ** check for full ANSI header (.h) files
537 AC_HEADER_STDC
cfce9df [project @ 1997-08-28 21:15:14 by sof]
sof authored
538
cd580b8 [project @ 2003-05-27 14:02:04 by simonmar]
simonmar authored
539 dnl ** Enable large file support. NB. do this before testing the type of
540 dnl off_t, because it will affect the result of that test.
541 AC_SYS_LARGEFILE
542
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
543 dnl ** check for specific header (.h) files that we are interested in
13346da @pgj Add thread affinity support for FreeBSD
pgj authored
544 AC_CHECK_HEADERS([bfd.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h limits.h locale.h nlist.h pthread.h pwd.h signal.h sys/cpuset.h sys/mman.h sys/resource.h sys/select.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/utsname.h sys/wait.h termios.h time.h utime.h windows.h winsock.h sched.h])
70331ad [project @ 2000-04-21 18:05:19 by panne]
panne authored
545
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
546 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
547 AC_HEADER_TIME
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
548
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
549 dnl ** do we have long longs?
66d0cd0 [project @ 2003-08-18 15:53:51 by panne]
panne authored
550 AC_CHECK_TYPES([long long])
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
551
08c5cc0 [project @ 1998-03-03 19:04:47 by reid]
reid authored
552 dnl ** what are the sizes of various types
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
553 AC_CHECK_SIZEOF(char, 1)
39adb26 [project @ 2000-01-26 10:44:07 by panne]
panne authored
554 AC_CHECK_SIZEOF(double, 8)
555 AC_CHECK_SIZEOF(float, 4)
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
556 AC_CHECK_SIZEOF(int, 4)
557 AC_CHECK_SIZEOF(long, 4)
ac30425 [project @ 2003-08-18 16:29:36 by panne]
panne authored
558 if test "$ac_cv_type_long_long" = yes; then
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
559 AC_CHECK_SIZEOF(long long, 8)
39adb26 [project @ 2000-01-26 10:44:07 by panne]
panne authored
560 fi
561 AC_CHECK_SIZEOF(short, 2)
562 AC_CHECK_SIZEOF(unsigned char, 1)
563 AC_CHECK_SIZEOF(unsigned int, 4)
564 AC_CHECK_SIZEOF(unsigned long, 4)
ac30425 [project @ 2003-08-18 16:29:36 by panne]
panne authored
565 if test "$ac_cv_type_long_long" = yes; then
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
566 AC_CHECK_SIZEOF(unsigned long long, 8)
567 fi
39adb26 [project @ 2000-01-26 10:44:07 by panne]
panne authored
568 AC_CHECK_SIZEOF(unsigned short, 2)
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
569 AC_CHECK_SIZEOF(void *, 4)
08c5cc0 [project @ 1998-03-03 19:04:47 by reid]
reid authored
570
571 dnl ** what are alignment constraints on various types
ac30425 [project @ 2003-08-18 16:29:36 by panne]
panne authored
572 FP_CHECK_ALIGNMENT(char)
573 FP_CHECK_ALIGNMENT(double)
574 FP_CHECK_ALIGNMENT(float)
575 FP_CHECK_ALIGNMENT(int)
576 FP_CHECK_ALIGNMENT(long)
577 if test "$ac_cv_type_long_long" = yes; then
578 FP_CHECK_ALIGNMENT(long long)
39adb26 [project @ 2000-01-26 10:44:07 by panne]
panne authored
579 fi
ac30425 [project @ 2003-08-18 16:29:36 by panne]
panne authored
580 FP_CHECK_ALIGNMENT(short)
581 FP_CHECK_ALIGNMENT(unsigned char)
582 FP_CHECK_ALIGNMENT(unsigned int)
583 FP_CHECK_ALIGNMENT(unsigned long)
584 if test "$ac_cv_type_long_long" = yes; then
585 FP_CHECK_ALIGNMENT(unsigned long long)
e648dc2 [project @ 2000-01-25 14:34:07 by panne]
panne authored
586 fi
ac30425 [project @ 2003-08-18 16:29:36 by panne]
panne authored
587 FP_CHECK_ALIGNMENT(unsigned short)
588 FP_CHECK_ALIGNMENT(void *)
08c5cc0 [project @ 1998-03-03 19:04:47 by reid]
reid authored
589
37fe797 [project @ 2004-01-06 17:20:51 by panne]
panne authored
590 FP_CHECK_FUNC([WinExec],
591 [@%:@include <windows.h>], [WinExec("",0)])
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
592
37fe797 [project @ 2004-01-06 17:20:51 by panne]
panne authored
593 FP_CHECK_FUNC([GetModuleFileName],
594 [@%:@include <windows.h>], [GetModuleFileName((HMODULE)0,(LPTSTR)0,0)])
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
595
596 dnl ** check return type of signal handlers
597 dnl Foo: assumes we can use prototypes.
598 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
599 dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler,
907d2e9 [project @ 2004-09-22 08:36:58 by panne]
panne authored
600 dnl [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
601 dnl #include <signal.h>
602 dnl #ifdef signal
603 dnl #undef signal
604 dnl #endif
605 dnl void (*signal (int, void (*)(int)))(int);
907d2e9 [project @ 2004-09-22 08:36:58 by panne]
panne authored
606 dnl ]],
607 dnl [[int i;]])],
608 dnl [ac_cv_type_signal_handler=void_int],
609 dnl [ac_cv_type_signal_handler=int_void])])
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
610 dnl if test "$ac_cv_type_signal_handler" = void_int; then
611 dnl AC_DEFINE(VOID_INT_SIGNALS)
612 dnl fi
613
614 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
615 AC_TYPE_SIGNAL
616 if test "$ac_cv_type_signal" = void; then
6b4abad [project @ 2003-08-19 14:22:14 by panne]
panne authored
617 AC_DEFINE([VOID_INT_SIGNALS], [1], [Define to 1 if signal handlers have type void (*)(int). Otherwise, they're assumed to have type int (*)(void).])
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
618 fi
619
620 dnl ** check for more functions
16ccba3 [project @ 2004-11-18 16:39:53 by stolz]
stolz authored
621 dnl ** The following have been verified to be used in ghc/, but might be used somewhere else, too.
1c83695 @simonmar Changes for the new IO library, mainly base-package modules moving ar…
simonmar authored
622 AC_CHECK_FUNCS([getclock getrusage gettimeofday setitimer siginterrupt sysconf times ctime_r sched_setaffinity setlocale])
4fc80ef @igfoo Handle the case where setitimer(ITIMER_VIRTUAL) is not always available
igfoo authored
623
624 AC_TRY_RUN([
625 #include <sys/types.h>
626 #include <sys/time.h>
627 int main(void) {
628 struct itimerval tval;
629 tval.it_value.tv_sec = 1;
630 tval.it_value.tv_usec = 0;
631 tval.it_interval = tval.it_value;
632 return setitimer(ITIMER_VIRTUAL, &tval, (void*)0) != 0;
633 }
634 ],[AC_DEFINE([HAVE_SETITIMER_VIRTUAL], [1], [Define to 1 if setitimer accepts ITIMER_VIRTUAL, 0 else.])])
635
224a7fa @rleshchinskiy Declare ctime_r on Mac OS
rleshchinskiy authored
636 dnl ** On OS X 10.4 (at least), time.h doesn't declare ctime_r if
637 dnl ** _POSIX_C_SOURCE is defined
638 AC_CHECK_DECLS([ctime_r], , ,
639 [#define _POSIX_SOURCE 1
640 #define _POSIX_C_SOURCE 199506L
641 #include <time.h>])
642
7ca3bb7 [project @ 2002-06-25 15:49:58 by mthomas]
mthomas authored
643 dnl ** check for mingwex library
644 AC_CHECK_LIB(mingwex, closedir, HaveLibMingwEx=YES, HaveLibMingwEx=NO)
645 AC_SUBST(HaveLibMingwEx)
646
647 if test $HaveLibMingwEx = YES ; then
6b4abad [project @ 2003-08-19 14:22:14 by panne]
panne authored
648 AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.])
7ca3bb7 [project @ 2002-06-25 15:49:58 by mthomas]
mthomas authored
649 fi
650
51e17ea [project @ 2001-02-17 19:52:56 by sebc]
sebc authored
651 dnl ** check for math library
f2bfd33 @trofi configure.ac: fix libm checks (Trac #3730)
trofi authored
652 dnl Keep that check as early as possible.
653 dnl as we need to know whether we need libm
654 dnl for math functions or not
655 dnl (see http://hackage.haskell.org/trac/ghc/ticket/3730)
8e93ec5 @igfoo Fix the -lm configure test; fixes #4155
igfoo authored
656 AC_CHECK_LIB(m, atan, HaveLibM=YES, HaveLibM=NO)
657 if test $HaveLibM = YES
658 then
659 AC_DEFINE([HAVE_LIBM], [1], [Define to 1 if you need to link with libm])
660 fi
51e17ea [project @ 2001-02-17 19:52:56 by sebc]
sebc authored
661
f2bfd33 @trofi configure.ac: fix libm checks (Trac #3730)
trofi authored
662 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
663 dnl the order of these tests matters: bfd needs liberty
664 AC_CHECK_LIB(iberty, xmalloc)
ef06230 @simonmar check for bfd_uncompress_section_contents instead of bfd_init, because
simonmar authored
665 AC_CHECK_LIB(bfd, bfd_uncompress_section_contents)
f2bfd33 @trofi configure.ac: fix libm checks (Trac #3730)
trofi authored
666
1e19a38 [project @ 1998-11-17 01:24:58 by reid]
reid authored
667 dnl ################################################################
668 dnl Check for libraries
669 dnl ################################################################
670
0e89dd4 [project @ 2005-09-20 16:35:26 by ross]
ross authored
671 dnl ** check whether we need -ldl to get dlopen()
16fc5c3 [project @ 2002-03-26 16:36:09 by stolz]
stolz authored
672
ede4c6f @igfoo No functionality changes
igfoo authored
673 AC_CHECK_LIB(dl, dlopen,
f97dcf9 [project @ 2005-03-08 04:45:29 by wolfgang]
wolfgang authored
674 [HaveLibDL=YES
675 AC_DEFINE([HAVE_LIBDL], [1], [Define to 1 if you need -ldl to get dlopen().])
ede4c6f @igfoo No functionality changes
igfoo authored
676 LIBS="$LIBS -ldl"],
f97dcf9 [project @ 2005-03-08 04:45:29 by wolfgang]
wolfgang authored
677 [HaveLibDL=NO])
678 AC_SUBST(HaveLibDL)
679
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
680 dnl --------------------------------------------------
681 dnl * Miscellaneous feature tests
682 dnl --------------------------------------------------
683
cfce9df [project @ 1997-08-28 21:15:14 by sof]
sof authored
684 dnl ** can we get alloca?
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
685 AC_FUNC_ALLOCA
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
686
e34efb9 [project @ 2003-07-02 13:57:10 by stolz]
stolz authored
687 dnl ** Working vfork?
ced47f7 [project @ 2004-09-18 12:49:55 by panne]
panne authored
688 AC_FUNC_FORK
e34efb9 [project @ 2003-07-02 13:57:10 by stolz]
stolz authored
689
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
690 dnl ** determine whether or not const works
691 AC_C_CONST
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
692
81464dc [project @ 1998-03-17 15:38:37 by simonm]
simonm authored
693 dnl ** are we big endian?
694 AC_C_BIGENDIAN
51f782f @igfoo Cope with big endian float word order on little endian machines
igfoo authored
695 FPTOOLS_FLOAT_WORD_ORDER_BIGENDIAN
b15fe26 [project @ 1998-08-19 11:23:59 by sof]
sof authored
696
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
697 dnl ** check for leading underscores in symbol names
aca2e34 [project @ 2004-08-30 19:28:46 by panne]
panne authored
698 FP_LEADING_UNDERSCORE
e7d21ee [project @ 1996-01-08 20:28:12 by partain]
partain authored
699
7a8bd24 [project @ 2005-01-10 19:01:27 by panne]
panne authored
700 dnl ** check for ld, whether it has an -x option, and if it is GNU ld
701 FP_PROG_LD_X
702 FP_PROG_LD_IS_GNU
a52ff76 @simonmar Change the way module initialisation is done (#3252, #4417)
simonmar authored
703 FP_PROG_LD_BUILD_ID
d2f7d10 [project @ 2001-06-26 23:12:19 by sof]
sof authored
704
6f985ae [project @ 2005-01-23 06:10:15 by wolfgang]
wolfgang authored
705 dnl ** check for Apple-style dead-stripping support
706 dnl (.subsections-via-symbols assembler directive)
707
708
709 AC_MSG_CHECKING(for .subsections_via_symbols)
60bbc36 @dcoutts Replace deprecated AC_TRY_COMPILE macro with the reccomended replcament
dcoutts authored
710 AC_COMPILE_IFELSE(
711 [AC_LANG_PROGRAM([], [__asm__ (".subsections_via_symbols");])],
712 [AC_MSG_RESULT(yes)
713 AC_DEFINE([HAVE_SUBSECTIONS_VIA_SYMBOLS],[1],
714 [Define to 1 if Apple-style dead-stripping is supported.])
6f985ae [project @ 2005-01-23 06:10:15 by wolfgang]
wolfgang authored
715 ],
60bbc36 @dcoutts Replace deprecated AC_TRY_COMPILE macro with the reccomended replcament
dcoutts authored
716 [AC_MSG_RESULT(no)])
6f985ae [project @ 2005-01-23 06:10:15 by wolfgang]
wolfgang authored
717
c4597df @dcoutts Support the GNU non-exec stack annotation system
dcoutts authored
718 dnl *** check for GNU non-executable stack note support (ELF only)
719 dnl (.section .note.GNU-stack,"",@progbits)
720
f1f6fd2 @igfoo Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
igfoo authored
721 dnl This test doesn't work with "gcc -g" in gcc 4.4 (GHC trac #3889:
722 dnl Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
723 dnl so we empty CFLAGS while running this test
724 CFLAGS2="$CFLAGS"
725 CFLAGS=
c4597df @dcoutts Support the GNU non-exec stack annotation system
dcoutts authored
726 AC_MSG_CHECKING(for GNU non-executable stack support)
727 AC_COMPILE_IFELSE(
728 [AC_LANG_PROGRAM([__asm__ (".section .note.GNU-stack,\"\",@progbits");], [0])],
729 [AC_MSG_RESULT(yes)
730 AC_DEFINE([HAVE_GNU_NONEXEC_STACK],[1],
731 [Define to 1 if GNU non-executable stack notes are supported.])
732 ],
733 [AC_MSG_RESULT(no)])
f1f6fd2 @igfoo Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
igfoo authored
734 CFLAGS="$CFLAGS2"
c4597df @dcoutts Support the GNU non-exec stack annotation system
dcoutts authored
735
b6fff39 @igfoo Add a configure test for the visibility hidden attribute
igfoo authored
736 FP_VISIBILITY_HIDDEN
737
35a09de [project @ 2005-11-03 11:00:40 by simonmar]
simonmar authored
738 dnl ** check for librt
739 AC_CHECK_LIB(rt, clock_gettime)
e30aca1 Use timer_create() for the interval timer, if available
Simon Marlow authored
740 AC_CHECK_FUNCS(clock_gettime timer_create timer_settime)
df7dc3f better autoconfery for timer_create()
Simon Marlow authored
741 FP_CHECK_TIMER_CREATE
35a09de [project @ 2005-11-03 11:00:40 by simonmar]
simonmar authored
742
de6f23d [project @ 2005-07-15 02:00:15 by wolfgang]
wolfgang authored
743 dnl ** check for Apple's "interesting" long double compatibility scheme
0329ca6 Fix printf$LDBLStub workaround for Darwin
wolfgang.thaller@gmx.net authored
744 AC_MSG_CHECKING(for printf\$LDBLStub)
745 AC_TRY_LINK_FUNC(printf\$LDBLStub,
de6f23d [project @ 2005-07-15 02:00:15 by wolfgang]
wolfgang authored
746 [
747 AC_MSG_RESULT(yes)
748 AC_DEFINE([HAVE_PRINTF_LDBLSTUB],[1],
749 [Define to 1 if we have printf$LDBLStub (Apple Mac OS >= 10.4, PPC).])
750 ],
751 [
752 AC_MSG_RESULT(no)
753 AC_DEFINE([HAVE_PRINTF_LDBLSTUB],[0],
754 [Define to 1 if we have printf$LDBLStub (Apple Mac OS >= 10.4, PPC).])
755 ])
756
4011407 @tibbe Integrate new I/O manager, with signal support
tibbe authored
757 dnl ** check for eventfd which is needed by the I/O manager
758 AC_CHECK_HEADERS([sys/eventfd.h])
759 AC_CHECK_FUNCS([eventfd])
760
0065d5a Reorganisation of the source tree
Simon Marlow authored
761 # test for GTK+
762 AC_PATH_PROGS([GTK_CONFIG], [pkg-config])
763 if test -n "$GTK_CONFIG"; then
764 if $GTK_CONFIG gtk+-2.0 --atleast-version=2.0; then
765 GTK_CONFIG="$GTK_CONFIG gtk+-2.0"
766 else
767 AC_MSG_WARN([GTK+ not usable, need at least version 2.0])
768 GTK_CONFIG=
769 fi
770 fi
771 AC_SUBST([GTK_CONFIG])
de6f23d [project @ 2005-07-15 02:00:15 by wolfgang]
wolfgang authored
772
14591e0 Added configure gadgets to detect Papi, and fixed build problems
'Alexey Rodriguez authored
773 #Checking for PAPI
774 AC_CHECK_LIB(papi, PAPI_library_init, HavePapiLib=YES, HavePapiLib=NO)
775 AC_CHECK_HEADER([papi.h], [HavePapiHeader=YES], [HavePapiHeader=NO])
776 AC_SUBST(HavePapiLib)
777 AC_SUBST(HavePapiHeader)
778
e50c1ea @igfoo Add a configure test for whether or not __mingw_vfprintf exists
igfoo authored
779 AC_CHECK_FUNCS(__mingw_vfprintf)
780
14591e0 Added configure gadgets to detect Papi, and fixed build problems
'Alexey Rodriguez authored
781 if test "$HavePapiLib" = "YES" -a "$HavePapiHeader" = "YES"; then
e4e7b37 reorganise PAPI configuration: off by default, even if library is found
Simon Marlow authored
782 HavePapi=YES
783 else
784 HavePapi=NO
14591e0 Added configure gadgets to detect Papi, and fixed build problems
'Alexey Rodriguez authored
785 fi
e4e7b37 reorganise PAPI configuration: off by default, even if library is found
Simon Marlow authored
786 AC_SUBST(HavePapi)
14591e0 Added configure gadgets to detect Papi, and fixed build problems
'Alexey Rodriguez authored
787
f4ec2d0 @simonmar fix logic for BUID_DOCBOOK_HTML
simonmar authored
788 if test "$HAVE_DOCBOOK_XSL" = "NO" ||
1cce2f5 @igfoo Handle deciding what docs to build better
igfoo authored
789 test "$XsltprocCmd" = ""
790 then
791 BUILD_DOCBOOK_HTML=NO
792 else
793 BUILD_DOCBOOK_HTML=YES
794 fi
795 AC_SUBST(BUILD_DOCBOOK_HTML)
796
797 if test "$DblatexCmd" = ""
798 then
799 BUILD_DOCBOOK_PS=NO
800 BUILD_DOCBOOK_PDF=NO
801 else
802 BUILD_DOCBOOK_PS=YES
803 BUILD_DOCBOOK_PDF=YES
804 fi
805 AC_SUBST(BUILD_DOCBOOK_PS)
806 AC_SUBST(BUILD_DOCBOOK_PDF)
807
bfd7960 @igfoo Fix the links to the base docs from the user guide
igfoo authored
808 LIBRARY_VERSION(base)
7dca6c2 @kolmodin Fix path to Cabal library, corrects documentation.
kolmodin authored
809 LIBRARY_VERSION(Cabal, Cabal/cabal)
cfdf251 @igfoo Fix more library links in the user guide
igfoo authored
810 LIBRARY_VERSION(ghc-prim)
763598e @igfoo Fix the link to the ghc docs in libraries/prologue.txt
igfoo authored
811 LIBRARY_ghc_VERSION="$ProjectVersion"
812 AC_SUBST(LIBRARY_ghc_VERSION)
bfd7960 @igfoo Fix the links to the base docs from the user guide
igfoo authored
813
a6ce352 @simonmar check for tabs in compiler/ghc.cabal.in (#3344)
simonmar authored
814 if grep ' ' compiler/ghc.cabal.in 2>&1 >/dev/null; then
815 AC_MSG_ERROR([compiler/ghc.cabal.in contains tab characters; please remove them])
816 fi
817
f3a77b2 @igfoo Rename "extra-gcc-opts" to "settings", and start generalising it
igfoo authored
818 AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal utils/runghc/runghc.cabal ghc.spec settings docs/users_guide/ug-book.xml docs/users_guide/ug-ent.xml docs/index.html libraries/prologue.txt distrib/ghc.iss distrib/configure.ac])
ced47f7 [project @ 2004-09-18 12:49:55 by panne]
panne authored
819 AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h])
820 AC_OUTPUT
f21ba11 @igfoo Warn in configure if it looks like make 3.80 is about to be used
igfoo authored
821
822 # We get caught by
823 # http://savannah.gnu.org/bugs/index.php?1516
824 # $(eval ...) inside conditionals causes errors
825 # with make 3.80, so warn the user if it looks like they're about to
826 # try to use it.
a664d73 @igfoo Work around Solaris's grep not supporting -q
igfoo authored
827 # We would use "grep -q" here, but Solaris's grep doesn't support it.
f21ba11 @igfoo Warn in configure if it looks like make 3.80 is about to be used
igfoo authored
828 checkMake380() {
a664d73 @igfoo Work around Solaris's grep not supporting -q
igfoo authored
829 if $1 --version 2>&1 | head -1 | grep 'GNU Make 3\.80' > /dev/null
f21ba11 @igfoo Warn in configure if it looks like make 3.80 is about to be used
igfoo authored
830 then
831 echo
832 echo "WARNING: It looks like \"$1\" is GNU make 3.80."
833 echo "This version cannot be used to build GHC."
834 echo "Please use GNU make >= 3.81."
835 fi
836 }
837
838 checkMake380 make
839 checkMake380 gmake
840
34cc75e @igfoo GHC new build system megapatch
igfoo authored
841 echo ["
842 ----------------------------------------------------------------------
843 Configure completed successfully.
844
845 Building GHC version : $ProjectVersion
846
847 Build platform : $BuildPlatform
848 Host platform : $HostPlatform
849 Target platform : $TargetPlatform
850 "]
851
852 if test "$BootingFromHc" = "YES"; then
853 echo ["\
854 Bootstrapping from HC files.
855 "]
856 else
857 echo ["\
858 Bootstrapping using : $WithGhc
859 which is version : $GhcVersion
860 "]
861 fi
862
863 echo ["\
864 Using GCC : $WhatGccIsCalled
865 which is version : $GccVersion
866
867 ld : $LdCmd
c9a11cb @simonmar mention documentation tools in the summary; tidy up formatting
simonmar authored
868 Happy : $HappyCmd ($HappyVersion)
869 Alex : $AlexCmd ($AlexVersion)
34cc75e @igfoo GHC new build system megapatch
igfoo authored
870 Python : $PythonCmd
c9a11cb @simonmar mention documentation tools in the summary; tidy up formatting
simonmar authored
871 Perl : $PerlCmd
872 dblatex : $DblatexCmd
873 xsltproc : $XsltprocCmd"]
34cc75e @igfoo GHC new build system megapatch
igfoo authored
874
875 if test "$HSCOLOUR" = ""; then
876 echo ["
877 HsColour was not found; documentation will not contain source links
878 "]
879 else
880 echo ["\
881 HsColour : $HSCOLOUR
882 "]
883 fi
884
c9a11cb @simonmar mention documentation tools in the summary; tidy up formatting
simonmar authored
885 echo ["\
886 Building DocBook HTML documentation : $BUILD_DOCBOOK_HTML
887 Building DocBook PS documentation : $BUILD_DOCBOOK_PS
dc9cde6 @simonmar Fix configure summary: --enable-shared has gone
simonmar authored
888 Building DocBook PDF documentation : $BUILD_DOCBOOK_PDF"]
34cc75e @igfoo GHC new build system megapatch
igfoo authored
889
890 echo ["----------------------------------------------------------------------
891 "]
892
893 echo "\
894 For a standard build of GHC (fully optimised with profiling), type (g)make.
895
896 To make changes to the default build configuration, copy the file
897 mk/build.mk.sample to mk/build.mk, and edit the settings in there.
898
899 For more information on how to configure your GHC build, see
900 http://hackage.haskell.org/trac/ghc/wiki/Building
901 "
Something went wrong with that request. Please try again.