1 dnl == autoconf source for the Glasgow FP tools ==
2 dnl (run "grep '^dnl \*' configure.ac | sed -e 's/dnl / /g; s/\*\*/ +/g;'"
3 dnl (or some such) to see the outline of this file)
6 # (c) The AQUA Project, Glasgow University, 1994-1998
8 # Configure script template for the Glasgow functional programming tools
10 # Process with 'autoconf' to get a working configure script.
12 # For the generated configure script, do "./configure --help" to
13 # see what flags are available. (Better yet, read the documentation!)
16 AC_INIT([fptools build system], [1.0], [cvs-fptools@haskell.org], [fptools])
18 # First off, a distrib sanity check..
19 AC_CONFIG_SRCDIR([mk/config.mk.in])
21 dnl * We require autoconf version 2.52
22 dnl We need 2.50 due to the use of AC_SYS_LARGEFILE and AC_MSG_NOTICE.
23 dnl We need 2.52 due to the use of AS_TR_CPP and AS_TR_SH.
26 dnl * Declare subdirectories that have a private configure script
28 dnl After the toplevel configuration is complete, the script will recurse into
29 dnl these subdirectories if they exist. The use of a cache file makes repeated
31 AC_CONFIG_SUBDIRS([ghc libraries])
33 # -------------------------------------------------------------------------
34 # Prepare to generate the following header files
37 AC_CONFIG_HEADER(mk/config.h)
39 # No, semi-sadly, we don't do `--srcdir'...
40 if test x"$srcdir" != 'x.' ; then
41 echo "This configuration does not support the \`--srcdir' option.."
45 dnl--------------------------------------------------------------------
46 dnl * Choose host(/target/build) platform
47 dnl--------------------------------------------------------------------
49 dnl Guess host/target/build platform(s) if necessary.
52 # "$host" defaults to "$target"
53 if test "x$host" = xNONE ; then
57 dnl ** canonicalize platform names
58 BuildPlatform=`/bin/sh $srcdir/config.sub $build` || exit 1
59 HostPlatform=`/bin/sh $srcdir/config.sub $host` || exit 1
60 TargetPlatform=`/bin/sh $srcdir/config.sub $target` || exit 1
62 if test x"$TargetPlatform" != x"$HostPlatform" ; then
63 echo "GHC configuration does not support differing host/target (i.e., cross-compiling)"
69 # The following will be more difficult when we *are* cross-compiling.
70 # Suitable names to slam in *_CPP are in platform.h.in.
71 # We also record the architecture, vendor, and operating system (OS)
74 alpha*-dec-osf[[12]]*)
75 HostPlatform=alpha-dec-osf1 # canonicalise for our purposes
76 TargetPlatform=alpha-dec-osf1 # this will work for now... (hack)
77 BuildPlatform=alpha-dec-osf1 # hack
78 HostPlatform_CPP='alpha_dec_osf1'
83 alpha*-dec-osf[[345]]*)
84 HostPlatform=alpha-dec-osf3 # canonicalise for our purposes
85 TargetPlatform=alpha-dec-osf3 # this will work for now... (hack)
86 BuildPlatform=alpha-dec-osf3 # hack
87 HostPlatform_CPP='alpha_dec_osf3'
92 alpha*-unknown-linux*)
93 HostPlatform=alpha-unknown-linux
94 TargetPlatform=alpha-unknown-linux
95 BuildPlatform=alpha-unknown-linux
96 HostPlatform_CPP='alpha_unknown_linux'
98 HostVendor_CPP='unknown'
101 alpha*-unknown-freebsd*)
102 HostPlatform=alpha-unknown-freebsd
103 TargetPlatform=alpha-unknown-freebsd
104 BuildPlatform=alpha-unknown-freebsd
105 HostPlatform_CPP='alpha_unknown_freebsd'
107 HostVendor_CPP='unknown'
110 alpha*-unknown-openbsd*)
111 HostPlatform=alpha-unknown-openbsd
112 TargetPlatform=alpha-unknown-openbsd
113 BuildPlatform=alpha-unknown-openbsd
114 HostPlatform_CPP='alpha_unknown_openbsd'
116 HostVendor_CPP='unknown'
119 amd64-*-openbsd*|x86_64-*-openbsd*)
120 HostPlatform=x86_64-unknown-openbsd
121 TargetPlatform=x86_64-unknown-openbsd
122 BuildPlatform=x86_64-unknown-openbsd
123 HostPlatform_CPP='x86_64_unknown_openbsd'
124 HostArch_CPP='x86_64'
125 HostVendor_CPP='unknown'
129 HostPlatform=arm-unknown-linux # hack again
130 TargetPlatform=arm-unknown-linux
131 BuildPlatform=arm-unknown-linux
132 HostPlatform_CPP='arm_unknown_linux'
134 HostVendor_CPP='unknown'
138 HostPlatform=arm-unknown-openbsd
139 TargetPlatform=arm-unknown-openbsd
140 BuildPlatform=arm-unknown-openbsd
141 HostPlatform_CPP='arm_unknown_openbsd'
143 HostVendor_CPP='unknown'
147 HostPlatform=hppa-unknown-linux # hack again
148 TargetPlatform=hppa-unknown-linux
149 BuildPlatform=hppa-unknown-linux
150 HostPlatform_CPP='hppa_unknown_linux'
152 HostVendor_CPP='unknown'
156 HostPlatform=hppa-unknown-openbsd # hack again
157 TargetPlatform=hppa-unknown-openbsd
158 BuildPlatform=hppa-unknown-openbsd
159 HostPlatform_CPP='hppa_unknown_openbsd'
161 HostVendor_CPP='unknown'
165 HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack)
166 TargetPlatform=hppa1.1-hp-hpux
167 BuildPlatform=hppa1.1-hp-hpux
168 HostPlatform_CPP='hppa1_1_hp_hpux'
169 HostArch_CPP='hppa1_1'
173 i[[3456]]86-*-linuxaout*)
174 HostPlatform=i386-unknown-linuxaout # hack again
175 TargetPlatform=i386-unknown-linuxaout
176 BuildPlatform=i386-unknown-linuxaout
177 HostPlatform_CPP='i386_unknown_linuxaout'
179 HostVendor_CPP='unknown'
180 HostOS_CPP='linuxaout'
182 i[[3456]]86-*-linux*)
183 HostPlatform=i386-unknown-linux # hack again
184 TargetPlatform=i386-unknown-linux
185 BuildPlatform=i386-unknown-linux
186 HostPlatform_CPP='i386_unknown_linux'
188 HostVendor_CPP='unknown'
191 i[[3456]]86-*-freebsd[[3-9]]*) # FreeBSD 3.0+ uses ELF
192 HostPlatform=i386-unknown-freebsd # hack again
193 TargetPlatform=i386-unknown-freebsd
194 BuildPlatform=i386-unknown-freebsd
195 HostPlatform_CPP='i386_unknown_freebsd'
197 HostVendor_CPP='unknown'
200 i[[3456]]86-*-freebsd2*) # Older FreeBSDs are a.out
201 HostPlatform=i386-unknown-freebsd2 # hack again
202 TargetPlatform=i386-unknown-freebsd2
203 BuildPlatform=i386-unknown-freebsd2
204 HostPlatform_CPP='i386_unknown_freebsd2'
206 HostVendor_CPP='unknown'
207 HostOS_CPP='freebsd2'
209 i[[3456]]86-*-netbsd*)
210 HostPlatform=i386-unknown-netbsd # hack again
211 TargetPlatform=i386-unknown-netbsd
212 BuildPlatform=i386-unknown-netbsd
213 HostPlatform_CPP='i386_unknown_netbsd'
215 HostVendor_CPP='unknown'
218 i[[3456]]86-*-openbsd*)
219 HostPlatform=i386-unknown-openbsd # hack again
220 TargetPlatform=i386-unknown-openbsd
221 BuildPlatform=i386-unknown-openbsd
222 HostPlatform_CPP='i386_unknown_openbsd'
224 HostVendor_CPP='unknown'
227 i[[3456]]86-*-solaris2*)
228 HostPlatform=i386-unknown-solaris2 # hack again
229 TargetPlatform=i386-unknown-solaris2
230 BuildPlatform=i386-unknown-solaris2
231 HostPlatform_CPP='i386_unknown_solaris2'
233 HostVendor_CPP='unknown'
234 HostOS_CPP='solaris2'
236 i[[3456]]86-*-cygwin*)
237 HostPlatform=i386-unknown-cygwin32 # hack again
238 TargetPlatform=i386-unknown-cygwin32
239 BuildPlatform=i386-unknown-cygwin32
240 HostPlatform_CPP='i386_unknown_cygwin32'
242 HostVendor_CPP='unknown'
243 HostOS_CPP='cygwin32'
246 i[[3456]]86-*-mingw32*)
247 HostPlatform=i386-unknown-mingw32 # hack again
248 TargetPlatform=i386-unknown-mingw32
249 BuildPlatform=i386-unknown-mingw32
250 HostPlatform_CPP='i386_unknown_mingw32'
252 HostVendor_CPP='unknown'
257 HostPlatform=ia64-unknown-linux # hack again
258 TargetPlatform=ia64-unknown-linux
259 BuildPlatform=ia64-unknown-linux
260 HostPlatform_CPP='ia64_unknown_linux'
262 HostVendor_CPP='unknown'
266 HostPlatform=x86_64-unknown-linux
267 TargetPlatform=x86_64-unknown-linux
268 BuildPlatform=x86_64-unknown-linux
269 HostPlatform_CPP='x86_64_unknown_linux'
270 HostArch_CPP='x86_64'
271 HostVendor_CPP='unknown'
275 HostPlatform=m68k-unknown-linux # hack again
276 TargetPlatform=m68k-unknown-linux
277 BuildPlatform=m68k-unknown-linux
278 HostPlatform_CPP='m68k_unknown_linux'
280 HostVendor_CPP='unknown'
284 HostPlatform_CPP='m68k_next_nextstep2'
286 HostVendor_CPP='next'
287 HostOS_CPP='nextstep2'
290 HostPlatform_CPP='m68k_next_nextstep3'
292 HostVendor_CPP='next'
293 HostOS_CPP='nextstep3'
295 i[[3456]]86-next-nextstep3)
296 HostPlatform=i386-next-nextstep3 # hack again
297 TargetPlatform=i386-next-nextstep3
298 BuildPlatform=i386-next-nextstep3
299 HostPlatform_CPP='i386_next_nextstep3'
301 HostVendor_CPP='next'
302 HostOS_CPP='nextstep3'
305 HostPlatform=m68k-unknown-openbsd
306 TargetPlatform=m68k-unknown-openbsd
307 BuildPlatform=m68k-unknown-openbsd
308 HostPlatform_CPP='m68k_unknown_openbsd'
310 HostVendor_CPP='unknown'
314 HostPlatform=m68k-unknown-netbsd
315 TargetPlatform=m68k-unknown-netbsd
316 BuildPlatform=m68k-unknown-netbsd
317 HostPlatform_CPP='m68k_unknown_netbsd'
319 HostVendor_CPP='unknown'
323 HostPlatform=m68k-sun-sunos4
324 TargetPlatform=m68k-sun-sunos4 #hack
325 BuildPlatform=m68k-sun-sunos4 #hack
326 HostPlatform_CPP='m68k_sun_sunos4'
332 HostPlatform=m88k-unknown-openbsd
333 TargetPlatform=m88k-unknown-openbsd
334 BuildPlatform=m88k-unknown-openbsd
335 HostPlatform_CPP='m88k_unknown_openbsd'
337 HostVendor_CPP='unknown'
341 HostPlatform=mips-unknown-linux # hack again
342 TargetPlatform=mips-unknown-linux
343 BuildPlatform=mips-unknown-linux
344 HostPlatform_CPP='mips_unknown_linux'
346 HostVendor_CPP='unknown'
350 HostPlatform_CPP='mips_dec_ultrix'
351 HostArch_CPP='mipsel' # NB a little different
356 HostPlatform=mips-sgi-irix
357 TargetPlatform=mips-sgi-irix #hack
358 BuildPlatform=mips-sgi-irix #hack
359 HostPlatform_CPP='mips_sgi_irix'
360 HostArch_CPP='mipseb' # NB a little different
365 HostPlatform=rs6000-ibm-aix
366 TargetPlatform=rs6000-ibm-aix #hack
367 BuildPlatform=rs6000-ibm-aix #hack
368 HostPlatform_CPP='rs6000_ibm_aix'
369 HostArch_CPP='rs6000'
374 HostPlatform=powerpc-ibm-aix
375 TargetPlatform=powerpc-ibm-aix #hack
376 BuildPlatform=powerpc-ibm-aix #hack
377 HostPlatform_CPP='powerpc_ibm_aix'
378 HostArch_CPP='powerpc'
382 powerpc-apple-darwin*)
383 HostPlatform=powerpc-apple-darwin
384 TargetPlatform=powerpc-apple-darwin #hack
385 BuildPlatform=powerpc-apple-darwin #hack
386 HostPlatform_CPP='powerpc_apple_darwin'
387 HostArch_CPP='powerpc'
388 HostVendor_CPP='apple'
391 powerpc-unknown-linux*)
392 HostPlatform=powerpc-unknown-linux
393 TargetPlatform=powerpc-unknown-linux
394 BuildPlatform=powerpc-unknown-linux
395 HostPlatform_CPP='powerpc_unknown_linux'
396 HostArch_CPP='powerpc'
397 HostVendor_CPP='unknown'
400 powerpc-unknown-openbsd*)
401 HostPlatform=powerpc-unknown-openbsd
402 TargetPlatform=powerpc-unknown-openbsd
403 BuildPlatform=powerpc-unknown-openbsd
404 HostPlatform_CPP='powerpc_unknown_openbsd'
405 HostArch_CPP='powerpc'
406 HostVendor_CPP='unknown'
410 HostPlatform=s390-ibm-linux
411 TargetPlatform=s390-ibm-linux #hack
412 BuildPlatform=s390-ibm-linux #hack
413 HostPlatform_CPP='s390_ibm_linux'
419 HostPlatform=sparc-sun-sunos4
420 TargetPlatform=sparc-sun-sunos4 #hack
421 BuildPlatform=sparc-sun-sunos4 #hack
422 HostPlatform_CPP='sparc_sun_sunos4'
428 HostPlatform=sparc-sun-solaris2
429 TargetPlatform=sparc-sun-solaris2 #hack
430 BuildPlatform=sparc-sun-solaris2 #hack
431 HostPlatform_CPP='sparc_sun_solaris2'
434 HostOS_CPP='solaris2'
437 HostPlatform=sparc-unknown-linux
438 TargetPlatform=sparc-unknown-linux
439 BuildPlatform=sparc-unknown-linux
440 HostPlatform_CPP='sparc_unknown_linux'
442 HostVendor_CPP='unknown'
446 HostPlatform=sparc-unknown-openbsd
447 TargetPlatform=sparc-unknown-openbsd
448 BuildPlatform=sparc-unknown-openbsd
449 HostPlatform_CPP='sparc_unknown_openbsd'
451 HostVendor_CPP='unknown'
455 HostPlatform=sparc64-unknown-openbsd
456 TargetPlatform=sparc64-unknown-openbsd
457 BuildPlatform=sparc64-unknown-openbsd
458 HostPlatform_CPP='sparc64_unknown_openbsd'
459 HostArch_CPP='sparc64'
460 HostVendor_CPP='unknown'
464 HostPlatform=vax-unknown-openbsd
465 TargetPlatform=vax-unknown-openbsd
466 BuildPlatform=vax-unknown-openbsd
467 HostPlatform_CPP='vax_unknown_openbsd'
469 HostVendor_CPP='unknown'
473 echo "Unrecognised platform: $HostPlatform"
477 echo "Canonicalised to: $HostPlatform"
478 test x"$HostPlatform" != x"$TargetPlatform" && echo "Target platform set to $TargetPlatform"
479 test x"$BuildPlatform" != x"$HostPlatform" && echo "Build platform set to $BuildPlatform"
481 BuildPlatform_CPP=$HostPlatform_CPP
482 TargetPlatform_CPP=$HostPlatform_CPP
483 BuildArch_CPP=$HostArch_CPP
484 TargetArch_CPP=$HostArch_CPP
485 BuildOS_CPP=$HostOS_CPP
487 TargetOS_CPP=$HostOS_CPP
488 BuildVendor_CPP=$HostVendor_CPP
489 TargetVendor_CPP=$HostVendor_CPP
491 AC_SUBST(BuildPlatform)
492 AC_SUBST(HostPlatform)
493 AC_SUBST(TargetPlatform)
494 AC_SUBST(HostPlatform_CPP)
495 AC_SUBST(BuildPlatform_CPP)
496 AC_SUBST(TargetPlatform_CPP)
498 AC_SUBST(HostArch_CPP)
499 AC_SUBST(BuildArch_CPP)
500 AC_SUBST(TargetArch_CPP)
503 AC_SUBST(HostOS_Full)
504 AC_SUBST(BuildOS_CPP)
505 AC_SUBST(TargetOS_CPP)
507 AC_SUBST(HostVendor_CPP)
508 AC_SUBST(BuildVendor_CPP)
509 AC_SUBST(TargetVendor_CPP)
513 dnl --------------------------------------------------------------
514 dnl * Calculate absolute path to build tree
515 dnl --------------------------------------------------------------
517 AC_MSG_CHECKING(for path to top of build tree)
521 dnl Remove common automounter nonsense
523 hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|' | sed 's|^//\(.\)/|\1:/|' `
525 dnl Find 'hardtop_plat', the native format for 'hardtop'
526 dnl (i.e., right kind of \dnl slashes on a Win32 box, but with b-slashes being escaped).
528 dnl Note OSTYPE: On Cygwin we need to use 'cygpath' to convert /cygdrive/c/foo to c:/foo
529 dnl but we must not do that if we aren't building using Cygwin (notably msys),
530 dnl because cygpath doesn't exist. It seems that 'bash' sets OSTYPE to 'cygwin'
531 dnl or 'msys' respectively, but cygwin's 'sh' does not. So we hackily assume
532 dnl that if the shell hasn't set it to 'msys' then we must be in Cygwin. Sigh.
534 dnl The Right Thing is probably to test $BuildPlatform instead, but we are sloppy
535 dnl about setting that correctly at the moment, so we just work around for now.
537 dnl The quotes round "$(OSTYPE)" are essential, for the Cygwin-sh case where OSTYPE
539 case $HostPlatform in
540 i386-unknown-mingw32 | i386-unknown-cygwin32)
541 if test "${OSTYPE}" != "msys"
543 # convert $hardtop to a path that mingw will understand too
544 cyghardtop=${hardtop}
545 hardtop=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@/@g'`
546 hardtop_plat=`cygpath -w ${cyghardtop} | sed -e 's@\\\\@\\\\\\\\@g'`
548 hardtop_plat=${hardtop}
552 hardtop_plat=${hardtop}
556 AC_SUBST(hardtop_plat)
558 AC_MSG_RESULT(${hardtop})
560 dnl --------------------------------------------------------------
561 dnl * Project specific configuration options
562 dnl --------------------------------------------------------------
563 dnl What follows is a bunch of options that can either be configured
564 dnl through command line options to the configure script or by
565 dnl supplying defns in the build tree's mk/build.mk. Having the option to
566 dnl use either is considered a Feature.
568 dnl ** What command to use to compile compiler sources ?
569 dnl --------------------------------------------------------------
572 [AC_HELP_STRING([--with-ghc=ARG],
573 [Use ARG as the path to GHC [default=autodetect]])],
574 [ WithGhc="$withval" ],
576 if test "$GHC" = ""; then
577 AC_PATH_PROG(GHC,ghc)
584 [AC_HELP_STRING([--with-hc=ARG],
585 [Use ARG as the path to the compiler for compiling ordinary
586 Haskell code (default= value of --with-ghc)])],
592 if test "$WithGhc" != ""; then
593 FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
594 AC_SUBST(GhcVersion)dnl
595 AC_SUBST(GhcMajVersion)dnl
596 AC_SUBST(GhcMinVersion)dnl
597 AC_SUBST(GhcPatchLevel)dnl
600 AC_PATH_PROGS(NHC,nhc nhc98)
601 AC_PATH_PROG(HBC,hbc)
603 dnl ** Which gcc to use?
604 dnl --------------------------------------------------------------
606 [AC_HELP_STRING([--with-gcc=ARG],
607 [Use ARG as the path to GCC [default=autodetect]])],
608 [WhatGccIsCalled="$withval"
609 if test "x$HostPlatform" = "xi386-unknown-mingw32"
611 if test "${OSTYPE}" != "msys"
613 # Canonicalise to <drive>:/path/to/gcc
614 withval=`cygpath -w ${withval} | sed -e 's@\\\\@/@g' `
618 [WhatGccIsCalled="gcc"]
620 AC_SUBST(WhatGccIsCalled)
622 dnl ** Booting from .hc files?
623 dnl --------------------------------------------------------------
624 AC_ARG_ENABLE(hc-boot,
625 [AC_HELP_STRING([--enable-hc-boot],
626 [Boot the Glasgow Haskell Compiler from intermediate .hc files.
627 (This option is mostly of interest to porters.) [default=no]])],
628 [ if test x"$enableval" = x"yes"; then
636 AC_SUBST(BootingFromHc)
638 dnl ** Booting from unregisterised .hc files?
639 dnl --------------------------------------------------------------
640 AC_ARG_ENABLE(hc-boot-unregisterised,
641 [AC_HELP_STRING([--enable-hc-boot-unregisterised],
642 [ With --enable-hc-boot, treat the intermediate .hc files as
643 unregisterised rather than registerised code.
644 (This option is mostly of interest to porters.) [default=no]])],
645 [ if test x"$enableval" = x"yes"; then
646 BootingFromUnregisterisedHc=YES
648 BootingFromUnregisterisedHc=NO
651 [BootingFromUnregisterisedHc=NO]
653 AC_SUBST(BootingFromUnregisterisedHc)
655 if test "$BootingFromHc" = "NO"; then
656 if test "$BootingFromUnregisterisedHc" = "YES"; then
657 AC_MSG_ERROR([--enable-hc-boot-unregisterised requires --enable-hc-boot.])
661 dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on
662 if test "$BootingFromHc" = "NO" -a "$WithGhc" = "" -a -d "$srcdir/ghc"; then
663 AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
666 dnl ** --enable-threaded-rts (not used any more)
667 dnl --------------------------------------------------------------
668 AC_ARG_ENABLE(threaded-rts,
669 [AC_HELP_STRING([--enable-threaded-rts],
670 [DEPRECATED (backwards compatibility only). [default=no]])],
671 [ if test x"$enableval" = x"yes"; then
679 AC_SUBST(ThreadedRts)
681 dnl ** Enable the construction of Win32 DLLs?
682 dnl --------------------------------------------------------------
684 dnl [ The ability to build the RTS and libraries as separate DLLs used
685 dnl to be supported, but isn't currently (updates to the RTS, compiler
686 dnl and build system would be required to bring it back again.)
687 dnl Hence, exposing it as an option is false advertisement, so better
688 dnl disable it to avoid confusion (but leave it commented-out rather
689 dnl than removed in order to remind ourselves to bring back the
690 dnl feature at some stage.) ]
692 dnl AC_ARG_ENABLE(win32-dlls,
693 dnl [ --enable-win32-dlls
694 dnl If on a Win32 platform running mingw32/cygwin, enable the
695 dnl construction of DLLs containing ghc-compiled code.
698 dnl case $HostOS_CPP in
701 dnl *) echo "Unrecognised win32 platform: $HostPlatform"
705 dnl EnableWin32DLLs=YES
707 dnl [EnableWin32DLLs=NO]
709 dnl AC_SUBST(EnableWin32DLLs)
710 dnl if test x"$EnableWin32DLLs" = "xYES" ; then
711 dnl AC_DEFINE(HAVE_WIN32_DLL_SUPPORT)
714 dnl ** Enable the building of the ObjectIO?
715 dnl --------------------------------------------------------------
716 AC_ARG_ENABLE(objectio,
717 [AC_HELP_STRING([--enable-objectio],
718 [Build ObjectIO, a portable GUI library for Haskell. [default=no]])],
719 [ if test x"$enableval" = x"yes"; then
720 GhcLibsWithObjectIO=YES
722 GhcLibsWithObjectIO=NO
725 [GhcLibsWithObjectIO=NO]
727 AC_SUBST(GhcLibsWithObjectIO)
729 dnl ** Enable the building of the OpenAL binding?
730 dnl --------------------------------------------------------------
731 AC_ARG_ENABLE([openal],
732 AC_HELP_STRING([--enable-openal],
733 [Build OpenAL binding [[default=autodetect]]]),
734 [ if test x"$enableval" = x"yes"; then
735 GhcLibsWithOpenAL=YES
740 [GhcLibsWithOpenAL=YES])
742 AC_SUBST([GhcLibsWithOpenAL])
744 dnl ** .NET interop support?
745 dnl --------------------------------------------------------------
746 AC_ARG_ENABLE(dotnet,
747 [AC_HELP_STRING([--enable-dotnet],
748 [Build .NET interop layer. [default=no]])],
749 [ if test x"$enableval" = x"yes"; then
750 DotnetSupport=YES; AC_DEFINE([WANT_DOTNET_SUPPORT], [1], [Define to 1 if you want to include .NET interop support.])
756 AC_SUBST(DotnetSupport)
758 dnl --------------------------------------------------------------
759 dnl End of configure script option section
760 dnl --------------------------------------------------------------
763 dnl --------------------------------------------------------------
764 dnl * General configuration checks
765 dnl --------------------------------------------------------------
767 dnl ** Can the unix package be built?
768 dnl --------------------------------------------------------------
770 if test x"$TargetPlatform" = x"i386-unknown-mingw32"; then
775 AC_SUBST([GhcLibsWithUnix])
780 dnl ** look for `perl', but only in /bin on Windows
783 AC_CHECK_PROG(PerlCmd,perl,/bin/perl,,/bin)
784 if test -z "$PerlCmd"; then
785 echo "You must install the version of Perl shipped with GHC"
786 echo "(or a compatible one) in /bin."
791 AC_PATH_PROG(PerlCmd,perl)
792 if test -z "$PerlCmd"; then
793 echo "You must install perl before you can continue"
794 echo "Perhaps it is already installed, but not in your PATH?"
797 FPTOOLS_CHECK_PERL_VERSION
802 dnl ** does #! path/to/perl work? (sometimes it's too long...)
805 dnl ** check for Python
806 AC_PATH_PROG(PythonCmd,python)
808 dnl ** look for GCC and find out which version
809 dnl Figure out which C compiler to use. Gcc is preferred.
810 dnl If gcc, make sure it's at least 2.1
814 FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR
816 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
819 dnl ** Without optimization some INLINE trickery fails for GHCi
822 dnl ** Try to add -mno-cygwin to the C compiler options
823 FP_CHECK_FLAG([-mno-cygwin], [
824 SRC_CC_OPTS="-mno-cygwin $SRC_CC_OPTS"
825 CPPFLAGS="-mno-cygwin $CPPFLAGS"])
826 AC_SUBST(SRC_CC_OPTS)
828 dnl ** figure out how to do context diffs
831 dnl ** Find find command (for Win32's benefit)
834 dnl ** figure out how to do a BSD-ish install
837 dnl If you can run configure, you certainly have /bin/sh
838 AC_DEFINE([HAVE_BIN_SH], [1], [Define to 1 if you have /bin/sh.])
840 dnl ** how to invoke `ar' and `ranlib'
841 FP_PROG_AR_NEEDS_RANLIB
842 FP_PROG_AR_SUPPORTS_INPUT
844 dnl ** Check to see whether ln -s works
848 dnl ** Find the path to sed
849 AC_PATH_PROG(SedCmd,sed)
852 dnl ** check for time command
853 AC_PATH_PROG(TimeCmd,time)
856 dnl if GNU tar is named gtar, look for it first.
857 AC_PATH_PROGS(TarCmd,gtar tar,tar)
859 dnl ** check for DocBook toolchain
861 FP_DIR_DOCBOOK_XSL([/usr/share/xml/docbook/stylesheet/nwalsh/current /usr/share/xml/docbook/stylesheet/nwalsh /usr/share/sgml/docbook/docbook-xsl-stylesheets* /usr/share/sgml/docbook/xsl-stylesheets* /opt/kde?/share/apps/ksgmltools2/docbook/xsl /usr/share/docbook-xsl /usr/share/sgml/docbkxsl])
864 dnl ** check for ghc-pkg command
867 dnl Check whether this GHC has readline installed
868 FPTOOLS_GHC_HAS_READLINE
870 AC_ARG_WITH(greencard,
871 [AC_HELP_STRING([--with-greencard=ARG],
872 [Use ARG as the path to greencard [default=autodetct]])],
874 GreenCardCmd=$withval;
875 FPTOOLS_GREENCARD(3.00)
879 AC_ARG_ENABLE(src-tree-happy,
880 [AC_HELP_STRING([--enable-src-tree-happy],
881 [Build and use source tree (fptools/happy) version of Happy.
882 [default=autodetect]])],
883 [ if test x"$enableval" = x"yes"; then
891 dnl ** check for installed happy binary + version
892 dnl (don't do it if we're booting from .hc files though.)
893 if test "$BootingFromHc" = "NO"; then
897 AC_ARG_ENABLE(src-tree-haddock,
898 [AC_HELP_STRING([--enable-src-tree-haddock],
899 [Build and use source tree (fptools/haddock) version of Haddock.
900 [default=autodetect]])],
901 [ if test x"$enableval" = x"yes"; then
902 UseSrcTreeHaddock=YES
907 [UseSrcTreeHaddock=NO]
909 dnl ** check for installed haddock
912 AC_ARG_ENABLE(src-tree-alex,
913 [AC_HELP_STRING([--enable-src-tree-alex],
914 [Build and use source tree (fptools/alex) version of Alex.
915 [default=autodetect]])],
916 [ if test x"$enableval" = x"yes"; then
924 dnl ** check for installed alex binary + version
925 dnl (don't do it if we're booting from .hc files though.)
926 if test "$BootingFromHc" = "NO"; then
930 dnl --------------------------------------------------
931 dnl ### program checking section ends here ###
932 dnl --------------------------------------------------
934 dnl --------------------------------------------------
935 dnl * Platform header file and syscall feature tests
936 dnl ### checking the state of the local header files and syscalls ###
938 dnl ** check for full ANSI header (.h) files
941 dnl ** Enable large file support. NB. do this before testing the type of
942 dnl off_t, because it will affect the result of that test.
945 dnl ** check for specific header (.h) files that we are interested in
946 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/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])
948 AC_CHECK_HEADER([unistd.h], [AC_CHECK_FUNCS(lchown)])
950 AC_CHECK_HEADER([readline/readline.h], [HaveReadlineReadlineH=YES], [HaveReadlineReadlineH=NO])
951 AC_CHECK_HEADER([readline/history.h], [HaveReadlineHistoryH=YES], [HaveReadlineHistoryH=NO])
953 if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then
954 GhcLibsWithReadline=YES
955 AC_DEFINE([HAVE_READLINE_HEADERS], [1], [Define to 1 if readline/readline.h and readline/history.h exist.])
957 GhcLibsWithReadline=NO
958 AC_DEFINE([HAVE_READLINE_HEADERS], [0], [Define to 1 if readline/readline.h and readline/history.h exist.])
960 AC_SUBST(GhcLibsWithReadline)
962 dnl ** check for OpenGL/GLUT include paths and libraries
965 if test x"$no_GLU" = xyes; then
968 GhcLibsWithOpenGL=YES
970 AC_SUBST([GhcLibsWithOpenGL])
972 if test x"$no_GLUT" = xyes; then
977 AC_SUBST([GhcLibsWithGLUT])
979 dnl ** check for OpenGL include files
980 fp_save_cppflags="$CPPFLAGS"
981 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
982 if test x"$use_quartz_opengl" = xyes; then
983 AC_CHECK_HEADERS([OpenGL/gl.h])
985 AC_CHECK_HEADERS([GL/gl.h])
987 CPPFLAGS="$fp_save_cppflags"
989 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
992 dnl ** check for POSIX regex
994 AC_CHECK_HEADERS([regex.h], [AC_CHECK_FUNCS(regcomp, [HavePosixRegex=YES])])
995 AC_SUBST(HavePosixRegex)
997 dnl ** how do we get a timezone name, and UTC offset ?
1000 dnl ** do we have altzone?
1003 dnl ** do we have long longs?
1004 AC_CHECK_TYPES([long long])
1006 dnl ** what are the sizes of various types
1007 AC_CHECK_SIZEOF(char, 1)
1008 AC_CHECK_SIZEOF(double, 8)
1009 AC_CHECK_SIZEOF(float, 4)
1010 AC_CHECK_SIZEOF(int, 4)
1011 AC_CHECK_SIZEOF(long, 4)
1012 if test "$ac_cv_type_long_long" = yes; then
1013 AC_CHECK_SIZEOF(long long, 8)
1015 AC_CHECK_SIZEOF(short, 2)
1016 AC_CHECK_SIZEOF(unsigned char, 1)
1017 AC_CHECK_SIZEOF(unsigned int, 4)
1018 AC_CHECK_SIZEOF(unsigned long, 4)
1019 if test "$ac_cv_type_long_long" = yes; then
1020 AC_CHECK_SIZEOF(unsigned long long, 8)
1022 AC_CHECK_SIZEOF(unsigned short, 2)
1023 AC_CHECK_SIZEOF(void *, 4)
1025 dnl ** what are alignment constraints on various types
1026 FP_CHECK_ALIGNMENT(char)
1027 FP_CHECK_ALIGNMENT(double)
1028 FP_CHECK_ALIGNMENT(float)
1029 FP_CHECK_ALIGNMENT(int)
1030 FP_CHECK_ALIGNMENT(long)
1031 if test "$ac_cv_type_long_long" = yes; then
1032 FP_CHECK_ALIGNMENT(long long)
1034 FP_CHECK_ALIGNMENT(short)
1035 FP_CHECK_ALIGNMENT(unsigned char)
1036 FP_CHECK_ALIGNMENT(unsigned int)
1037 FP_CHECK_ALIGNMENT(unsigned long)
1038 if test "$ac_cv_type_long_long" = yes; then
1039 FP_CHECK_ALIGNMENT(unsigned long long)
1041 FP_CHECK_ALIGNMENT(unsigned short)
1042 FP_CHECK_ALIGNMENT(void *)
1044 dnl ** map standard C types and ISO types to Haskell types
1045 FPTOOLS_CHECK_HTYPE(char)
1046 FPTOOLS_CHECK_HTYPE(signed char)
1047 FPTOOLS_CHECK_HTYPE(unsigned char)
1048 FPTOOLS_CHECK_HTYPE(short)
1049 FPTOOLS_CHECK_HTYPE(unsigned short)
1050 FPTOOLS_CHECK_HTYPE(int)
1051 FPTOOLS_CHECK_HTYPE(unsigned int)
1052 FPTOOLS_CHECK_HTYPE(long)
1053 FPTOOLS_CHECK_HTYPE(unsigned long)
1054 if test "$ac_cv_type_long_long" = yes; then
1055 FPTOOLS_CHECK_HTYPE(long long)
1056 FPTOOLS_CHECK_HTYPE(unsigned long long)
1058 FPTOOLS_CHECK_HTYPE(float)
1059 FPTOOLS_CHECK_HTYPE(double)
1060 FPTOOLS_CHECK_HTYPE(ptrdiff_t)
1061 FPTOOLS_CHECK_HTYPE(size_t)
1062 FPTOOLS_CHECK_HTYPE(wchar_t)
1063 dnl Int32 is a HACK for non-ISO C compilers
1064 FPTOOLS_CHECK_HTYPE(sig_atomic_t, Int32)
1065 FPTOOLS_CHECK_HTYPE(clock_t)
1066 FPTOOLS_CHECK_HTYPE(time_t)
1067 FPTOOLS_CHECK_HTYPE(dev_t, Word32)
1068 FPTOOLS_CHECK_HTYPE(ino_t)
1069 FPTOOLS_CHECK_HTYPE(mode_t)
1070 FPTOOLS_CHECK_HTYPE(off_t)
1071 FPTOOLS_CHECK_HTYPE(pid_t)
1072 FPTOOLS_CHECK_HTYPE(gid_t)
1073 FPTOOLS_CHECK_HTYPE(uid_t)
1074 FPTOOLS_CHECK_HTYPE(cc_t)
1075 FPTOOLS_CHECK_HTYPE(speed_t)
1076 FPTOOLS_CHECK_HTYPE(tcflag_t)
1077 FPTOOLS_CHECK_HTYPE(blkcnt_t)
1078 FPTOOLS_CHECK_HTYPE(nlink_t)
1079 FPTOOLS_CHECK_HTYPE(ssize_t)
1080 FPTOOLS_CHECK_HTYPE(rlim_t)
1081 FPTOOLS_CHECK_HTYPE(wint_t)
1083 dnl ** Map OpenGL data types to Haskell types
1084 if test $GhcLibsWithOpenGL = YES ; then
1085 FPTOOLS_CHECK_HTYPE(GLboolean)
1086 FPTOOLS_CHECK_HTYPE(GLbyte)
1087 FPTOOLS_CHECK_HTYPE(GLubyte)
1088 FPTOOLS_CHECK_HTYPE(GLshort)
1089 FPTOOLS_CHECK_HTYPE(GLushort)
1090 FPTOOLS_CHECK_HTYPE(GLint)
1091 FPTOOLS_CHECK_HTYPE(GLuint)
1092 FPTOOLS_CHECK_HTYPE(GLsizei)
1093 FPTOOLS_CHECK_HTYPE(GLenum)
1094 FPTOOLS_CHECK_HTYPE(GLbitfield)
1095 FPTOOLS_CHECK_HTYPE(GLfloat)
1096 FPTOOLS_CHECK_HTYPE(GLclampf)
1097 FPTOOLS_CHECK_HTYPE(GLdouble)
1098 FPTOOLS_CHECK_HTYPE(GLclampd)
1101 FP_CHECK_CONSTS([E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EADV EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBADRPC EBUSY ECHILD ECOMM ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDIRTY EDOM EDQUOT EEXIST EFAULT EFBIG EFTYPE EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENONET ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROCUNAVAIL EPROGMISMATCH EPROGUNAVAIL EPROTO EPROTONOSUPPORT EPROTOTYPE ERANGE EREMCHG EREMOTE EROFS ERPCMISMATCH ERREMOTE ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESRMNT ESTALE ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV], [#include <stdio.h>
1102 #include <errno.h>])
1104 dnl ** can we open files in binary mode?
1105 FP_CHECK_CONST([O_BINARY], [#include <fcntl.h>], [0])
1107 FP_CHECK_FUNC([WinExec],
1108 [@%:@include <windows.h>], [WinExec("",0)])
1110 FP_CHECK_FUNC([GetModuleFileName],
1111 [@%:@include <windows.h>], [GetModuleFileName((HMODULE)0,(LPTSTR)0,0)])
1113 dnl ** check return type of signal handlers
1114 dnl Foo: assumes we can use prototypes.
1115 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
1116 dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler,
1117 dnl [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1118 dnl #include <signal.h>
1122 dnl void (*signal (int, void (*)(int)))(int);
1125 dnl [ac_cv_type_signal_handler=void_int],
1126 dnl [ac_cv_type_signal_handler=int_void])])
1127 dnl if test "$ac_cv_type_signal_handler" = void_int; then
1128 dnl AC_DEFINE(VOID_INT_SIGNALS)
1131 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
1133 if test "$ac_cv_type_signal" = void; then
1134 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).])
1137 dnl ** check for more functions
1138 AC_CHECK_FUNCS([ftime getclock getgrgid_r getgrnam_r getpagesize getpwnam_r getpwuid_r getpwnam getpwuid getrusage gettimeofday gmtime_r localtime_r lstat readdir_r readlink setenv setitimer siginterrupt symlink sysconf times unsetenv])
1140 dnl ** Solaris2 needs additionl flag for getpw*_r()
1141 case "$TargetPlatform" in
1143 unix_SRC_HSC2HS_OPTS="-D_POSIX_PTHREAD_SEMANTICS"
1144 AC_SUBST(unix_SRC_HSC2HS_OPTS)
1148 dnl ** check whether this machine has gmp3 installed
1149 AC_CHECK_LIB(gmp, __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
1150 AC_CHECK_LIB(gmp3, __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp3,
1151 HaveLibGmp=NO; LibGmp=not-installed))
1152 AC_SUBST(HaveLibGmp)
1155 dnl ** (Mac OS X only: check for HaskellSupport.framework)
1156 HaveFrameworkHaskellSupport=NO
1157 if test $HostPlatform = "powerpc-apple-darwin"; then
1158 AC_MSG_CHECKING([for HaskellSupport.framework])
1160 LIBS="-framework HaskellSupport"
1161 AC_TRY_LINK_FUNC(__gmpz_fdiv_qr, HaveFrameworkHaskellSupport=YES,)
1162 if test $HaveFrameworkHaskellSupport = YES; then
1163 AC_DEFINE([HAVE_FRAMEWORK_HASKELLSUPPORT], [1], [Define to 1 if the HaskellSupport.framework is installed (Mac OS X only).])
1166 AC_MSG_RESULT([$HaveFrameworkHaskellSupport])
1168 AC_SUBST(HaveFrameworkHaskellSupport)
1170 dnl ** check for mingwex library
1171 AC_CHECK_LIB(mingwex, closedir, HaveLibMingwEx=YES, HaveLibMingwEx=NO)
1172 AC_SUBST(HaveLibMingwEx)
1174 if test $HaveLibMingwEx = YES ; then
1175 AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.])
1178 if test "$HaveLibGmp" = "NO"; then
1179 if test "$HostArch_CPP" = "ia64" -o "$HostArch_CPP" = "mipseb" ; then
1180 AC_MSG_ERROR([You need to install libgmp (the in-tree version does not work on IA64 or mips64).])
1184 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
1185 dnl the order of these tests matters: bfd needs liberty
1186 AC_CHECK_LIB(iberty, xmalloc)
1187 AC_CHECK_LIB(bfd, bfd_init)
1189 dnl ** check for wide-char classifications
1190 dnl FreeBSD has an emtpy wctype.h, so test one of the affected
1191 dnl functions if it's really there.
1192 AC_CHECK_HEADERS([wctype.h], [AC_CHECK_FUNCS(iswspace)])
1194 dnl ** check for readline, for Hugs and hslibs' Readline
1195 dnl ncurses supersedes termcap and curses, but for compatibility,
1196 dnl we have to check for all...
1197 AC_CHECK_LIB(ncurses, tputs, HaveLibTermcap=YES; LibTermcap=ncurses,
1198 AC_CHECK_LIB(termcap, tputs, HaveLibTermcap=YES; LibTermcap=termcap,
1199 AC_CHECK_LIB(curses, tputs, HaveLibTermcap=YES; LibTermcap=curses,
1200 HaveLibTermcap=NO; LibTermcap=not-installed)))
1202 if test $HaveLibTermcap = YES ; then
1203 LIBS="-l$LibTermcap $LIBS"
1204 AC_CHECK_LIB(readline, readline, HaveLibReadline=YES, HaveLibReadline=NO)
1207 if test $HaveLibTermcap = YES && test x"$HaveLibReadline" = xYES ; then
1208 AC_DEFINE([HAVE_READLINE_LIBS], [1], [Define to 1 if readline plus any additional libs needed for it exist.])
1209 LibsReadline="readline $LibTermcap"
1211 AC_DEFINE([HAVE_READLINE_LIBS], [0], [Define to 1 if readline plus any additional libs needed for it exist.])
1214 AC_SUBST(LibsReadline)
1216 if test "$HaveLibReadline"; then
1217 AC_CHECK_LIB(readline, rl_erase_empty_line,
1218 [AC_DEFINE([HAVE_READLINE_4], [1], [Define to 1 if readline has version >= 4.0.])],
1219 [AC_DEFINE([HAVE_READLINE_4], [0], [Define to 1 if readline has version >= 4.0.])])
1220 AC_CHECK_LIB(readline, rl_free_undo_list,
1221 [AC_DEFINE([HAVE_READLINE_4_2], [1], [Define to 1 if readline has version >= 4.2.])],
1222 [AC_DEFINE([HAVE_READLINE_4_2], [0], [Define to 1 if readline has version >= 4.2.])])
1224 AC_DEFINE([HAVE_READLINE_4], [0], [Define to 1 if readline has version >= 4.0.])
1225 AC_DEFINE([HAVE_READLINE_4_2], [0], [Define to 1 if readline has version >= 4.2.])
1228 dnl ** check for math library
1229 AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"], [LIBM=])
1232 dnl ** check for X Window System
1235 if test "$no_x" = yes; then
1240 AC_SUBST([GhcLibsWithX11])
1242 dnl ################################################################
1243 dnl Check for libraries
1244 dnl ################################################################
1246 dnl ** check for libdl & RTLD_NEXT
1248 dnl (Mac OS X only) ... but don't check if we already have the
1249 dnl HaskellSupport.framework
1251 if test $HaveFrameworkHaskellSupport = YES; then
1255 AC_DEFINE([HAVE_RTLDLOCAL], [1], [Define to 1 if RTLD_LOCAL is available.])
1257 AC_DEFINE([HAVE_RTLDGLOBAL], [1], [Define to 1 if RTLD_GLOBAL is available.])
1259 AC_DEFINE([HAVE_RTLDNOW], [1], [Define to 1 if we can see RTLD_NOW in dlfcn.h.])
1261 AC_SUBST(HaveRtldNext)
1262 AC_SUBST(HaveRtldLocal)
1263 AC_SUBST(HaveRtldGlobal)
1264 AC_SUBST(HaveRtldNow)
1266 AC_CHECK_LIB(dl, dlopen,
1268 AC_DEFINE([HAVE_LIBDL], [1], [Define to 1 if you need -ldl to get dlopen().])
1273 dnl ** sometimes RTLD_NEXT is hidden in #ifdefs we really don't wan to set
1274 AC_MSG_CHECKING(for RTLD_NEXT from dlfcn.h)
1283 AC_DEFINE([HAVE_RTLDNEXT], [1], [Define to 1 if we can see RTLD_NEXT in dlfcn.h.])
1289 AC_SUBST(HaveRtldNext)
1291 dnl ** RTLD_LOCAL isn't available on cygwin or openbsd
1292 AC_MSG_CHECKING(for RTLD_LOCAL from dlfcn.h)
1301 AC_DEFINE(HAVE_RTLDLOCAL)
1307 AC_SUBST(HaveRtldLocal)
1309 dnl ** RTLD_GLOBAL isn't available on openbsd
1310 AC_MSG_CHECKING(for RTLD_GLOBAL from dlfcn.h)
1319 AC_DEFINE(HAVE_RTLDGLOBAL)
1325 AC_SUBST(HaveRtldGlobal)
1327 dnl ** RTLD_NOW isn't available on openbsd
1328 AC_MSG_CHECKING(for RTLD_NOW from dlfcn.h)
1337 AC_DEFINE(HAVE_RTLDNOW)
1343 AC_SUBST(HaveRtldNow)
1346 dnl ---------- usleep ----------
1347 dnl --- stolen from guile configure ---
1348 dnl --- FIXME: /usr/include/unistd.h can't be right?
1350 ### On some systems usleep has no return value. If it does have one,
1351 ### we'd like to return it; otherwise, we'll fake it.
1352 AC_CACHE_CHECK([return type of usleep], cv_func_usleep_return_type,
1353 [AC_EGREP_HEADER(changequote(<, >)<void[ ]+usleep>changequote([, ]),
1354 /usr/include/unistd.h,
1355 [cv_func_usleep_return_type=void],
1356 [cv_func_usleep_return_type=int])])
1357 case "$cv_func_usleep_return_type" in
1359 AC_DEFINE([USLEEP_RETURNS_VOID], [1], [Define if the system headers declare usleep to return void.])
1363 dnl --------------------------------------------------
1365 dnl --------------------------------------------------
1367 AC_PATH_PROGS([GTK_CONFIG], [gtk-config gtk12-config])
1368 if test -n "$GTK_CONFIG"; then
1369 AC_CACHE_CHECK([for version of GTK+], [fp_cv_gtk_version],
1370 [fp_cv_gtk_version=`$GTK_CONFIG --version`])
1371 FP_COMPARE_VERSIONS([$fp_cv_gtk_version], [-lt], [1.2],
1372 [AC_MSG_WARN([GTK+ not usable, need at least version 1.2])
1375 AC_SUBST([GTK_CONFIG])
1377 dnl --------------------------------------------------
1378 dnl * Miscellaneous feature tests
1379 dnl --------------------------------------------------
1381 dnl ** can we get alloca?
1384 dnl ** Working vfork?
1387 dnl ** determine whether or not const works
1390 dnl ** are we big endian?
1393 dnl ** check for leading underscores in symbol names
1394 FP_LEADING_UNDERSCORE
1396 dnl ** check for ld, and whether ld has -x option
1397 AC_PATH_PROG(LdCmdRaw, ld)
1400 if test "${OSTYPE}" == "msys"
1404 LdCmd=`cygpath -w ${LdCmdRaw} | sed -e 's@\\\\@/@g' `
1407 *) LdCmd=${LdCmdRaw}
1415 AC_CONFIG_FILES([mk/config.mk])
1416 AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h])