Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 999 lines (843 sloc) 31.033 kb
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
1 dnl == autoconf source for the Glasgow FP tools ==
81cb7610 »
2003-08-18 [project @ 2003-08-18 14:54:40 by panne]
2 dnl (run "grep '^dnl \*' configure.ac | sed -e 's/dnl / /g; s/\*\*/ +/g;'"
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
3 dnl (or some such) to see the outline of this file)
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
4 dnl
5 #
06decfcd »
2007-02-06 Detect the snapshot version number using darcs
6 # (c) The University of Glasgow 1994-2004
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
7 #
06decfcd »
2007-02-06 Detect the snapshot version number using darcs
8 # Configure script template for GHC
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
9 #
a97485bf »
2004-11-11 [project @ 2004-11-11 16:48:55 by simonmar]
10 # Process with 'autoreconf' to get a working configure script.
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
11 #
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
12 # For the generated configure script, do "./configure --help" to
13 # see what flags are available. (Better yet, read the documentation!)
14 #
15
0f590590 »
2009-09-22 Set version number to 6.13
16 AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.13], [glasgow-haskell-bugs@haskell.org], [ghc])
0065d5ab »
2006-04-07 Reorganisation of the source tree
17
06decfcd »
2007-02-06 Detect the snapshot version number using darcs
18 # Set this to YES for a released version, otherwise NO
25f44cb9 »
2007-02-24 Don't hardwire RELEASE into configure.ac
19 : ${RELEASE=NO}
06decfcd »
2007-02-06 Detect the snapshot version number using darcs
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
dbb439db »
2006-09-16 emit an error if the user ran autoconf instead of autoreconf
29 if test ! -f mk/config.h.in; then
d2fdf91c »
2007-04-12 autoreconf -> sh boot
30 echo "mk/config.h.in doesn't exist: perhaps you haven't run 'sh boot'?"
dbb439db »
2006-09-16 emit an error if the user ran autoconf instead of autoreconf
31 exit 1
32 fi
33
8fbf686c »
2007-04-18 Pass configure arguments to the library configure scripts
34 AC_SUBST([CONFIGURE_ARGS], [$ac_configure_args])
35
b41067a9 »
2009-07-06 Windows fixes to build system: use the 'find' and 'sort' found by con…
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 ----------------------------------------------------------
0065d5ab »
2006-04-07 Reorganisation of the source tree
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])
ced47f78 »
2004-09-18 [project @ 2004-09-18 12:49:55 by panne]
51
1fb1ab5d »
1997-03-14 [project @ 1997-03-14 07:52:06 by simonpj]
52 # First off, a distrib sanity check..
ced47f78 »
2004-09-18 [project @ 2004-09-18 12:49:55 by panne]
53 AC_CONFIG_SRCDIR([mk/config.mk.in])
02b60157 »
1996-11-21 [project @ 1996-11-21 16:45:53 by simonm]
54
da8f39a9 »
2003-08-19 [project @ 2003-08-19 12:42:39 by panne]
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.
907d2e9d »
2004-09-22 [project @ 2004-09-22 08:36:58 by panne]
58 AC_PREREQ([2.52])
493055ce »
2003-05-29 [project @ 2003-05-29 09:01:20 by simonmar]
59
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
60 # -------------------------------------------------------------------------
61 # Prepare to generate the following header files
62 #
1fb1ab5d »
1997-03-14 [project @ 1997-03-14 07:52:06 by simonpj]
63 #
64 AC_CONFIG_HEADER(mk/config.h)
02b60157 »
1996-11-21 [project @ 1996-11-21 16:45:53 by simonm]
65
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
66 # No, semi-sadly, we don't do `--srcdir'...
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
67 if test x"$srcdir" != 'x.' ; then
1fb1ab5d »
1997-03-14 [project @ 1997-03-14 07:52:06 by simonpj]
68 echo "This configuration does not support the \`--srcdir' option.."
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
69 exit 1
70 fi
71
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
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 --------------------------------------------------------------
803963ad »
2000-11-02 [project @ 2000-11-02 14:27:01 by simonmar]
82
f30908b6 »
2004-11-20 [project @ 2004-11-20 16:02:41 by panne]
83 AC_ARG_WITH([ghc],
18abe9c0 »
2003-12-18 [project @ 2003-12-18 10:46:49 by simonmar]
84 [AC_HELP_STRING([--with-ghc=ARG],
f30908b6 »
2004-11-20 [project @ 2004-11-20 16:02:41 by panne]
85 [Use ARG as the path to GHC [default=autodetect]])],
86 [WithGhc="$withval"],
87 [if test "$GHC" = ""; then
88 AC_PATH_PROG([GHC], [ghc])
dae2fd80 »
2001-09-18 [project @ 2001-09-18 08:53:01 by simonmar]
89 fi
f30908b6 »
2004-11-20 [project @ 2004-11-20 16:02:41 by panne]
90 WithGhc="$GHC"])
803963ad »
2000-11-02 [project @ 2000-11-02 14:27:01 by simonmar]
91
efc0f420 »
2009-08-20 Restore the GHC version check
92 dnl ** Booting from .hc files?
93 dnl --------------------------------------------------------------
94 AC_ARG_ENABLE(hc-boot,
95 [AC_HELP_STRING([--enable-hc-boot],
96 [Boot the Glasgow Haskell Compiler from intermediate .hc files.
97 (This option is mostly of interest to porters.) [default=no]])],
98 [ if test x"$enableval" = x"yes"; then
99 BootingFromHc=YES
100 else
101 BootingFromHc=NO
102 fi
103 ],
104 [BootingFromHc=NO]
105 )
106 AC_SUBST(BootingFromHc)
107
34cc75e1 »
2009-04-26 GHC new build system megapatch
108 AC_ARG_ENABLE(bootstrap-with-devel-snapshot,
109 [AC_HELP_STRING([--enable-bootstrap-with-devel-snapshot],
110 [Allow bootstrapping using a development snapshot of GHC. This is not guaranteed to work.])],
111 EnableBootstrapWithDevelSnaphost=YES,
112 EnableBootstrapWithDevelSnaphost=NO
113 )
114
803963ad »
2000-11-02 [project @ 2000-11-02 14:27:01 by simonmar]
115 if test "$WithGhc" != ""; then
116 FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
34cc75e1 »
2009-04-26 GHC new build system megapatch
117
436e13f5 »
2009-05-13 rejig ghc version test; fail if GHC version can't be determined
118 if test "$GhcMajVersion" = "unknown" -o "$GhcMinVersion" = "unknown"; then
119 AC_MSG_ERROR([Cannot determine the version of $WithGhc. Is it really GHC?])
34cc75e1 »
2009-04-26 GHC new build system megapatch
120 fi
121
803963ad »
2000-11-02 [project @ 2000-11-02 14:27:01 by simonmar]
122 AC_SUBST(GhcVersion)dnl
123 AC_SUBST(GhcMajVersion)dnl
124 AC_SUBST(GhcMinVersion)dnl
125 AC_SUBST(GhcPatchLevel)dnl
9b582344 »
2007-03-13 Fix the way configure sets the ghc_ge_* variables
126 GhcMinVersion2=`echo "$GhcMinVersion" | sed 's/^\\(.\\)$/0\\1/'`
127 GhcCanonVersion="$GhcMajVersion$GhcMinVersion2"
b0242d5a »
2008-06-15 Add ghc_ge_609
128 if test $GhcCanonVersion -ge 609; then ghc_ge_609=YES; else ghc_ge_609=NO; fi
7d73a107 »
2009-09-11 Fix build with GHC <= 6.10.1
129 FP_COMPARE_VERSIONS($GhcVersion,[-ge],[6.10.2],
130 [ghc_ge_6102=YES], [ghc_ge_6102=NO])
d210b148 »
2009-09-13 Fixes for compiling the HEAD with iteslf
131 if test $GhcCanonVersion -ge 611; then ghc_ge_611=YES; else ghc_ge_611=NO; fi
b0242d5a »
2008-06-15 Add ghc_ge_609
132 AC_SUBST(ghc_ge_609)dnl
7d73a107 »
2009-09-11 Fix build with GHC <= 6.10.1
133 AC_SUBST(ghc_ge_6102)dnl
d210b148 »
2009-09-13 Fixes for compiling the HEAD with iteslf
134 AC_SUBST(ghc_ge_611)dnl
803963ad »
2000-11-02 [project @ 2000-11-02 14:27:01 by simonmar]
135 fi
136
efc0f420 »
2009-08-20 Restore the GHC version check
137 dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on
138 if test "$BootingFromHc" = "NO" -a -d "$srcdir/compiler"; then
139 if test "$WithGhc" = ""; then
140 AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
141 fi
142 FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.8],
143 [AC_MSG_ERROR([GHC version 6.8 or later is required to compile GHC.])])dnl
144
145 if test `expr $GhcMinVersion % 2` = "1"; then
146 if test "$EnableBootstrapWithDevelSnaphost" = "NO"; then
147 AC_MSG_ERROR([
148 $WithGhc is a development snapshot of GHC, version $GhcVersion.
149 Bootstrapping using this version of GHC is not supported, and may not
150 work. Use --enable-bootstrap-with-devel-snapshot to try it anyway,
151 or --with-ghc to specify a different GHC to use.])
152 fi
153 fi
154 fi;
155
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
156 # GHC is passed to Cabal, so we need a native path
157 if test "${WithGhc}" != ""
158 then
ae368b7c »
2009-11-04 Fix some bugs to do with tools in paths containing spaces
159 ghc_host=`"${WithGhc}" +RTS --info | grep 'Host platform' | sed -e 's/.*, "//' -e 's/")//'`
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
160
161 if test "$ghc_host" = "i386-unknown-mingw32"
162 then
163 if test "${OSTYPE}" = "msys"
164 then
165 WithGhc=`echo "${WithGhc}" | sed "s#^/\([a-zA-Z]\)/#\1:/#"`
166 else
167 # Canonicalise to <drive>:/path/to/ghc
ae368b7c »
2009-11-04 Fix some bugs to do with tools in paths containing spaces
168 WithGhc=`cygpath -m "${WithGhc}"`
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
169 fi
170 echo "GHC path canonicalised to: ${WithGhc}"
171 fi
172 fi
173 AC_SUBST([WithGhc])
174
17c5559e »
2009-07-16 Don't put all of $CFLAGS into $SRC_CC_OPTS
175 dnl ** Without optimization some INLINE trickery fails for GHCi
176 SRC_CC_OPTS="-O"
177
acdd7c95 »
2009-08-26 Configurable iconv header and library locations
178 dnl Allow to specify iconv options to the toplevel configure script
179 dnl so they can be properly passed to sub-builds.
180 dnl Note: ICONV_LIB_DIRS and ICONV_INCLUDE_DIRS are not predefined
181 dnl to the empty string to allow them to be overridden from the
182 dnl environment.
183
184 AC_ARG_WITH([iconv-includes],
185 [AC_HELP_STRING([--with-iconv-includes],
186 [directory containing iconv.h])],
187 [ICONV_INCLUDE_DIRS=$withval])
188
189 AC_ARG_WITH([iconv-libraries],
190 [AC_HELP_STRING([--with-iconv-libraries],
191 [directory containing iconv library])],
192 [ICONV_LIB_DIRS=$withval])
193
194 AC_SUBST(ICONV_INCLUDE_DIRS)
195 AC_SUBST(ICONV_LIB_DIRS)
196
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
197 dnl--------------------------------------------------------------------
198 dnl * Choose host(/target/build) platform
199 dnl--------------------------------------------------------------------
200 dnl We don't use the standard autoconf macros for this, but instead
201 dnl ask the bootstrapping compiler what platform it is for
202
203 dnl Guess host/target/build platform(s) if necessary.
204 m4_divert_once([HELP_CANON],
205 [[
206 System types:
207 --build=BUILD configure for building on BUILD [guessed]
208 --host=HOST cross-compile to build programs to run on HOST [guessed]
209 --target=TARGET configure for building compilers for TARGET [guessed]]])dnl
210
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
211 if test "${WithGhc}" != ""
212 then
213 bootstrap_host=`"${WithGhc}" +RTS --info | grep '^ ,("Host platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'`
214 bootstrap_target=`"${WithGhc}" +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'`
215 if test "$bootstrap_host" != "$bootstrap_target"
216 then
217 echo "Bootstrapping GHC is a cross compiler. This probably isn't going to work"
218 fi
219 fi
220
221 # We have to run these unconditionally, but we may discard their
222 # results in the following code
223 AC_CANONICAL_BUILD
224 AC_CANONICAL_HOST
225 AC_CANONICAL_TARGET
226
227 # If no argument was given for a configuration variable, then discard
228 # the guessed canonical system and use the configuration of the
229 # bootstrapping ghc. If an argument was given, map it from gnu format
230 # to ghc format.
231 #
232 # For why we do it this way, see: #3637, #1717, #2951
233
234 if test "$build_alias" = ""
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
235 then
236 if test "${WithGhc}" != ""
237 then
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
238 build=$bootstrap_target
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
239 echo "Build platform inferred as: $build"
240 else
241 echo "Can't work out build platform"
242 exit 1
243 fi
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
244
245 BuildArch=`echo "$build" | sed 's/-.*//'`
246 BuildVendor=`echo "$build" | sed -e 's/.*-\(.*\)-.*/\1/'`
247 BuildOS=`echo "$build" | sed 's/.*-//'`
248 else
249 GHC_CONVERT_CPU([$build_cpu], [BuildArch])
250 GHC_CONVERT_VENDOR([$build_vendor], [BuildVendor])
251 GHC_CONVERT_OS([$build_os], [BuildOS])
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
252 fi
253
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
254 if test "$host_alias" = ""
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
255 then
256 if test "${WithGhc}" != ""
257 then
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
258 host=$bootstrap_target
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
259 echo "Host platform inferred as: $host"
260 else
261 echo "Can't work out host platform"
262 exit 1
263 fi
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
264
265 HostArch=`echo "$host" | sed 's/-.*//'`
266 HostVendor=`echo "$host" | sed -e 's/.*-\(.*\)-.*/\1/'`
267 HostOS=`echo "$host" | sed 's/.*-//'`
268 else
269 GHC_CONVERT_CPU([$host_cpu], [HostArch])
270 GHC_CONVERT_VENDOR([$host_vendor], [HostVendor])
271 GHC_CONVERT_OS([$host_os], [HostOS])
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
272 fi
273
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
274 if test "$target_alias" = ""
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
275 then
276 if test "${WithGhc}" != ""
277 then
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
278 target=$bootstrap_target
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
279 echo "Target platform inferred as: $target"
280 else
281 echo "Can't work out target platform"
282 exit 1
283 fi
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
284
285 TargetArch=`echo "$target" | sed 's/-.*//'`
286 TargetVendor=`echo "$target" | sed -e 's/.*-\(.*\)-.*/\1/'`
287 TargetOS=`echo "$target" | sed 's/.*-//'`
288 else
289 GHC_CONVERT_CPU([$target_cpu], [TargetArch])
290 GHC_CONVERT_VENDOR([$target_vendor], [TargetVendor])
291 GHC_CONVERT_OS([$target_os], [TargetOS])
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
292 fi
293
294 exeext=''
295 soext='.so'
e23cf9de »
2009-05-23 Fix configure
296 case $host in
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
297 *-unknown-cygwin32)
298 AC_MSG_WARN([GHC does not support the Cygwin target at the moment])
299 AC_MSG_WARN([I'm assuming you wanted to build for i386-unknown-mingw32])
300 exit 1
301 ;;
302 *-unknown-mingw32)
303 exeext='.exe'
304 soext='.dll'
305 ;;
306 i386-apple-darwin|powerpc-apple-darwin)
307 soext='.dylib'
0e7a5fb9 »
2009-08-08 Pass -m32 to gcc on i386 and ppc OS X
308 CFLAGS="$CFLAGS -m32"
309 LDFLAGS="$LDFLAGS -m32"
93cd3171 »
2009-09-08 add $(CONF_*_OPTS) for options that come from ./configure (fixes #3426)
310 CONF_CC_OPTS="$CONF_CC_OPTS -m32"
311 CONF_LD_OPTS="$CONF_LD_OPTS -m32"
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
312 ;;
313 x86_64-apple-darwin)
314 soext='.dylib'
315 CFLAGS="$CFLAGS -m64"
316 LDFLAGS="$LDFLAGS -m64"
93cd3171 »
2009-09-08 add $(CONF_*_OPTS) for options that come from ./configure (fixes #3426)
317 CONF_CC_OPTS="$CONF_CC_OPTS -m64"
318 CONF_LD_OPTS="$CONF_LD_OPTS -m64"
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
319 ;;
320 esac
321
e0064eda »
2009-05-23 Sanity check the platforms we are given
322 checkArch() {
323 case $1 in
324 alpha|arm|hppa|hppa1_1|i386|ia64|m68k|mips|mipseb|mipsel|powerpc|powerpc64|rs6000|s390|sparc|sparc64|vax|x86_64)
325 ;;
326 *)
327 echo "Unknown arch $1"
328 exit 1
329 ;;
330 esac
331 }
332
333 checkVendor() {
334 case $1 in
335 dec|unknown|hp|apple|next|sun|sgi|ibm)
336 ;;
337 *)
338 echo "Unknown vendor $1"
339 exit 1
340 ;;
341 esac
342 }
343
344 checkOS() {
345 case $1 in
95a3e553 »
2009-12-21 Partial support for Haiku (#3727)
346 linux|freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku)
e0064eda »
2009-05-23 Sanity check the platforms we are given
347 ;;
348 *)
e55e7e8b »
2009-07-09 workaround new Cygwin bash CRLF behaviour
349 echo "Unknown OS '$1'"
e0064eda »
2009-05-23 Sanity check the platforms we are given
350 exit 1
351 ;;
352 esac
353 }
354
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
355 BuildPlatform="$BuildArch-$BuildVendor-$BuildOS"
178a52ac »
2009-05-25 Make the sed in configure.ac more portable
356 BuildPlatform_CPP=`echo "$BuildPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
357 BuildArch_CPP=` echo "$BuildArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
358 BuildVendor_CPP=` echo "$BuildVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
359 BuildOS_CPP=` echo "$BuildOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
e0064eda »
2009-05-23 Sanity check the platforms we are given
360
361 checkArch "$BuildArch"
362 checkVendor "$BuildVendor"
363 checkOS "$BuildOS"
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
364
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
365 HostPlatform="$HostArch-$HostVendor-$HostOS"
178a52ac »
2009-05-25 Make the sed in configure.ac more portable
366 HostPlatform_CPP=`echo "$HostPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
367 HostArch_CPP=` echo "$HostArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
368 HostVendor_CPP=` echo "$HostVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
369 HostOS_CPP=` echo "$HostOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
e0064eda »
2009-05-23 Sanity check the platforms we are given
370
371 checkArch "$HostArch"
372 checkVendor "$HostVendor"
373 checkOS "$HostOS"
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
374
1bf79d5d »
2010-01-19 Allow GNU-standard --host, --build, --target configure options (#3637)
375 TargetPlatform="$TargetArch-$TargetVendor-$TargetOS"
178a52ac »
2009-05-25 Make the sed in configure.ac more portable
376 TargetPlatform_CPP=`echo "$TargetPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
377 TargetArch_CPP=` echo "$TargetArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
378 TargetVendor_CPP=` echo "$TargetVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
379 TargetOS_CPP=` echo "$TargetOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
e0064eda »
2009-05-23 Sanity check the platforms we are given
380
381 checkArch "$TargetArch"
382 checkVendor "$TargetVendor"
383 checkOS "$TargetOS"
82fbc4be »
2009-05-22 Change how we find the host/build/target platforms
384
385 AC_SUBST(BuildPlatform)
386 AC_SUBST(HostPlatform)
387 AC_SUBST(TargetPlatform)
388 AC_SUBST(HostPlatform_CPP)
389 AC_SUBST(BuildPlatform_CPP)
390 AC_SUBST(TargetPlatform_CPP)
391
392 AC_SUBST(HostArch_CPP)
393 AC_SUBST(BuildArch_CPP)
394 AC_SUBST(TargetArch_CPP)
395
396 AC_SUBST(HostOS_CPP)
397 AC_SUBST(BuildOS_CPP)
398 AC_SUBST(TargetOS_CPP)
399
400 AC_SUBST(HostVendor_CPP)
401 AC_SUBST(BuildVendor_CPP)
402 AC_SUBST(TargetVendor_CPP)
403
404 AC_SUBST(exeext)
405 AC_SUBST(soext)
406
407 AC_ARG_WITH(hc,
408 [AC_HELP_STRING([--with-hc=ARG],
409 [Use ARG as the path to the compiler for compiling ordinary
410 Haskell code (default= value of --with-ghc)])],
411 [WithHc="$withval"],
412 [WithHc=$WithGhc]
413 )
414 AC_SUBST(WithHc)
415
803963ad »
2000-11-02 [project @ 2000-11-02 14:27:01 by simonmar]
416 AC_PATH_PROGS(NHC,nhc nhc98)
417 AC_PATH_PROG(HBC,hbc)
418
e51cdf9b »
2009-10-23 Make a mingw tree from mingw tarballs
419 # This uses GHC, so put it after the "GHC is required" check above:
420 FP_FIND_ROOT
421
422 if test "$HostOS" = "mingw32"
423 then
424 CC="$hardtop/inplace/mingw/bin/gcc.exe"
425 LD="$hardtop/inplace/mingw/bin/ld.exe"
426 NM="$hardtop/inplace/mingw/bin/nm.exe"
427 if ! test -d inplace/mingw ||
428 test inplace/mingw -ot ghc-tarballs/mingw/binutils*.tar.gz ||
429 test inplace/mingw -ot ghc-tarballs/mingw/gcc-core*.tar.gz ||
430 test inplace/mingw -ot ghc-tarballs/mingw/libcrypt*.tar.bz2 ||
431 test inplace/mingw -ot ghc-tarballs/mingw/mingw-runtime*.tar.gz ||
432 test inplace/mingw -ot ghc-tarballs/mingw/w32api*.tar.gz
433 then
434 AC_MSG_NOTICE([Making in-tree mingw tree])
435 rm -rf inplace/mingw
436 mkdir inplace
437 mkdir inplace/mingw
64f6d469 »
2009-10-29 Add some &&s to configure
438 (
439 cd inplace/mingw &&
440 tar -zxf ../../ghc-tarballs/mingw/binutils*.tar.gz &&
441 tar -zxf ../../ghc-tarballs/mingw/gcc-core*.tar.gz &&
442 tar -jxf ../../ghc-tarballs/mingw/libcrypt*.tar.bz2 &&
443 tar -zxf ../../ghc-tarballs/mingw/mingw-runtime*.tar.gz &&
444 tar -zxf ../../ghc-tarballs/mingw/w32api*.tar.gz &&
445 mv bin/gcc.exe bin/realgcc.exe
446 )
dc5b9bd6 »
2010-02-18 Refactor gcc.c, pulling out the reusable code
447 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
e51cdf9b »
2009-10-23 Make a mingw tree from mingw tarballs
448 AC_MSG_NOTICE([In-tree mingw tree created])
449 fi
4bd03127 »
2009-11-20 Use the ghc-perl tarball on Windows, instead of the msys one
450 if ! test -d inplace/perl ||
451 test inplace/perl -ot ghc-tarballs/perl/ghc-perl*.tar.gz
452 then
453 AC_MSG_NOTICE([Making in-tree perl tree])
454 rm -rf inplace/perl
455 mkdir inplace
456 mkdir inplace/perl
457 (
458 cd inplace/perl &&
459 tar -zxf ../../ghc-tarballs/perl/ghc-perl*.tar.gz
460 )
461 AC_MSG_NOTICE([In-tree perl tree created])
462 fi
e51cdf9b »
2009-10-23 Make a mingw tree from mingw tarballs
463 fi
464
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
465 dnl ** Which gcc to use?
466 dnl --------------------------------------------------------------
e51cdf9b »
2009-10-23 Make a mingw tree from mingw tarballs
467 FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc])
468 export CC
469 WhatGccIsCalled="$CC"
b7998280 »
1998-08-18 [project @ 1998-08-18 20:40:42 by sof]
470 AC_SUBST(WhatGccIsCalled)
471
5c789e42 »
2007-04-06 Fixes for building the libraries with cabal on Windows
472 dnl ** Which ld to use?
473 dnl --------------------------------------------------------------
e51cdf9b »
2009-10-23 Make a mingw tree from mingw tarballs
474 FP_ARG_WITH_PATH_GNU_PROG([LD], [ld])
475 LdCmd="$LD"
476 AC_SUBST([LdCmd])
d0864f52 »
2007-12-05 move FP_FIND_ROOT after the "GHC is required" check
477
e51cdf9b »
2009-10-23 Make a mingw tree from mingw tarballs
478 dnl ** Which nm to use?
479 dnl --------------------------------------------------------------
480 FP_ARG_WITH_PATH_GNU_PROG([NM], [nm])
481 NmCmd="$NM"
482 AC_SUBST([NmCmd])
88ffee68 »
1999-05-04 [project @ 1999-05-04 08:35:12 by sof]
483
15575cf8 »
2008-02-19 Add configure option --with-macos-deployment-target
484 dnl ** Mac OS X: explicit deployment target
485 dnl --------------------------------------------------------------
5b846fa3 »
2008-02-21 Mac OS X deployment target: piping opts through Makefiles
486 AC_ARG_WITH([macosx-deployment-target],
487 [AC_HELP_STRING([--with-macosx-deployment-target=VERSION],
488 [Build for Mac OS VERSION and higher (default= version of build host)])],
489 [FP_MACOSX_DEPLOYMENT_TARGET="$withval"
15575cf8 »
2008-02-19 Add configure option --with-macos-deployment-target
490 if test "x$TargetOS_CPP-$TargetVendor_CPP" != "xdarwin-apple"; then
491 # ignore everywhere, but on Mac OS
5b846fa3 »
2008-02-21 Mac OS X deployment target: piping opts through Makefiles
492 AC_MSG_WARN([--macosx-deployment-target is only available on Mac OS X])
493 FP_MACOSX_DEPLOYMENT_TARGET=none
15575cf8 »
2008-02-19 Add configure option --with-macos-deployment-target
494 fi],
5b846fa3 »
2008-02-21 Mac OS X deployment target: piping opts through Makefiles
495 [FP_MACOSX_DEPLOYMENT_TARGET=none]
15575cf8 »
2008-02-19 Add configure option --with-macos-deployment-target
496 )
5b846fa3 »
2008-02-21 Mac OS X deployment target: piping opts through Makefiles
497 FP_CHECK_MACOSX_DEPLOYMENT_TARGET
498 AC_SUBST(MACOSX_DEPLOYMENT_VERSION)
499 AC_SUBST(MACOSX_DEPLOYMENT_SDK)
15575cf8 »
2008-02-19 Add configure option --with-macos-deployment-target
500
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
501 dnl --------------------------------------------------------------
502 dnl End of configure script option section
503 dnl --------------------------------------------------------------
504
505
506 dnl --------------------------------------------------------------
507 dnl * General configuration checks
508 dnl --------------------------------------------------------------
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
509
7ca6e183 »
2003-11-15 [project @ 2003-11-15 19:37:13 by panne]
510 dnl ** Can the unix package be built?
511 dnl --------------------------------------------------------------
512
513 if test x"$TargetPlatform" = x"i386-unknown-mingw32"; then
514 GhcLibsWithUnix=NO
515 else
516 GhcLibsWithUnix=YES
517 fi
518 AC_SUBST([GhcLibsWithUnix])
519
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
520 dnl ** does #! work?
521 AC_SYS_INTERPRETER()
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
522
dfc021e7 »
2000-05-09 [project @ 2000-05-09 10:43:45 by rrt]
523 dnl ** look for `perl', but only in /bin on Windows
524 case $HostOS_CPP in
525 cygwin32|mingw32)
13c670c3 »
2001-05-27 [project @ 2001-05-27 23:53:47 by sof]
526 AC_CHECK_PROG(PerlCmd,perl,/bin/perl,,/bin)
527 if test -z "$PerlCmd"; then
528 echo "You must install the version of Perl shipped with GHC"
529 echo "(or a compatible one) in /bin."
530 exit 1
531 fi
dfc021e7 »
2000-05-09 [project @ 2000-05-09 10:43:45 by rrt]
532 ;;
533 *)
534 AC_PATH_PROG(PerlCmd,perl)
535 if test -z "$PerlCmd"; then
536 echo "You must install perl before you can continue"
537 echo "Perhaps it is already installed, but not in your PATH?"
538 exit 1
539 else
540 FPTOOLS_CHECK_PERL_VERSION
541 fi
542 ;;
543 esac
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
544
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
545 dnl ** does #! path/to/perl work? (sometimes it's too long...)
90825aa2 »
1998-07-24 [project @ 1998-07-24 10:42:33 by sof]
546 FPTOOLS_SHEBANG_PERL
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
547
c6cda1d5 »
2002-07-31 [project @ 2002-07-31 14:11:13 by simonmar]
548 dnl ** check for Python
549 AC_PATH_PROG(PythonCmd,python)
550
6338b45a »
2001-06-28 [project @ 2001-06-28 17:56:10 by rrt]
551 dnl ** look for GCC and find out which version
552 dnl Figure out which C compiler to use. Gcc is preferred.
553 dnl If gcc, make sure it's at least 2.1
554 dnl
f30908b6 »
2004-11-20 [project @ 2004-11-20 16:02:41 by panne]
555 FP_HAVE_GCC
2ebe8add »
2007-08-21 FIX #1427, #1569: gcc 4.2.x needs -fno-toplevel-reorder
556 FP_GCC_EXTRA_FLAGS
6338b45a »
2001-06-28 [project @ 2001-06-28 17:56:10 by rrt]
557
558 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
559 AC_PROG_CPP
1fb1ab5d »
1997-03-14 [project @ 1997-03-14 07:52:06 by simonpj]
560
93cd3171 »
2009-09-08 add $(CONF_*_OPTS) for options that come from ./configure (fixes #3426)
561 AC_SUBST(CONF_CC_OPTS)
562 AC_SUBST(CONF_LD_OPTS)
8b85c1c8 »
2001-06-28 [project @ 2001-06-28 18:05:48 by rrt]
563
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
564 dnl ** figure out how to do context diffs
6a0b7a2f »
2003-08-19 [project @ 2003-08-19 09:23:08 by panne]
565 FP_PROG_CONTEXT_DIFF
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
566
5bb59869 »
2007-02-01 chmod +x install-sh, see bug #978
567 dnl Let's make sure install-sh is executable here. If we got it from
568 dnl a darcs repo, it might not be (see bug #978).
569 chmod +x install-sh
ac4610c4 »
2007-11-24 Make install-sh executable /before/ we try to find it
570 dnl ** figure out how to do a BSD-ish install
571 AC_PROG_INSTALL
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
572
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
573 dnl If you can run configure, you certainly have /bin/sh
6b4abadb »
2003-08-19 [project @ 2003-08-19 14:22:14 by panne]
574 AC_DEFINE([HAVE_BIN_SH], [1], [Define to 1 if you have /bin/sh.])
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
575
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
576 dnl ** how to invoke `ar' and `ranlib'
444a39a6 »
2004-04-07 [project @ 2004-04-07 12:17:09 by panne]
577 FP_PROG_AR_NEEDS_RANLIB
578 FP_PROG_AR_SUPPORTS_INPUT
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
579
1fb1ab5d »
1997-03-14 [project @ 1997-03-14 07:52:06 by simonpj]
580 dnl ** Check to see whether ln -s works
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
581 AC_PROG_LN_S
582
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
583
584 dnl ** Find the path to sed
22f78dd4 »
2009-12-01 Look for sed as gsed first
585 AC_PATH_PROGS(SedCmd,gsed sed,sed)
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
586
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
587
588 dnl ** check for time command
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
589 AC_PATH_PROG(TimeCmd,time)
590
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
591 dnl ** check for tar
592 dnl if GNU tar is named gtar, look for it first.
3a238f0f »
2009-11-19 Add gnutar to the list of names we use when looking for GNU tar
593 AC_PATH_PROGS(TarCmd,gnutar gtar tar,tar)
cfce9dfe »
1997-08-28 [project @ 1997-08-28 21:15:14 by sof]
594
34cc75e1 »
2009-04-26 GHC new build system megapatch
595 dnl ** check for patch
596 dnl if GNU patch is named gpatch, look for it first
597 AC_PATH_PROGS(PatchCmd,gpatch patch, patch)
598
015d3d46 »
2009-12-12 Expose all EventLog events as DTrace probes
599 dnl ** check for dtrace (currently only implemented for Mac OS X)
600 HaveDtrace=NO
601 AC_PATH_PROG(DtraceCmd,dtrace)
602 if test -n "$DtraceCmd"; then
603 if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple"; then
604 HaveDtrace=YES
605 fi
606 fi
607 AC_SUBST(HaveDtrace)
608
b93e282a »
2007-11-23 MERGED: If we have hscolour then make source code links in teh haddoc…
609 AC_PATH_PROG(HSCOLOUR,HsColour)
fc3ed319 »
2007-11-26 canonicalise the path to HsColour
610 # HsColour is passed to Cabal, so we need a native path
cf071813 »
2008-07-03 Tweak the configure script Windows-specific bits
611 if test "x$HostPlatform" = "xi386-unknown-mingw32" && \
612 test "${OSTYPE}" != "msys" && \
613 test "${HSCOLOUR}" != ""
614 then
615 # Canonicalise to <drive>:/path/to/gcc
616 HSCOLOUR=`cygpath -m ${HSCOLOUR}`
fc3ed319 »
2007-11-26 canonicalise the path to HsColour
617 fi
b93e282a »
2007-11-23 MERGED: If we have hscolour then make source code links in teh haddoc…
618
53386c35 »
2004-08-15 [project @ 2004-08-15 20:28:02 by panne]
619 dnl ** check for DocBook toolchain
620 FP_CHECK_DOCBOOK_DTD
cfe2fd2a »
2009-06-02 tidy up autoconfiguration of docbook stuff
621 FP_DOCBOOK_XSL
1cce2f51 »
2009-05-08 Handle deciding what docs to build better
622 FP_PROG_DBLATEX
623
6caa45bf »
2009-05-15 Move hasktags out of the GHC repo
624 FP_PROG_HSTAGS
625
a08aa16a »
2003-05-17 [project @ 2003-05-17 14:49:45 by reid]
626 dnl ** check for ghc-pkg command
7363193d »
2004-08-28 [project @ 2004-08-28 16:20:35 by panne]
627 FP_PROG_GHC_PKG
a08aa16a »
2003-05-17 [project @ 2003-05-17 14:49:45 by reid]
628
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
629 dnl ** check for installed happy binary + version
15d621f7 »
1998-04-16 [project @ 1998-04-16 12:14:13 by sof]
630 dnl (don't do it if we're booting from .hc files though.)
827b7c9e »
2001-03-20 [project @ 2001-03-20 14:51:47 by simonmar]
631 if test "$BootingFromHc" = "NO"; then
90825aa2 »
1998-07-24 [project @ 1998-07-24 10:42:33 by sof]
632 FPTOOLS_HAPPY
15d621f7 »
1998-04-16 [project @ 1998-04-16 12:14:13 by sof]
633 fi;
cfce9dfe »
1997-08-28 [project @ 1997-08-28 21:15:14 by sof]
634
e2314d3d »
2003-08-13 [project @ 2003-08-13 12:34:04 by simonmar]
635 dnl ** check for installed alex binary + version
636 dnl (don't do it if we're booting from .hc files though.)
637 if test "$BootingFromHc" = "NO"; then
638 FPTOOLS_ALEX
639 fi;
640
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
641 dnl --------------------------------------------------
642 dnl ### program checking section ends here ###
643 dnl --------------------------------------------------
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
644
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
645 dnl --------------------------------------------------
646 dnl * Platform header file and syscall feature tests
647 dnl ### checking the state of the local header files and syscalls ###
b0359619 »
1997-09-03 [project @ 1997-09-03 23:53:03 by sof]
648
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
649 dnl ** check for full ANSI header (.h) files
650 AC_HEADER_STDC
cfce9dfe »
1997-08-28 [project @ 1997-08-28 21:15:14 by sof]
651
cd580b86 »
2003-05-27 [project @ 2003-05-27 14:02:04 by simonmar]
652 dnl ** Enable large file support. NB. do this before testing the type of
653 dnl off_t, because it will affect the result of that test.
654 AC_SYS_LARGEFILE
655
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
656 dnl ** check for specific header (.h) files that we are interested in
aeeeda3e »
2009-12-16 #include <sys/select.h> if we have it (#3760)
657 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/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])
70331ad0 »
2000-04-21 [project @ 2000-04-21 18:05:19 by panne]
658
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
659 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
660 AC_HEADER_TIME
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
661
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
662 dnl ** do we have long longs?
66d0cd00 »
2003-08-18 [project @ 2003-08-18 15:53:51 by panne]
663 AC_CHECK_TYPES([long long])
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
664
08c5cc05 »
1998-03-03 [project @ 1998-03-03 19:04:47 by reid]
665 dnl ** what are the sizes of various types
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
666 AC_CHECK_SIZEOF(char, 1)
39adb269 »
2000-01-26 [project @ 2000-01-26 10:44:07 by panne]
667 AC_CHECK_SIZEOF(double, 8)
668 AC_CHECK_SIZEOF(float, 4)
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
669 AC_CHECK_SIZEOF(int, 4)
670 AC_CHECK_SIZEOF(long, 4)
ac304250 »
2003-08-18 [project @ 2003-08-18 16:29:36 by panne]
671 if test "$ac_cv_type_long_long" = yes; then
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
672 AC_CHECK_SIZEOF(long long, 8)
39adb269 »
2000-01-26 [project @ 2000-01-26 10:44:07 by panne]
673 fi
674 AC_CHECK_SIZEOF(short, 2)
675 AC_CHECK_SIZEOF(unsigned char, 1)
676 AC_CHECK_SIZEOF(unsigned int, 4)
677 AC_CHECK_SIZEOF(unsigned long, 4)
ac304250 »
2003-08-18 [project @ 2003-08-18 16:29:36 by panne]
678 if test "$ac_cv_type_long_long" = yes; then
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
679 AC_CHECK_SIZEOF(unsigned long long, 8)
680 fi
39adb269 »
2000-01-26 [project @ 2000-01-26 10:44:07 by panne]
681 AC_CHECK_SIZEOF(unsigned short, 2)
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
682 AC_CHECK_SIZEOF(void *, 4)
08c5cc05 »
1998-03-03 [project @ 1998-03-03 19:04:47 by reid]
683
684 dnl ** what are alignment constraints on various types
ac304250 »
2003-08-18 [project @ 2003-08-18 16:29:36 by panne]
685 FP_CHECK_ALIGNMENT(char)
686 FP_CHECK_ALIGNMENT(double)
687 FP_CHECK_ALIGNMENT(float)
688 FP_CHECK_ALIGNMENT(int)
689 FP_CHECK_ALIGNMENT(long)
690 if test "$ac_cv_type_long_long" = yes; then
691 FP_CHECK_ALIGNMENT(long long)
39adb269 »
2000-01-26 [project @ 2000-01-26 10:44:07 by panne]
692 fi
ac304250 »
2003-08-18 [project @ 2003-08-18 16:29:36 by panne]
693 FP_CHECK_ALIGNMENT(short)
694 FP_CHECK_ALIGNMENT(unsigned char)
695 FP_CHECK_ALIGNMENT(unsigned int)
696 FP_CHECK_ALIGNMENT(unsigned long)
697 if test "$ac_cv_type_long_long" = yes; then
698 FP_CHECK_ALIGNMENT(unsigned long long)
e648dc2c »
2000-01-25 [project @ 2000-01-25 14:34:07 by panne]
699 fi
ac304250 »
2003-08-18 [project @ 2003-08-18 16:29:36 by panne]
700 FP_CHECK_ALIGNMENT(unsigned short)
701 FP_CHECK_ALIGNMENT(void *)
08c5cc05 »
1998-03-03 [project @ 1998-03-03 19:04:47 by reid]
702
37fe7975 »
2004-01-06 [project @ 2004-01-06 17:20:51 by panne]
703 FP_CHECK_FUNC([WinExec],
704 [@%:@include <windows.h>], [WinExec("",0)])
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
705
37fe7975 »
2004-01-06 [project @ 2004-01-06 17:20:51 by panne]
706 FP_CHECK_FUNC([GetModuleFileName],
707 [@%:@include <windows.h>], [GetModuleFileName((HMODULE)0,(LPTSTR)0,0)])
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
708
709 dnl ** check return type of signal handlers
710 dnl Foo: assumes we can use prototypes.
711 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
712 dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler,
907d2e9d »
2004-09-22 [project @ 2004-09-22 08:36:58 by panne]
713 dnl [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
714 dnl #include <signal.h>
715 dnl #ifdef signal
716 dnl #undef signal
717 dnl #endif
718 dnl void (*signal (int, void (*)(int)))(int);
907d2e9d »
2004-09-22 [project @ 2004-09-22 08:36:58 by panne]
719 dnl ]],
720 dnl [[int i;]])],
721 dnl [ac_cv_type_signal_handler=void_int],
722 dnl [ac_cv_type_signal_handler=int_void])])
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
723 dnl if test "$ac_cv_type_signal_handler" = void_int; then
724 dnl AC_DEFINE(VOID_INT_SIGNALS)
725 dnl fi
726
727 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
728 AC_TYPE_SIGNAL
729 if test "$ac_cv_type_signal" = void; then
6b4abadb »
2003-08-19 [project @ 2003-08-19 14:22:14 by panne]
730 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).])
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
731 fi
732
733 dnl ** check for more functions
16ccba3a »
2004-11-18 [project @ 2004-11-18 16:39:53 by stolz]
734 dnl ** The following have been verified to be used in ghc/, but might be used somewhere else, too.
1c83695b »
2009-05-29 Changes for the new IO library, mainly base-package modules moving ar…
735 AC_CHECK_FUNCS([getclock getrusage gettimeofday setitimer siginterrupt sysconf times ctime_r sched_setaffinity setlocale])
4fc80ef6 »
2009-02-08 Handle the case where setitimer(ITIMER_VIRTUAL) is not always available
736
737 AC_TRY_RUN([
738 #include <sys/types.h>
739 #include <sys/time.h>
740 int main(void) {
741 struct itimerval tval;
742 tval.it_value.tv_sec = 1;
743 tval.it_value.tv_usec = 0;
744 tval.it_interval = tval.it_value;
745 return setitimer(ITIMER_VIRTUAL, &tval, (void*)0) != 0;
746 }
747 ],[AC_DEFINE([HAVE_SETITIMER_VIRTUAL], [1], [Define to 1 if setitimer accepts ITIMER_VIRTUAL, 0 else.])])
748
224a7fa0 »
2007-09-06 Declare ctime_r on Mac OS
749 dnl ** On OS X 10.4 (at least), time.h doesn't declare ctime_r if
750 dnl ** _POSIX_C_SOURCE is defined
751 AC_CHECK_DECLS([ctime_r], , ,
752 [#define _POSIX_SOURCE 1
753 #define _POSIX_C_SOURCE 199506L
754 #include <time.h>])
755
7ca3bb74 »
2002-06-25 [project @ 2002-06-25 15:49:58 by mthomas]
756 dnl ** check for mingwex library
757 AC_CHECK_LIB(mingwex, closedir, HaveLibMingwEx=YES, HaveLibMingwEx=NO)
758 AC_SUBST(HaveLibMingwEx)
759
760 if test $HaveLibMingwEx = YES ; then
6b4abadb »
2003-08-19 [project @ 2003-08-19 14:22:14 by panne]
761 AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.])
7ca3bb74 »
2002-06-25 [project @ 2002-06-25 15:49:58 by mthomas]
762 fi
763
51e17ea6 »
2001-02-17 [project @ 2001-02-17 19:52:56 by sebc]
764 dnl ** check for math library
f2bfd338 »
2009-12-04 configure.ac: fix libm checks (Trac #3730)
765 dnl Keep that check as early as possible.
766 dnl as we need to know whether we need libm
767 dnl for math functions or not
768 dnl (see http://hackage.haskell.org/trac/ghc/ticket/3730)
1c1bfbe7 »
2009-12-16 fix up libm detection and use (#3724)
769 AC_SEARCH_LIBS(atan, m,
770 [AC_DEFINE([HAVE_LIBM], [1], [Define to 1 if you need to link with libm])])
51e17ea6 »
2001-02-17 [project @ 2001-02-17 19:52:56 by sebc]
771
f2bfd338 »
2009-12-04 configure.ac: fix libm checks (Trac #3730)
772 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
773 dnl the order of these tests matters: bfd needs liberty
774 AC_CHECK_LIB(iberty, xmalloc)
775 AC_CHECK_LIB(bfd, bfd_init)
776
1e19a383 »
1998-11-17 [project @ 1998-11-17 01:24:58 by reid]
777 dnl ################################################################
778 dnl Check for libraries
779 dnl ################################################################
780
0e89dd44 »
2005-09-20 [project @ 2005-09-20 16:35:26 by ross]
781 dnl ** check whether we need -ldl to get dlopen()
16fc5c3b »
2002-03-26 [project @ 2002-03-26 16:36:09 by stolz]
782
ede4c6f2 »
2006-07-30 No functionality changes
783 AC_CHECK_LIB(dl, dlopen,
f97dcf9f »
2005-03-08 [project @ 2005-03-08 04:45:29 by wolfgang]
784 [HaveLibDL=YES
785 AC_DEFINE([HAVE_LIBDL], [1], [Define to 1 if you need -ldl to get dlopen().])
ede4c6f2 »
2006-07-30 No functionality changes
786 LIBS="$LIBS -ldl"],
f97dcf9f »
2005-03-08 [project @ 2005-03-08 04:45:29 by wolfgang]
787 [HaveLibDL=NO])
788 AC_SUBST(HaveLibDL)
789
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
790 dnl --------------------------------------------------
791 dnl * Miscellaneous feature tests
792 dnl --------------------------------------------------
793
cfce9dfe »
1997-08-28 [project @ 1997-08-28 21:15:14 by sof]
794 dnl ** can we get alloca?
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
795 AC_FUNC_ALLOCA
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
796
e34efb98 »
2003-07-02 [project @ 2003-07-02 13:57:10 by stolz]
797 dnl ** Working vfork?
ced47f78 »
2004-09-18 [project @ 2004-09-18 12:49:55 by panne]
798 AC_FUNC_FORK
e34efb98 »
2003-07-02 [project @ 2003-07-02 13:57:10 by stolz]
799
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
800 dnl ** determine whether or not const works
801 AC_C_CONST
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
802
81464dc6 »
1998-03-17 [project @ 1998-03-17 15:38:37 by simonm]
803 dnl ** are we big endian?
804 AC_C_BIGENDIAN
51f782f4 »
2006-11-20 Cope with big endian float word order on little endian machines
805 FPTOOLS_FLOAT_WORD_ORDER_BIGENDIAN
b15fe269 »
1998-08-19 [project @ 1998-08-19 11:23:59 by sof]
806
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
807 dnl ** check for leading underscores in symbol names
aca2e347 »
2004-08-30 [project @ 2004-08-30 19:28:46 by panne]
808 FP_LEADING_UNDERSCORE
e7d21ee4 »
1996-01-08 [project @ 1996-01-08 20:28:12 by partain]
809
7a8bd246 »
2005-01-10 [project @ 2005-01-10 19:01:27 by panne]
810 dnl ** check for ld, whether it has an -x option, and if it is GNU ld
811 FP_PROG_LD_X
812 FP_PROG_LD_IS_GNU
d2f7d10f »
2001-06-26 [project @ 2001-06-26 23:12:19 by sof]
813
6f985ae8 »
2005-01-23 [project @ 2005-01-23 06:10:15 by wolfgang]
814 dnl ** check for Apple-style dead-stripping support
815 dnl (.subsections-via-symbols assembler directive)
816
817
818 AC_MSG_CHECKING(for .subsections_via_symbols)
60bbc36b »
2006-07-06 Replace deprecated AC_TRY_COMPILE macro with the reccomended replcament
819 AC_COMPILE_IFELSE(
820 [AC_LANG_PROGRAM([], [__asm__ (".subsections_via_symbols");])],
821 [AC_MSG_RESULT(yes)
822 AC_DEFINE([HAVE_SUBSECTIONS_VIA_SYMBOLS],[1],
823 [Define to 1 if Apple-style dead-stripping is supported.])
6f985ae8 »
2005-01-23 [project @ 2005-01-23 06:10:15 by wolfgang]
824 ],
60bbc36b »
2006-07-06 Replace deprecated AC_TRY_COMPILE macro with the reccomended replcament
825 [AC_MSG_RESULT(no)])
6f985ae8 »
2005-01-23 [project @ 2005-01-23 06:10:15 by wolfgang]
826
c4597dfe »
2006-07-06 Support the GNU non-exec stack annotation system
827 dnl *** check for GNU non-executable stack note support (ELF only)
828 dnl (.section .note.GNU-stack,"",@progbits)
829
830 AC_MSG_CHECKING(for GNU non-executable stack support)
831 AC_COMPILE_IFELSE(
832 [AC_LANG_PROGRAM([__asm__ (".section .note.GNU-stack,\"\",@progbits");], [0])],
833 [AC_MSG_RESULT(yes)
834 AC_DEFINE([HAVE_GNU_NONEXEC_STACK],[1],
835 [Define to 1 if GNU non-executable stack notes are supported.])
836 ],
837 [AC_MSG_RESULT(no)])
838
35a09de8 »
2005-11-03 [project @ 2005-11-03 11:00:40 by simonmar]
839 dnl ** check for librt
840 AC_CHECK_LIB(rt, clock_gettime)
e30aca19 »
2007-03-02 Use timer_create() for the interval timer, if available
841 AC_CHECK_FUNCS(clock_gettime timer_create timer_settime)
df7dc3fa »
2007-03-05 better autoconfery for timer_create()
842 FP_CHECK_TIMER_CREATE
35a09de8 »
2005-11-03 [project @ 2005-11-03 11:00:40 by simonmar]
843
de6f23d4 »
2005-07-15 [project @ 2005-07-15 02:00:15 by wolfgang]
844 dnl ** check for Apple's "interesting" long double compatibility scheme
0329ca6d »
2006-11-21 Fix printf$LDBLStub workaround for Darwin
845 AC_MSG_CHECKING(for printf\$LDBLStub)
846 AC_TRY_LINK_FUNC(printf\$LDBLStub,
de6f23d4 »
2005-07-15 [project @ 2005-07-15 02:00:15 by wolfgang]
847 [
848 AC_MSG_RESULT(yes)
849 AC_DEFINE([HAVE_PRINTF_LDBLSTUB],[1],
850 [Define to 1 if we have printf$LDBLStub (Apple Mac OS >= 10.4, PPC).])
851 ],
852 [
853 AC_MSG_RESULT(no)
854 AC_DEFINE([HAVE_PRINTF_LDBLSTUB],[0],
855 [Define to 1 if we have printf$LDBLStub (Apple Mac OS >= 10.4, PPC).])
856 ])
857
0065d5ab »
2006-04-07 Reorganisation of the source tree
858 # test for GTK+
859 AC_PATH_PROGS([GTK_CONFIG], [pkg-config])
860 if test -n "$GTK_CONFIG"; then
861 if $GTK_CONFIG gtk+-2.0 --atleast-version=2.0; then
862 GTK_CONFIG="$GTK_CONFIG gtk+-2.0"
863 else
864 AC_MSG_WARN([GTK+ not usable, need at least version 2.0])
865 GTK_CONFIG=
866 fi
867 fi
868 AC_SUBST([GTK_CONFIG])
de6f23d4 »
2005-07-15 [project @ 2005-07-15 02:00:15 by wolfgang]
869
14591e0d »
2006-11-09 Added configure gadgets to detect Papi, and fixed build problems
870 #Checking for PAPI
871 AC_CHECK_LIB(papi, PAPI_library_init, HavePapiLib=YES, HavePapiLib=NO)
872 AC_CHECK_HEADER([papi.h], [HavePapiHeader=YES], [HavePapiHeader=NO])
873 AC_SUBST(HavePapiLib)
874 AC_SUBST(HavePapiHeader)
875
e50c1ea3 »
2009-06-27 Add a configure test for whether or not __mingw_vfprintf exists
876 AC_CHECK_FUNCS(__mingw_vfprintf)
877
14591e0d »
2006-11-09 Added configure gadgets to detect Papi, and fixed build problems
878 if test "$HavePapiLib" = "YES" -a "$HavePapiHeader" = "YES"; then
e4e7b37c »
2006-11-20 reorganise PAPI configuration: off by default, even if library is found
879 HavePapi=YES
880 else
881 HavePapi=NO
14591e0d »
2006-11-09 Added configure gadgets to detect Papi, and fixed build problems
882 fi
e4e7b37c »
2006-11-20 reorganise PAPI configuration: off by default, even if library is found
883 AC_SUBST(HavePapi)
14591e0d »
2006-11-09 Added configure gadgets to detect Papi, and fixed build problems
884
f4ec2d0c »
2009-06-03 fix logic for BUID_DOCBOOK_HTML
885 if test "$HAVE_DOCBOOK_XSL" = "NO" ||
1cce2f51 »
2009-05-08 Handle deciding what docs to build better
886 test "$XsltprocCmd" = ""
887 then
888 BUILD_DOCBOOK_HTML=NO
889 else
890 BUILD_DOCBOOK_HTML=YES
891 fi
892 AC_SUBST(BUILD_DOCBOOK_HTML)
893
894 if test "$DblatexCmd" = ""
895 then
896 BUILD_DOCBOOK_PS=NO
897 BUILD_DOCBOOK_PDF=NO
898 else
899 BUILD_DOCBOOK_PS=YES
900 BUILD_DOCBOOK_PDF=YES
901 fi
902 AC_SUBST(BUILD_DOCBOOK_PS)
903 AC_SUBST(BUILD_DOCBOOK_PDF)
904
bfd79605 »
2010-02-23 Fix the links to the base docs from the user guide
905 LIBRARY_VERSION(base)
cfdf2515 »
2010-02-23 Fix more library links in the user guide
906 LIBRARY_VERSION(Cabal)
907 LIBRARY_VERSION(ghc-prim)
763598e4 »
2010-02-23 Fix the link to the ghc docs in libraries/prologue.txt
908 LIBRARY_ghc_VERSION="$ProjectVersion"
909 AC_SUBST(LIBRARY_ghc_VERSION)
bfd79605 »
2010-02-23 Fix the links to the base docs from the user guide
910
a6ce3525 »
2009-07-07 check for tabs in compiler/ghc.cabal.in (#3344)
911 if grep ' ' compiler/ghc.cabal.in 2>&1 >/dev/null; then
912 AC_MSG_ERROR([compiler/ghc.cabal.in contains tab characters; please remove them])
913 fi
914
763598e4 »
2010-02-23 Fix the link to the ghc docs in libraries/prologue.txt
915 AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml docs/users_guide/ug-ent.xml libraries/prologue.txt distrib/ghc.iss distrib/configure.ac])
ced47f78 »
2004-09-18 [project @ 2004-09-18 12:49:55 by panne]
916 AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h])
917 AC_OUTPUT
f21ba11b »
2009-02-01 Warn in configure if it looks like make 3.80 is about to be used
918
919 # We get caught by
920 # http://savannah.gnu.org/bugs/index.php?1516
921 # $(eval ...) inside conditionals causes errors
922 # with make 3.80, so warn the user if it looks like they're about to
923 # try to use it.
a664d738 »
2009-03-19 Work around Solaris's grep not supporting -q
924 # We would use "grep -q" here, but Solaris's grep doesn't support it.
f21ba11b »
2009-02-01 Warn in configure if it looks like make 3.80 is about to be used
925 checkMake380() {
a664d738 »
2009-03-19 Work around Solaris's grep not supporting -q
926 if $1 --version 2>&1 | head -1 | grep 'GNU Make 3\.80' > /dev/null
f21ba11b »
2009-02-01 Warn in configure if it looks like make 3.80 is about to be used
927 then
928 echo
929 echo "WARNING: It looks like \"$1\" is GNU make 3.80."
930 echo "This version cannot be used to build GHC."
931 echo "Please use GNU make >= 3.81."
932 fi
933 }
934
935 checkMake380 make
936 checkMake380 gmake
937
34cc75e1 »
2009-04-26 GHC new build system megapatch
938 echo ["
939 ----------------------------------------------------------------------
940 Configure completed successfully.
941
942 Building GHC version : $ProjectVersion
943
944 Build platform : $BuildPlatform
945 Host platform : $HostPlatform
946 Target platform : $TargetPlatform
947 "]
948
949 if test "$BootingFromHc" = "YES"; then
950 echo ["\
951 Bootstrapping from HC files.
952 "]
953 else
954 echo ["\
955 Bootstrapping using : $WithGhc
956 which is version : $GhcVersion
957 "]
958 fi
959
960 echo ["\
961 Using GCC : $WhatGccIsCalled
962 which is version : $GccVersion
963
964 ld : $LdCmd
c9a11cb4 »
2009-06-02 mention documentation tools in the summary; tidy up formatting
965 Happy : $HappyCmd ($HappyVersion)
966 Alex : $AlexCmd ($AlexVersion)
34cc75e1 »
2009-04-26 GHC new build system megapatch
967 Python : $PythonCmd
c9a11cb4 »
2009-06-02 mention documentation tools in the summary; tidy up formatting
968 Perl : $PerlCmd
969 dblatex : $DblatexCmd
970 xsltproc : $XsltprocCmd"]
34cc75e1 »
2009-04-26 GHC new build system megapatch
971
972 if test "$HSCOLOUR" = ""; then
973 echo ["
974 HsColour was not found; documentation will not contain source links
975 "]
976 else
977 echo ["\
978 HsColour : $HSCOLOUR
979 "]
980 fi
981
c9a11cb4 »
2009-06-02 mention documentation tools in the summary; tidy up formatting
982 echo ["\
983 Building DocBook HTML documentation : $BUILD_DOCBOOK_HTML
984 Building DocBook PS documentation : $BUILD_DOCBOOK_PS
dc9cde60 »
2009-08-17 Fix configure summary: --enable-shared has gone
985 Building DocBook PDF documentation : $BUILD_DOCBOOK_PDF"]
34cc75e1 »
2009-04-26 GHC new build system megapatch
986
987 echo ["----------------------------------------------------------------------
988 "]
989
990 echo "\
991 For a standard build of GHC (fully optimised with profiling), type (g)make.
992
993 To make changes to the default build configuration, copy the file
994 mk/build.mk.sample to mk/build.mk, and edit the settings in there.
995
996 For more information on how to configure your GHC build, see
997 http://hackage.haskell.org/trac/ghc/wiki/Building
998 "
Something went wrong with that request. Please try again.