1 dnl == autoconf source for the Glasgow FP tools ==
2 dnl (grep for '^dnl' to see the outline of this file)
4 dnl * INITIAL SETUP, CHOICE OF PLATFORM(S)
7 # (c) The AQUA Project, Glasgow University, 1994-1995
9 # Configure script for the Glasgow functional programming tools
10 # (created automagically by autoconf...do not edit by hand)
12 # Do "./configure --help" to see what flags are available.
13 # (Better yet, read the documentation!)
15 # -------------------------------------------------------------------------
18 # Prepare to generate the following header files
20 AC_CONFIG_HEADER(ghc/includes/config.h)
21 # and literate/config.h ???
22 # ToDo !!!!!!!!!!!!!!!!
24 # No, we don't do `--srcdir'...
25 if test x"$srcdir" != 'x.' ; then
26 echo "This configuration does not support the \`--srcdir' option."
30 # -------------------------------------------------------------------------
31 dnl ** choose what blobs to build (ghc,hslibs,haggis,happy,nofib,????)
33 # set to the name for the dir if doing it, otherwise empty
40 # the following are not normally changed
41 DoingMkWorld='mkworld'
42 DoingGlaFpUtils='glafp-utils'
48 **********************************************************************
49 * Configuration options for the Glasgow functional-programming tools *
50 **********************************************************************
52 First, select *which* of the tools you want to build,
53 with --{enable,disable}-{ghc,hslibs,nofib,happy,haggis}.
54 (The default is: only GHC (Glasgow Haskell compiler).)
56 Second, you may set one of a few applies-in-all-cases options.
57 For example, --with-tmpdir=/usr/tmp.
59 Then you may set various options which are specifically for the
60 tools you choose in step 1. For GHC, perhaps --enable-concurrent.
61 For NoFib, perhaps --enable-all-tests. And so on.
63 The rest of this message lists all of the configure options. If the
64 option is enabled by default, the message says how to disable it. And
67 If you are confused, don't forget the installation documents that came
70 *******************************************************************
71 ** FOR SELECTING WHICH GLASGOW FP TOOLS TO BUILD:
73 --disable-ghc do *not* build GHC as part of Glasgow FP tools],
79 *) echo "I don't understand this option: --enable-ghc=$enableval"
83 if test "xxx$DoingGHC" = 'xxxghc' -a \( ! -d ghc \) ; then
85 echo 'Doing --disable-ghc, as there is no ghc directory'
87 ghc_mkworld_site_ghc_jm='ghc/mkworld/site-ghc.jm'
88 ghc_includes_platform_h='ghc/includes/platform.h'
89 # duznae work: ghc_includes_config_h='ghc/includes/config.h'
90 if test "xxx$DoingGHC" = 'xxx' ; then
91 ghc_mkworld_site_ghc_jm=''
92 ghc_includes_platform_h=''
93 # ghc_includes_config_h=''
97 [--enable-hslibs build suite of Haskell libraries],
99 yes) DoingHsLibs='hslibs'
103 *) echo "I don't understand this option: --enable-hslibs=$enableval"
107 if test "xxx$DoingHsLibs" = 'xxxhslibs' -a \( ! -d hslibs \) ; then
109 echo 'Doing --disable-hslibs, as there is no hslibs directory'
111 hslibs_mkworld_site_hslibs_jm='hslibs/mkworld/site-hslibs.jm'
112 if test "xxx$DoingHsLibs" = 'xxx' ; then
113 hslibs_mkworld_site_hslibs_jm=''
117 [--enable-nofib build NoFib suite as part of Glasgow FP tools],
118 [case "$enableval" in
119 yes) DoingNoFib='nofib'
123 *) echo "I don't understand this option: --enable-nofib=$enableval"
127 if test "xxx$DoingNoFib" = 'xxxnofib' -a \( ! -d nofib \) ; then
129 echo 'Doing --disable-nofib, as there is no nofib directory'
131 nofib_mkworld_site_nofib_jm='nofib/mkworld/site-nofib.jm'
132 if test "xxx$DoingNoFib" = 'xxx' ; then
133 nofib_mkworld_site_nofib_jm=''
137 [--enable-happy build Happy parser-generator as part of Glasgow FP tools],
138 [case "$enableval" in
139 yes) DoingHappy='happy'
143 *) echo "I don't understand this option: --enable-happy=$enableval"
147 if test "xxx$DoingHappy" = 'xxxhappy' -a \( ! -d happy \) ; then
149 echo 'Doing --disable-happy, as there is no happy directory'
152 AC_ARG_ENABLE(haggis,
153 [--enable-haggis build Haggis GUI toolkit as part of Glasgow FP tools],
154 [case "$enableval" in
155 yes) DoingHaggis='haggis'
159 *) echo "I don't understand this option: --enable-haggis=$enableval"
163 if test "xxx$DoingHaggis" = 'xxxhaggis' -a \( ! -d haggis \) ; then
165 echo 'Doing --disable-haggis, as there is no haggis directory'
168 AC_ARG_ENABLE(literate,
170 The following three are \`for hackers only':
171 --disable-literate do *not* build literate-programming stuff],
172 [case "$enableval" in
173 yes) DoingLiterate='literate'
177 *) echo "I don't understand this option: --enable-literate=$enableval"
181 if test "xxx$DoingLiterate" = 'xxxliterate' -a \( ! -d literate \) ; then
183 echo 'Doing --disable-literate, as there is no literate directory'
186 AC_ARG_ENABLE(mkworld,
187 [--disable-mkworld do *not* build \`mkworld' configuration stuff],
188 [case "$enableval" in
189 yes) DoingMkWorld='mkworld'
193 *) echo "I don't understand this option: --enable-mkworld=$enableval"
197 if test "xxx$DoingMkWorld" = 'xxxmkworld' -a \( ! -d mkworld \) ; then
199 echo 'Doing --disable-mkworld, as there is no mkworld directory'
202 AC_ARG_ENABLE(glafp-utils,
203 [--disable-glafp-utils do *not* build \`glafp utilities'],
204 [case "$enableval" in
205 yes) DoingGlaFpUtils='glafp-utils'
207 no) DoingGlaFpUtils=''
209 *) echo "I don't understand this option: --enable-glafp-utils=$enableval"
213 if test "xxx$DoingGlaFpUtils" = 'xxxglafp-utils' -a \( ! -d glafp-utils \) ; then
215 echo 'Doing --disable-glafp-utils, as there is no glafp-utils directory'
219 AC_SUBST(DoingHsLibs)
222 AC_SUBST(DoingHaggis)
223 AC_SUBST(DoingLiterate)
224 AC_SUBST(DoingMkWorld)
225 AC_SUBST(DoingGlaFpUtils)
227 # -------------------------------------------------------------------------
228 dnl ** choose host(/target/build) platform
229 # Guess host/target/build platform(s) if necessary.
230 # Partly stolen from GCC "configure".
232 if test "x$target" = xNONE ; then
233 if test "x$nonopt" != xNONE ; then
236 # This way of testing the result of a command substitution is
237 # defined by Posix.2 (section 3.9.1) as well as traditional shells.
238 if target=`$srcdir/config.guess` ; then
239 echo "Configuring for a ${target} host." 1>&2
241 echo 'Config.guess failed to determine the host type. You need \
242 to specify one.' 1>&2
243 if test -r config.status ; then
244 tail +2 config.status 1>&2
251 # "$host" defaults to "$target"
252 if test "x$host" = xNONE ; then
255 # "$build" defaults to "$host"
256 if test "x$build" = xNONE ; then
259 echo "This configuration does not support the \`--build' option."
263 dnl ** canonicalize platform names
264 # Canonicali[sz]e those babies
265 BuildPlatform=`/bin/sh $srcdir/config.sub $build` || exit 1
266 HostPlatform=`/bin/sh $srcdir/config.sub $host` || exit 1
267 TargetPlatform=`/bin/sh $srcdir/config.sub $target` || exit 1
269 if test x"$TargetPlatform" != x"$HostPlatform" ; then
270 echo "GHC configuration does not support differing host/target (i.e., cross-compiling)"
274 # The following will be more difficult when we *are* cross-compiling.
275 # Suitable names to slam in *_CPP are in platform.h.in.
276 # We also record the architecture, vendor, and operating system (OS)
278 case $HostPlatform in
279 alpha-dec-osf[[1234]]*)
280 HostPlatform=alpha-dec-osf1 # canonicalise for our purposes
281 TargetPlatform=alpha-dec-osf1 # this will work for now... (hack)
282 BuildPlatform=alpha-dec-osf1 #hack
283 HostPlatform_CPP='alpha_dec_osf1'
289 HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack)
290 TargetPlatform=hppa1.1-hp-hpux
291 BuildPlatform=hppa1.1-hp-hpux
292 HostPlatform_CPP='hppa1_1_hp_hpux'
293 HostArch_CPP='hppa1_1'
297 i[[3456]]86-*-linuxaout*)
298 HostPlatform=i386-unknown-linuxaout # hack again
299 TargetPlatform=i386-unknown-linuxaout
300 BuildPlatform=i386-unknown-linuxaout
301 HostPlatform_CPP='i386_unknown_linuxaout'
303 HostVendor_CPP='unknown'
304 HostOS_CPP='linuxaout'
306 i[[3456]]86-*-linux*)
307 HostPlatform=i386-unknown-linux # hack again
308 TargetPlatform=i386-unknown-linux
309 BuildPlatform=i386-unknown-linux
310 HostPlatform_CPP='i386_unknown_linux'
312 HostVendor_CPP='unknown'
315 i[[3456]]86-*-freebsd*)
316 HostPlatform=i386-unknown-freebsd # hack again
317 TargetPlatform=i386-unknown-freebsd
318 BuildPlatform=i386-unknown-freebsd
319 HostPlatform_CPP='i386_unknown_freebsd'
321 HostVendor_CPP='unknown'
324 i[[3456]]86-*-netbsd*)
325 HostPlatform=i386-unknown-netbsd # hack again
326 TargetPlatform=i386-unknown-netbsd
327 BuildPlatform=i386-unknown-netbsd
328 HostPlatform_CPP='i386_unknown_netbsd'
330 HostVendor_CPP='unknown'
333 i[[3456]]86-*-solaris2*)
334 HostPlatform=i386-unknown-solaris2 # hack again
335 TargetPlatform=i386-unknown-solaris2
336 BuildPlatform=i386-unknown-solaris2
337 HostPlatform_CPP='i386_unknown_solaris2'
339 HostVendor_CPP='unknown'
340 HostOS_CPP='solaris2'
343 HostPlatform_CPP='m68k_next_nextstep2'
345 HostVendor_CPP='next'
346 HostOS_CPP='nextstep2'
349 HostPlatform_CPP='m68k_next_nextstep3'
351 HostVendor_CPP='next'
352 HostOS_CPP='nextstep3'
354 i[[3456]]86-next-nextstep3)
355 HostPlatform=i386-next-nextstep3 # hack again
356 TargetPlatform=i386-next-nextstep3
357 BuildPlatform=i386-next-nextstep3
358 HostPlatform_CPP='i386_next_nextstep3'
360 HostVendor_CPP='next'
361 HostOS_CPP='nextstep3'
364 HostPlatform=m68k-sun-sunos4
365 TargetPlatform=m68k-sun-sunos4 #hack
366 BuildPlatform=m68k-sun-sunos4 #hack
367 HostPlatform_CPP='m68k_sun_sunos4'
373 HostPlatform_CPP='mips_dec_ultrix'
374 HostArch_CPP='mipsel' # NB a little different
379 HostPlatform=mips-sgi-irix
380 TargetPlatform=mips-sgi-irix #hack
381 BuildPlatform=mips-sgi-irix #hack
382 HostPlatform_CPP='mips_sgi_irix'
383 HostArch_CPP='mipseb' # NB a little different
388 HostPlatform=powerpc-ibm-aix
389 TargetPlatform=powerpc-ibm-aix #hack
390 BuildPlatform=powerpc-ibm-aix #hack
391 HostPlatform_CPP='powerpc_ibm_aix'
392 HostArch_CPP='powerpc'
397 HostPlatform=sparc-sun-sunos4
398 TargetPlatform=sparc-sun-sunos4 #hack
399 BuildPlatform=sparc-sun-sunos4 #hack
400 HostPlatform_CPP='sparc_sun_sunos4'
406 HostPlatform=sparc-sun-solaris2
407 TargetPlatform=sparc-sun-solaris2 #hack
408 BuildPlatform=sparc-sun-solaris2 #hack
409 HostPlatform_CPP='sparc_sun_solaris2'
412 HostOS_CPP='solaris2'
415 echo "Unrecognised platform: $HostPlatform"
420 test -n "$verbose" && echo "Host platform set to $HostPlatform"
421 test -n "$verbose" -a x"$HostPlatform" != x"$TargetPlatform" \
422 && echo "Target platform set to $TargetPlatform"
423 test -n "$verbose" -a x"$BuildPlatform" != x"$HostPlatform" \
424 && echo "Build platform set to $BuildPlatform"
426 BuildPlatform_CPP=$HostPlatform_CPP
427 TargetPlatform_CPP=$HostPlatform_CPP
428 BuildArch_CPP=$HostArch_CPP
429 TargetArch_CPP=$HostArch_CPP
430 BuildOS_CPP=$HostOS_CPP
431 TargetOS_CPP=$HostOS_CPP
432 BuildVendor_CPP=$HostVendor_CPP
433 TargetVendor_CPP=$HostVendor_CPP
434 dnl Cannot afford all these AC_SUBSTs (because of braindead seds w/ 99 cmd limits
435 dnl AC_SUBST(BuildPlatform)
436 AC_SUBST(HostPlatform)
437 dnl AC_SUBST(TargetPlatform)
438 AC_SUBST(HostPlatform_CPP)
439 dnl AC_SUBST(BuildPlatform_CPP)
440 dnl AC_SUBST(TargetPlatform_CPP)
441 AC_SUBST(HostArch_CPP)
442 dnl AC_SUBST(BuildArch_CPP)
443 dnl AC_SUBST(TargetArch_CPP)
445 dnl AC_SUBST(BuildOS_CPP)
446 dnl AC_SUBST(TargetOS_CPP)
447 AC_SUBST(HostVendor_CPP)
448 dnl AC_SUBST(BuildVendor_CPP)
449 dnl AC_SUBST(TargetVendor_CPP)
451 # -------------------------------------------------------------------------
453 dnl * _GENERAL_ CONFIGURATION CHECKS
455 dnl ** are we at Glasgow?
457 if test -d /local/fp -a -d /users/fp/simonpj; then
458 echo "Brilliant! You must be a Glaswegian."
460 if test "x$prefix" = xNONE; then
462 echo "Assuming installation prefix of $prefix"
464 if test "x$exec_prefix" = xNONE; then
465 # Sigh: the defn of exec_prefix does not include the bin* bit...
467 exec_prefix=/local/fp
468 echo "Assuming binary installation prefix of $exec_prefix"
474 test -n "$verbose" && echo " setting AT_GLASGOW to $AT_GLASGOW"
482 dnl ** look for `perl', but watch out for version 4.035
484 AC_CHECK_PROG(PerlCmd,perl,$ac_dir/$ac_word)
485 if test -z "$PerlCmd"; then
486 echo "You must install perl before you can continue"
487 echo "Perhaps it is already installed, but not in your PATH?"
490 $PerlCmd -v >conftest.out 2>&1
491 if egrep "version 4" conftest.out >/dev/null 2>&1; then
492 if egrep "Patch level: 35" conftest.out >/dev/null 2>&1; then
494 ************************************************************************
495 Uh-oh...looks like you have Perl 4.035.
497 Perl version 4.035 has a bug to do with recursion that will bite if
498 you run the lit2texi script, when making Info files from
499 literate files of various sorts. Either use the current version
500 (4.036), an older version (e.g., perl 4.019) or apply the patch in
501 glafp-utils/perl-4.035-fixes to your 4.035 perl.
502 ************************************************************************
506 if egrep "version 5" conftest.out >/dev/null 2>&1; then
509 echo "I'm not sure if your version of perl will work,"
510 echo "but it's worth a shot, eh?"
516 dnl ** does #!.../perl work? (sometimes it's too long...)
517 echo "checking if \`#!$PerlCmd' works in shell scripts"
522 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
523 if test $? -ne 69; then
526 echo "It doesn't! Perhaps \`#!$PerlCmd' is too long (often 32 characters max)"
531 dnl ** check if perl library is properly installed
532 # (by seeing if a "do 'getopts.pl'" works...
533 if $PerlCmd -e 'do "getopts.pl" || exit(1); exit(0);' > /dev/null 2>&1 ; then
536 echo "I think your perl library is misinstalled."
537 echo "The following script did not work:"
538 echo ' do "getopts.pl" || exit(1); exit(0);'
543 dnl ** look for GCC and find out which version
544 # Figure out which C compiler to use. Gcc is preferred.
545 # If gcc, make sure it's at least 2.1
548 if test -z "$GCC"; then
549 echo "You would be better off with gcc"
550 echo "Perhaps it is already installed, but not in your PATH?"
553 gcc -v > conftest.out 2>&1
554 echo '/version (\d+)\.(\d+)/ && $1*10+$2 > 20 && print "YES";' > conftest.pl
555 HaveGcc=`eval $PerlCmd -n conftest.pl conftest.out`
556 if test -z "$HaveGcc"; then
557 echo "I'm not sure if your version of gcc will work,"
558 echo "but it's worth a shot, eh?"
566 dnl ** figure out how to do context diffs
567 # (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
571 if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then
572 ContextDiffCmd='diff -C 1'
574 if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then
575 ContextDiffCmd='diff -c1'
577 echo "Can't figure out how to do context diffs."
578 echo "Neither \`diff -C 1' nor \`diff -c1' works."
582 rm -f conftest1 conftest2
583 AC_SUBST(ContextDiffCmd)
585 dnl ** look for a decent parser generator (bison preferred)
588 AC_CHECK_PROG(YaccCmd, bison, bison -y)
589 if test -z "$YaccCmd"; then
590 echo "Can't find bison out there..."
591 AC_CHECK_PROG(WhatCmd, what, what, :)
592 AC_CHECK_PROG(YaccCmd, yacc, $ac_dir/$ac_word)
593 if test -z "$YaccCmd"; then
594 echo "But that's okay...I can't find yacc either."
597 $WhatCmd $YaccCmd > conftest.out
598 if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then
599 echo "I don't trust your $YaccCmd; it looks like an old Sun yacc"
600 if test -x /usr/lang/yacc; then
601 echo "I'm going to use /usr/lang/yacc instead"
602 YaccCmd=/usr/lang/yacc
604 echo "I'm assuming the worst...no parser generator at all"
607 elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then
608 echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc"
609 echo "I'm assuming the worst...no parser generator at all"
612 echo "But that's okay...as far as I know, your yacc will work."
618 dnl ** Find lex command (lex or flex) and library (-ll or -lfl)
622 #--------------------------------------------------------------
623 WithHc='haskell-compiler-unspecified'
624 WithHcType='HC_UNSPECIFIED'
628 *******************************************************************
629 ** GENERAL OPTIONS WHICH APPLY TO ALL TOOLS:
631 --with-hc=<Haskell compiler>
632 ghc* => Glasgow Haskell invoked by the name given
633 hbc* => Chalmers HBC, invoked by the name given
634 nhc* => Niklas Rojemo's "nhc", invoked by the name given
635 C or c => Don't use a Haskell compiler;
636 build from intermediate C (.hc) files.
637 in-place => Use ghc/driver/ghc; i.e. you've built GHC
638 and you want to use it un-installed ("in-place").
644 hbc* ) WithHc=$withval
646 nhc* ) WithHc=$withval
653 *) echo "I don't understand this option: --with-hc=$withval"
658 # make sure that what they said makes sense.... set WithHcType
660 haskell-compiler-unspecified ) # maybe they will say something later...
663 WithHcType='HC_GLASGOW_GHC'
664 AC_CHECK_PROG(have_ghc,$WithHc,$ac_dir/$ac_word)
665 if test -z "$have_ghc"; then
666 echo "Can't find Glasgow Haskell to compile with: $WithHc"
670 hbc* ) # Look for the dastardly competition
671 WithHcType='HC_CHALMERS_HBC'
672 AC_CHECK_PROG(have_hbc,$WithHc,YES,NO)
673 if test $have_hbc = 'NO' ; then
674 echo "Can't find Chalmers HBC to compile with: $WithHc"
678 nhc* ) # Look for Niklas Rojemo's "nhc"
679 WithHcType='HC_ROJEMO_NHC'
680 AC_CHECK_PROG(have_nhc,$WithHc,YES,NO)
681 if test $have_nhc = 'NO' ; then
682 echo "Can't find Niklas Rojemo's NHC to compile with: $WithHc"
686 c | C) WithHcType='HC_USE_HC_FILES'
688 IN-PLACE) WithHcType='HC_GLASGOW_GHC'
694 dnl ** Possibly use something else instead of 'gcc'.
697 [--with-gcc=<gcc command>
698 Use a different command instead of 'gcc' for the GNU C compiler.],
699 [HaveGcc=YES; WhatGccIsCalled="$withval"])
700 AC_SUBST(WhatGccIsCalled)
702 dnl ** Choose which make to use (default 'make -r')
706 --with-make=<make command>
707 Use an alternate command instead of 'make'. This is useful
708 when GNU make is required (for instance when the default make
709 supplied by the system won't work, as is the case on FreeBSD
710 and NetBSD). You probably want to include the '-r' flag with
711 make, to exclude implicit suffix rules.],
712 [MakeCmd="$withval"])
715 dnl ** possibly choose a different tmpdir (default /tmp)
716 # let the user decide where the best tmpdir is
717 # /tmp is the default; /usr/tmp is sometimes a good choice.
718 # Very site-specific.
722 --with-tmpdir=<temp directory>
723 Use an alternative directory for temporary files (presumably
724 because /tmp is too small).],
728 dnl ** possibly set a max heap for Haskell compilations
729 # let the user specify a maximum heap to be used; the old
730 # "I have a 64MB machine, why not use a 32MB heap?" thing.
733 AC_ARG_WITH(max-heap,
735 --with-max-heap=<heap size, e.g., 32m>
736 Do all Haskell compilations with a heap of this size. (If
737 you've got it, flaunt it.)],
738 [HcMaxHeapWasSet='YES'
739 HcMaxHeap="$withval"])
740 AC_SUBST(HcMaxHeapWasSet)
743 dnl ** figure out about mkdependHS
745 if test -f ./ghc/utils/mkdependHS/mkdependHS \
746 -o -f ./ghc/utils/mkdependHS/mkdependHS.prl ; then
747 MkDependHSCmd='TopDirPwd/ghc/utils/mkdependHS/mkdependHS'
749 AC_CHECK_PROG(have_mkdependHS,mkdependHS,YES,NO)
750 if test $have_mkdependHS = 'YES' ; then
751 MkDependHSCmd='mkdependHS'
754 AC_SUBST(MkDependHSCmd)
756 # -------------------------------------------------------------------------
758 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
761 if echo $CPP | egrep gcc >/dev/null 2>&1; then
763 gcc -v -E conftest.c >/dev/null 2>conftest.out
764 echo '/(\S+\/cpp)/ && print "$1";' > conftest.pl
765 GNUCPP="`eval $PerlCmd -n conftest.pl conftest.out`"
766 test -n "$verbose" && echo " setting GNUCPP to $GNUCPP"
767 RAWCPP="`eval $PerlCmd -n conftest.pl conftest.out` -traditional"
768 test -n "$verbose" && echo " setting RAWCPP to $RAWCPP"
771 # ToDo: what are GNUCPP and RAWCPP if the above if didn't fire? WDP 95/02
775 dnl ** figure out how to do a BSD-ish install
779 dnl ** figure out what arguments to feed to `ar'
781 AC_CHECK_PROG(ArCmd,ar,$ac_dir/$ac_word)
782 if test -z "$ArCmd"; then
783 echo "You don't seem to have ar...I have no idea how to make a library"
786 if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
789 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
792 elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
795 elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
798 elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
802 echo "I can't figure out how to use your $ArCmd"
806 test -n "$ArCmd" && test -n "$verbose" && echo " setting ArCmd to $ArCmd"
809 dnl ** figure out if we need `ranlib'
811 if test -z "$NeedRanLib"; then
812 # we hackily override a few platforms on a case-by-case basis
813 case $HostPlatform in
820 test -n "$verbose" && echo " setting RANLIB to $RANLIB"
822 if test -n "$NeedRanLib"; then
827 dnl ** check for full ANSI header (.h) files
831 dnl ** check for specific header (.h) files that we are interested in
833 AC_CHECK_HEADERS(dirent.h fcntl.h grp.h malloc.h memory.h nlist.h pwd.h siginfo.h signal.h stdlib.h string.h sys/fault.h sys/file.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/vadvise.h sys/wait.h termios.h time.h types.h unistd.h utime.h vfork.h )
835 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
839 dnl ** how do we get a timezone name?
843 dnl ** determine the type of signal()
847 dnl ** check for specific library functions that we are interested in
849 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect setitimer stat sysconf timelocal times vadvise vfork)
851 dnl ** can we get alloca?
855 dnl ** determine whether or not const works
859 dnl ** check for leading underscores in symbol names
860 # We assume that they _aren't_ there if anything goes wrong.
862 echo checking for a leading underscore in symbol names
866 struct nlist xYzzY[] = {{"_xYzzY", 0},{0}};
874 if(nlist(argv[0], xYzzY) == 0 && xYzzY[0].n_value != 0)
878 }], LeadingUnderscore='YES', LeadingUnderscore='NO', LeadingUnderscore='YES')
879 test -n "$verbose" && echo " setting LeadingUnderscore to $LeadingUnderscore"
881 # -------------------------------------------------------------------------
883 dnl * `GHC' CONFIGURATION STUFF
885 if test "xxx$DoingGHC" = 'xxxghc' ; then
888 dnl ** which builds to build?
889 # builds: normal = sequential _ap_o ; _p = profiling (sequential);
890 # _t = ticky; _u = unregisterized
891 GhcBuild_normal='YES'
895 # _mc = concurrent; _mr = profiled concurrent; _mt = ticky concurrent
896 # _mp = parallel; _mg = gransim
902 # GC builds: _2s, _1s, _du (, _gn)
924 # More could be added here...
926 AC_ARG_ENABLE(normal-build,
928 *******************************************************************
929 ** \`GHC' (GLASGOW HASKELL COMPILER) OPTIONS:
931 Choose all the \`builds' of GHC that you want:
933 --disable-normal-build do *not* build GHC for normal sequential code],
934 [case "$enableval" in
935 yes) GhcBuild_normal='YES'
937 no) GhcBuild_normal='NO'
939 *) echo "I don't understand this option: --enable-normal-build=$enableval"
944 AC_ARG_ENABLE(profiling,
945 [--disable-profiling do *not* build profiling features],
946 [case "$enableval" in
947 yes) GhcBuild_p='YES'
951 *) echo "I don't understand this option: --enable-profiling=$enableval"
957 [--enable-ticky build for \`ticky-ticky' profiling (for implementors)],
958 [case "$enableval" in
959 yes) GhcBuild_t='YES'
963 *) echo "I don't understand this option: --enable-ticky=$enableval"
968 AC_ARG_ENABLE(concurrent,
969 [--enable-concurrent turn on \`concurrent Haskell' features],
970 [case "$enableval" in
971 yes) GhcBuild_mc='YES'
975 *) echo "I don't understand this option: --enable-concurrent=$enableval"
980 AC_ARG_ENABLE(profiled-concurrent,
981 [--enable-profiled-concurrent turn on profiling for \`concurrent Haskell'],
982 [case "$enableval" in
983 yes) GhcBuild_mr='YES'
987 *) echo "I don't understand this option: --enable-profiled-concurrent=$enableval"
992 AC_ARG_ENABLE(ticky-concurrent,
993 [--enable-ticky-concurrent turn on \`ticky-ticky' profiling for \`concurrent Haskell'],
994 [case "$enableval" in
995 yes) GhcBuild_mt='YES'
999 *) echo "I don't understand this option: --enable-ticky-concurrent=$enableval"
1004 AC_ARG_ENABLE(parallel,
1005 [--enable-parallel turn on \`parallel Haskell' features],
1006 [case "$enableval" in
1007 yes) GhcBuild_mp='YES';
1009 no) GhcBuild_mp='NO'
1011 *) echo "I don't understand this option: --enable-parallel=$enableval"
1016 AC_ARG_ENABLE(gransim,
1017 [--enable-gransim turn on GranSim parallel simulator],
1018 [case "$enableval" in
1019 yes) GhcBuild_mg='YES';
1021 no) GhcBuild_mg='NO'
1023 *) echo "I don't understand this option: --enable-gransim=$enableval"
1028 AC_ARG_ENABLE(gc-2s,
1029 [--enable-gc-2s a build with the 2-space copying garbage collector],
1030 [case "$enableval" in
1031 yes) GhcBuild_2s='YES'
1033 no) GhcBuild_2s='NO'
1035 *) echo "I don't understand this option: --enable-gc-2s=$enableval"
1040 AC_ARG_ENABLE(gc-1s,
1041 [--enable-gc-1s a build with the 1-space compacting garbage collector],
1042 [case "$enableval" in
1043 yes) GhcBuild_1s='YES'
1045 no) GhcBuild_1s='NO'
1047 *) echo "I don't understand this option: --enable-gc-1s=$enableval"
1052 AC_ARG_ENABLE(gc-du,
1053 [--enable-gc-du a build with \`dual-mode' (1s/2s) garbage collector],
1054 [case "$enableval" in
1055 yes) GhcBuild_du='YES'
1057 no) GhcBuild_du='NO'
1059 *) echo "I don't understand this option: --enable-gc-du=$enableval"
1064 AC_ARG_ENABLE(user-way-a,
1065 [--enable-user-way-a build for \`user way a' (mostly for implementors)],
1066 [case "$enableval" in
1067 yes) GhcBuild_a='YES'
1071 *) echo "I don't understand this option: --enable-user-way-a=$enableval"
1076 AC_ARG_ENABLE(user-way-b,
1077 [--enable-user-way-b build for \`user way b' (mostly for implementors)],
1078 [case "$enableval" in
1079 yes) GhcBuild_b='YES'
1083 *) echo "I don't understand this option: --enable-user-way-b=$enableval"
1088 AC_ARG_ENABLE(user-way-c,
1089 [--enable-user-way-c build for \`user way c' (mostly for implementors)],
1090 [case "$enableval" in
1091 yes) GhcBuild_c='YES'
1095 *) echo "I don't understand this option: --enable-user-way-c=$enableval"
1100 AC_ARG_ENABLE(user-way-d,
1101 [--enable-user-way-d build for \`user way d' (mostly for implementors)],
1102 [case "$enableval" in
1103 yes) GhcBuild_d='YES'
1107 *) echo "I don't understand this option: --enable-user-way-d=$enableval"
1112 AC_ARG_ENABLE(user-way-e,
1113 [--enable-user-way-e build for \`user way e' (mostly for implementors)],
1114 [case "$enableval" in
1115 yes) GhcBuild_e='YES'
1119 *) echo "I don't understand this option: --enable-user-way-e=$enableval"
1124 AC_ARG_ENABLE(user-way-f,
1125 [--enable-user-way-f build for \`user way f' (mostly for implementors)],
1126 [case "$enableval" in
1127 yes) GhcBuild_f='YES'
1131 *) echo "I don't understand this option: --enable-user-way-f=$enableval"
1136 AC_ARG_ENABLE(user-way-g,
1137 [--enable-user-way-g build for \`user way g' (mostly for implementors)],
1138 [case "$enableval" in
1139 yes) GhcBuild_g='YES'
1143 *) echo "I don't understand this option: --enable-user-way-g=$enableval"
1148 AC_ARG_ENABLE(user-way-h,
1149 [--enable-user-way-h build for \`user way h' (mostly for implementors)],
1150 [case "$enableval" in
1151 yes) GhcBuild_h='YES'
1155 *) echo "I don't understand this option: --enable-user-way-h=$enableval"
1160 AC_ARG_ENABLE(user-way-i,
1161 [--enable-user-way-i build for \`user way i' (mostly for implementors)],
1162 [case "$enableval" in
1163 yes) GhcBuild_i='YES'
1167 *) echo "I don't understand this option: --enable-user-way-i=$enableval"
1172 AC_ARG_ENABLE(user-way-j,
1173 [--enable-user-way-j build for \`user way j' (mostly for implementors)],
1174 [case "$enableval" in
1175 yes) GhcBuild_j='YES'
1179 *) echo "I don't understand this option: --enable-user-way-j=$enableval"
1184 AC_ARG_ENABLE(user-way-k,
1185 [--enable-user-way-k build for \`user way k' (mostly for implementors)],
1186 [case "$enableval" in
1187 yes) GhcBuild_k='YES'
1191 *) echo "I don't understand this option: --enable-user-way-k=$enableval"
1196 AC_ARG_ENABLE(user-way-l,
1197 [--enable-user-way-l build for \`user way l' (mostly for implementors)],
1198 [case "$enableval" in
1199 yes) GhcBuild_l='YES'
1203 *) echo "I don't understand this option: --enable-user-way-l=$enableval"
1208 AC_ARG_ENABLE(user-way-m,
1209 [--enable-user-way-m build for \`user way m' (mostly for implementors)],
1210 [case "$enableval" in
1211 yes) GhcBuild_m='YES'
1215 *) echo "I don't understand this option: --enable-user-way-m=$enableval"
1220 AC_ARG_ENABLE(user-way-n,
1221 [--enable-user-way-n build for \`user way n' (mostly for implementors)],
1222 [case "$enableval" in
1223 yes) GhcBuild_n='YES'
1227 *) echo "I don't understand this option: --enable-user-way-n=$enableval"
1232 AC_ARG_ENABLE(user-way-o,
1233 [--enable-user-way-o build for \`user way o' (mostly for implementors)],
1234 [case "$enableval" in
1235 yes) GhcBuild_o='YES'
1239 *) echo "I don't understand this option: --enable-user-way-o=$enableval"
1244 AC_ARG_ENABLE(user-way-A,
1245 [--enable-user-way-A build for \`user way A' (mostly for implementors)],
1246 [case "$enableval" in
1247 yes) GhcBuild_A='YES'
1251 *) echo "I don't understand this option: --enable-user-way-A=$enableval"
1256 AC_ARG_ENABLE(user-way-B,
1257 [--enable-user-way-B build for \`user way B' (mostly for implementors)],
1258 [case "$enableval" in
1259 yes) GhcBuild_B='YES'
1263 *) echo "I don't understand this option: --enable-user-way-B=$enableval"
1268 dnl We do not use AC_SUBST to communicate the GhcBuild_* info,
1269 dnl as some seds (notably OSF) only allow 99 commands (!!!).
1270 dnl We will do the equivalent by a HACK further down.
1272 dnl AC_SUBST(GhcBuild_normal)
1273 dnl AC_SUBST(GhcBuild_p)
1274 dnl AC_SUBST(GhcBuild_t)
1275 dnl AC_SUBST(GhcBuild_u)
1276 dnl AC_SUBST(GhcBuild_mc)
1277 dnl AC_SUBST(GhcBuild_mr)
1278 dnl AC_SUBST(GhcBuild_mt)
1279 dnl AC_SUBST(GhcBuild_mp)
1280 dnl AC_SUBST(GhcBuild_mg)
1281 dnl AC_SUBST(GhcBuild_2s)
1282 dnl AC_SUBST(GhcBuild_1s)
1283 dnl AC_SUBST(GhcBuild_du)
1284 dnl AC_SUBST(GhcBuild_a)
1285 dnl AC_SUBST(GhcBuild_b)
1286 dnl AC_SUBST(GhcBuild_c)
1287 dnl AC_SUBST(GhcBuild_d)
1288 dnl AC_SUBST(GhcBuild_e)
1289 dnl AC_SUBST(GhcBuild_f)
1290 dnl AC_SUBST(GhcBuild_g)
1291 dnl AC_SUBST(GhcBuild_h)
1292 dnl AC_SUBST(GhcBuild_i)
1293 dnl AC_SUBST(GhcBuild_j)
1294 dnl AC_SUBST(GhcBuild_k)
1295 dnl AC_SUBST(GhcBuild_l)
1296 dnl AC_SUBST(GhcBuild_m)
1297 dnl AC_SUBST(GhcBuild_n)
1298 dnl AC_SUBST(GhcBuild_o)
1299 dnl AC_SUBST(GhcBuild_A)
1300 dnl AC_SUBST(GhcBuild_B)
1302 #---------------------------------------------------------------
1304 dnl ** which Haskell compiler to bootstrap GHC with?
1305 # Figure out what Haskell compiler(s) to use for booting
1307 # first, the defaults...
1308 WithGhcHc='haskell-compiler-unspecified'
1309 WithGhcHcType='HC_UNSPECIFIED'
1310 GhcBuilderVersion='28'
1312 AC_ARG_WITH(hc-for-ghc,
1314 The Haskell compiler for bootstrapping GHC (if any); this option,
1315 if used, overrides --with-hc=<...>:
1317 --with-hc-for-ghc=<Haskell compiler>
1318 ghc* => Glasgow Haskell invoked by the name given
1319 C or c => Don't use a Haskell compiler;
1320 build from intermediate C (.hc) files.
1326 hbc* ) echo "HBC will not compile GHC 0.26 as is (sigh)"
1329 c | C) WithGhcHc='C'
1330 WithGhcHcType='HC_USE_HC_FILES'
1332 *) echo "I don't understand this option: --with-hc-for-ghc=$withval"
1337 # make sure that what they said makes sense.... set WithGhcHcType
1339 haskell-compiler-unspecified ) # maybe they said something earlier...
1340 if test $WithHc = 'haskell-compiler-unspecified' ; then
1341 echo "Neither --with-hc nor --with-hc-for-ghc was properly set"
1344 if test $WithHcType = 'HC_GLASGOW_GHC' ; then
1346 $WithHc -v -C conftest.o > conftest.out 2>&1
1347 echo '/version (\d+)\.(\d+)/ && print ($1*100+$2);' > conftest.pl
1348 GhcBuilderVersion=`eval $PerlCmd -n conftest.pl conftest.out`
1353 WithGhcHcType='HC_GLASGOW_GHC'
1354 AC_CHECK_PROG(have_ghc_ghc,$WithGhcHc,$ac_dir/$ac_word)
1355 if test -z "$have_ghc_ghc"; then
1356 echo "Can't find Glasgow Haskell to compile GHC with: $WithGhcHc"
1360 $WithGhcHc -v -C conftest.o > conftest.out 2>&1
1361 echo '/version (\d+)\.(\d+)/ && print ($1*100+$2);' > conftest.pl
1362 GhcBuilderVersion=`eval $PerlCmd -n conftest.pl conftest.out`
1366 c | C) WithGhcHcType='HC_USE_HC_FILES'
1369 AC_SUBST(GhcBuilderVersion)
1371 AC_SUBST(WithGhcHcType)
1373 dnl ** use portable (slow) C? -- preferably not
1374 GhcWithRegisterised='YES'
1375 AC_ARG_ENABLE(portable-C,
1376 [Other things for GHC:
1378 --enable-portable-C use portable C (slow), not \`registerised' (fast)],
1379 [case "$enableval" in
1380 yes) GhcWithRegisterised='NO'
1382 no) GhcWithRegisterised='YES'
1384 *) echo "I don't understand this option: --enable-portable-C=$enableval"
1389 if test $GhcWithRegisterised = 'YES'; then
1390 case $HostPlatform in
1391 alpha-* | hppa1.1-* | i386-* | m68k-* | mips-* | powerpc-* | sparc-* )
1394 echo "Don't know non-portable C tricks for this platform: $HostPlatform"
1395 GhcWithRegisterised='NO'
1399 AC_SUBST(GhcWithRegisterised)
1401 if test $GhcWithRegisterised = 'NO'; then
1403 GhcBuild_normal='NO'
1406 # ToDo: make sure we can do concurrent for platform/circs...
1407 # ToDo: make sure we can do profiling for platform/circs...
1408 # ToDo: make sure we can do parallel for platform/circs...
1409 # ToDo: make sure we can do gransim for platform/circs...
1411 dnl ** build GHC compiler proper (\`hsc') from .hc files?
1412 GhcWithHscBuiltViaC='NO'
1413 AC_ARG_ENABLE(hsc-built-via-C,
1414 [--enable-hsc-built-via-C build compiler proper (hsc) from intermediate .hc
1415 files (disabled by default)],
1416 [case "$enableval" in
1417 yes) GhcWithHscBuiltViaC='YES'
1419 no) GhcWithHscBuiltViaC='NO'
1421 *) echo "I don't understand this option: --enable-hsc-built-via-C=$enableval"
1426 haskell-compiler-unspecified ) # maybe they said something earlier...
1427 if test $WithHcType = 'HC_USE_HC_FILES' ; then
1428 GhcWithHscBuiltViaC='YES'
1431 c | C) GhcWithHscBuiltViaC='YES'
1435 AC_SUBST(GhcWithHscBuiltViaC)
1437 dnl ** build \`hsc' with -O?
1438 GhcWithHscOptimised='YES'
1439 AC_ARG_ENABLE(hsc-optimised,
1440 [--disable-hsc-optimised don't build compiler proper (hsc) with -O],
1441 [case "$enableval" in
1442 yes) GhcWithHscOptimised='YES'
1444 no) GhcWithHscOptimised='NO'
1446 *) echo "I don't understand this option: --enable-hsc-optimised=$enableval"
1450 AC_SUBST(GhcWithHscOptimised)
1452 dnl ** build \`hsc' with -DDEBUG?
1453 GhcWithHscDebug='NO'
1454 AC_ARG_ENABLE(hsc-debug,
1455 [--enable-hsc-debug build compiler proper (hsc) with -DDEBUG],
1456 [case "$enableval" in
1457 yes) GhcWithHscDebug='YES'
1459 no) GhcWithHscDebug='NO'
1461 *) echo "I don't understand this option: --enable-hsc-debug=$enableval"
1465 AC_SUBST(GhcWithHscDebug)
1467 dnl ** omit native-code generator from \`hsc'?
1468 GhcWithNativeCodeGen='YES'
1469 AC_ARG_ENABLE(native-code-generator,
1470 [--enable-native-code-generator build an n.c.g.
1471 [enabled for supported platforms]],
1472 [case "$enableval" in
1473 yes) GhcWithNativeCodeGen='YES'
1475 no) GhcWithNativeCodeGen='NO'
1477 *) echo "I don't understand this option: --enable-native-code-generator=$enableval"
1481 if test $GhcWithNativeCodeGen = 'YES'; then
1482 case $TargetPlatform in
1483 i386-* | alpha-* | sparc-* )
1486 echo "Don't have a native-code generator for this platform: $TargetPlatform"
1487 GhcWithNativeCodeGen='NO'
1491 AC_SUBST(GhcWithNativeCodeGen)
1493 dnl ** include Marlow's deforester in \`hsc'?
1494 GhcWithDeforester='NO'
1495 AC_ARG_ENABLE(deforester,
1496 [--enable-deforester build deforester into compiler (HACKERS ONLY)],
1497 [case "$enableval" in
1498 yes) GhcWithDeforester='YES'
1500 no) GhcWithDeforester='NO'
1502 *) echo "I don't understand this option: --enable-deforester=$enableval"
1506 AC_SUBST(GhcWithDeforester)
1508 dnl ** include Readline library?
1509 GhcWithReadline='NO'
1510 AC_ARG_ENABLE(readline-library,
1511 [--enable-readline-library include (GNU) readline library in -syslib GHC],
1512 [case "$enableval" in
1513 yes) GhcWithReadline='YES'
1515 no) GhcWithReadline='NO'
1517 *) echo "I don't understand this option: --enable-readline-library=$enableval"
1521 AC_SUBST(GhcWithReadline)
1523 dnl ** include Sockets library?
1525 AC_ARG_ENABLE(sockets-library,
1526 [--enable-sockets-library include the network-interface (sockets) library in -syslib GHC],
1527 [case "$enableval" in
1528 yes) GhcWithSockets='YES'
1530 no) GhcWithSockets='NO'
1532 *) echo "I don't understand this option: --enable-sockets-library=$enableval"
1536 AC_SUBST(GhcWithSockets)
1538 dnl ** build the interpreter?
1541 [--enable-ghci build Glasgow Haskell interpreter (HACKERS ONLY)],
1542 [case "$enableval" in
1543 yes) BuildGHCI='YES'
1547 *) echo "I don't understand this option: --enable-ghci=$enableval"
1553 # Here, by HACK means, we dump all the GhcBuild_ info
1554 # into a file. See comment above.
1555 rm -f ghc/mkworld/buildinfo.jm
1556 echo creating ghc/mkworld/buildinfo.jm
1557 cat > ghc/mkworld/buildinfo.jm <<EOF
1558 XCOMM ** DO NOT EDIT! **
1559 XCOMM This file is obliterated every time 'configure' is run!
1562 for xx in normal p t u mc mr mt mp mg 2s 1s du a b c d e f g h i j k l m n o A B ; do
1563 eval "yy=\$GhcBuild_$xx"
1564 echo "#ifndef GhcBuild_$xx" >> ghc/mkworld/buildinfo.jm
1565 echo "#define GhcBuild_$xx $yy" >> ghc/mkworld/buildinfo.jm
1566 echo "#endif" >> ghc/mkworld/buildinfo.jm
1569 # here ends a very big if DoingGHC = 'ghc' ...
1572 # -------------------------------------------------------------------------
1574 dnl * `HsLibs' CONFIGURATION STUFF
1576 if test "xxx$DoingHsLibs" = 'xxxhslibs' ; then
1579 dnl ** which Haskell compiler to use on hslibs?
1580 WithHsLibsHc='haskell-compiler-unspecified'
1581 WithHsLibsHcType='HC_UNSPECIFIED'
1583 AC_ARG_WITH(hc-for-hslibs,
1585 *******************************************************************
1586 ** \`HsLibs' HASKELL LIBRARIES OPTIONS:
1588 The Haskell compiler to compile the Haskell Libraries suite; this
1589 option, if used, overrides --with-hc=<...>:
1591 --with-hc-for-hslibs=<Haskell compiler>
1592 ghc* => Glasgow Haskell invoked by the name given
1593 and you want to use it un-installed ("in-place").],
1596 WithHsLibsHc=$withval
1599 WithHsLibsHc='IN-PLACE'
1601 *) echo "I don't understand this option: --with-hc-for-hslibs=$withval"
1606 # make sure that what they said makes sense.... set WithHsLibsHcType
1607 case $WithHsLibsHc in
1608 haskell-compiler-unspecified ) # maybe they said something earlier...
1609 if test $WithHc = 'haskell-compiler-unspecified' ; then
1610 echo "Neither --with-hc nor --with-hc-for-hslibs was properly set"
1615 WithHsLibsHcType='HC_GLASGOW_GHC'
1616 AC_CHECK_PROG(have_ghc_hslibs,$WithHsLibsHc,$ac_dir/$ac_word)
1617 if test -z "$have_ghc_hslibs"; then
1618 echo "Can't find Glasgow Haskell to compile HsLibs with: $WithHsLibsHc"
1622 IN-PLACE) WithHsLibsHcType='HC_GLASGOW_GHC'
1625 AC_SUBST(WithHsLibsHc)
1626 AC_SUBST(WithHsLibsHcType)
1628 # Here, by HACK means, we dump all the GhcBuild_ info
1629 # into a file. See comment above.
1630 rm -f hslibs/mkworld/buildinfo.jm
1631 echo creating hslibs/mkworld/buildinfo.jm
1632 cat > hslibs/mkworld/buildinfo.jm <<EOF
1633 XCOMM ** DO NOT EDIT! **
1634 XCOMM This file is obliterated every time 'configure' is run!
1637 dnl Do not really know what to put here:
1638 dnl for xx in normal p t u mc mr mt mp mg 2s 1s du a b c d e f g h i j k l m n o A B ; do
1639 dnl eval "yy=\$GhcBuild_$xx"
1640 dnl echo "#ifndef GhcBuild_$xx" >> ghc/mkworld/buildinfo.jm
1641 dnl echo "#define GhcBuild_$xx $yy" >> ghc/mkworld/buildinfo.jm
1642 dnl echo "#endif" >> ghc/mkworld/buildinfo.jm
1645 # here ends a very big if DoingHsLibs = 'hslibs' ...
1648 # -------------------------------------------------------------------------
1650 dnl * `Happy' CONFIGURATION STUFF
1652 if test "xxx$DoingHappy" = 'xxxhappy' ; then
1655 dnl ** which Haskell compiler to use on happy?
1656 WithHappyHc='haskell-compiler-unspecified'
1657 WithHappyHcType='HC_UNSPECIFIED'
1659 AC_ARG_WITH(hc-for-happy,
1661 *******************************************************************
1662 ** \`Happy' PARSER-GENERATOR OPTIONS:
1664 The Haskell compiler to compile Happy; this option, if used, overrides
1667 --with-hc-for-happy=<Haskell compiler>
1668 ghc* => Glasgow Haskell invoked by the name given
1669 hbc* => Chalmers HBC, invoked by the name given
1670 nhc* => Niklas Rojemo's "nhc", invoked by the name given
1671 in-place => Use ghc/driver/ghc; i.e. you've built GHC
1672 and you want to use it un-installed ("in-place").],
1675 WithHappyHc=$withval
1677 hbc* ) WithHappyHc=$withval
1679 nhc* ) WithHappyHc=$withval
1682 WithHappyHc='IN-PLACE'
1684 *) echo "I don't understand this option: --with-hc-for-happy=$withval"
1689 # make sure that what they said makes sense.... set WithHappyHcType
1690 case $WithHappyHc in
1691 haskell-compiler-unspecified ) # maybe they said something earlier...
1692 if test $WithHc = 'haskell-compiler-unspecified' ; then
1693 echo "Neither --with-hc nor --with-hc-for-happy was properly set"
1698 WithHappyHcType='HC_GLASGOW_GHC'
1699 AC_CHECK_PROG(have_ghc_happy,$WithHappyHc,$ac_dir/$ac_word)
1700 if test -z "$have_ghc_happy"; then
1701 echo "Can't find Glasgow Haskell to compile Happy with: $WithHappyHc"
1705 hbc* ) # Look for the dastardly competition
1706 WithHappyHcType='HC_CHALMERS_HBC'
1707 AC_CHECK_PROG(have_hbc,$WithHappyHc,YES,NO)
1708 if test $have_hbc = 'NO' ; then
1709 echo "Can't find Chalmers HBC to compile with: $WithHappyHc"
1713 nhc* ) # Look for Niklas Rojemo's "nhc"
1714 WithHappyHcType='HC_ROJEMO_NHC'
1715 AC_CHECK_PROG(have_nhc,$WithHappyHc,YES,NO)
1716 if test $have_nhc = 'NO' ; then
1717 echo "Can't find Niklas Rojemo's NHC to compile with: $WithHappyHc"
1721 IN-PLACE) WithHappyHcType='HC_GLASGOW_GHC'
1724 AC_SUBST(WithHappyHc)
1725 AC_SUBST(WithHappyHcType)
1727 # here ends a very big if DoingHappy = 'happy' ...
1730 # -------------------------------------------------------------------------
1732 dnl * `Haggis' CONFIGURATION STUFF
1734 if test "xxx$DoingHaggis" = 'xxxhaggis' ; then
1737 dnl ** which Haskell compiler to use on haggis?
1738 WithHaggisHc='haskell-compiler-unspecified'
1739 WithHaggisHcType='HC_UNSPECIFIED'
1741 AC_ARG_WITH(hc-for-haggis,
1743 *******************************************************************
1744 ** \`Haggis' HASKELL GUI TOOLKIT OPTIONS:
1746 The Haskell compiler to compile the Haggis toolkit; this option, if
1747 used, overrides --with-hc=<...>:
1749 --with-hc-for-haggis=<Haskell compiler>
1750 ghc* => Glasgow Haskell invoked by the name given
1751 and you want to use it un-installed ("in-place").],
1754 WithHaggisHc=$withval
1757 WithHaggisHc='IN-PLACE'
1759 *) echo "I don't understand this option: --with-hc-for-haggis=$withval"
1764 # make sure that what they said makes sense.... set WithHaggisHcType
1765 case $WithHaggisHc in
1766 haskell-compiler-unspecified ) # maybe they said something earlier...
1767 if test $WithHc = 'haskell-compiler-unspecified' ; then
1768 echo "Neither --with-hc nor --with-hc-for-haggis was properly set"
1773 WithHaggisHcType='HC_GLASGOW_GHC'
1774 AC_CHECK_PROG(have_ghc_haggis,$WithHaggisHc,$ac_dir/$ac_word)
1775 if test -z "$have_ghc_haggis"; then
1776 echo "Can't find Glasgow Haskell to compile Haggis with: $WithHaggisHc"
1780 IN-PLACE) WithHaggisHcType='HC_GLASGOW_GHC'
1783 AC_SUBST(WithHaggisHc)
1784 AC_SUBST(WithHaggisHcType)
1786 # here ends a very big if DoingHaggis = 'haggis' ...
1789 # -------------------------------------------------------------------------
1791 dnl * `Literate' CONFIGURATION STUFF
1793 if test "xxx$DoingLiterate" = 'xxxliterate' ; then
1797 AC_ARG_ENABLE(info-utils,
1799 *******************************************************************
1800 ** Literate programming system OPTIONS:
1802 --enable-info-utils build GNU info/makeinfo utilities],
1803 [case "$enableval" in
1804 yes) BuildInfoUtils='YES'
1806 no) BuildInfoUtils='NO'
1808 *) echo "I don't understand this option: --enable-info-utils=$enableval"
1812 AC_SUBST(BuildInfoUtils)
1814 # here ends a very big if DoingLiterate = 'literate' ...
1817 # -------------------------------------------------------------------------
1819 dnl * `NoFib' CONFIGURATION STUFF
1821 if test "xxx$DoingNoFib" = 'xxxnofib' ; then
1824 dnl ** which Haskell compiler to test with NoFib?
1825 WithNoFibHc='haskell-compiler-unspecified'
1826 WithNoFibHcType='HC_UNSPECIFIED'
1828 AC_ARG_WITH(hc-for-nofib,
1830 *******************************************************************
1831 ** NoFib HASKELL BENCHMARK SUITE OPTIONS:
1833 The Haskell compiler to compile the NoFib programs; this option, if
1834 used, overrides --with-hc=<...>:
1836 --with-hc-for-nofib=<Haskell compiler>
1837 ghc* => Glasgow Haskell invoked by the name given
1838 hbc* => Chalmers HBC, invoked by the name given
1839 nhc* => Niklas Rojemo's "nhc", invoked by the name given
1840 in-place => Use ghc/driver/ghc; i.e. you've built GHC
1841 and you want to use it un-installed ("in-place").
1845 WithNoFibHc=$withval
1847 hbc* ) WithNoFibHc=$withval
1849 nhc* ) WithNoFibHc=$withval
1852 WithNoFibHc='IN-PLACE'
1854 *) echo "I don't understand this option: --with-hc-for-nofib=$withval"
1859 # make sure that what they said makes sense.... set WithHappyHcType
1860 case $WithNoFibHc in
1861 haskell-compiler-unspecified ) # maybe they said something earlier...
1862 if test $WithHc = 'haskell-compiler-unspecified' ; then
1863 echo "Neither --with-hc nor --with-hc-for-nofib was properly set"
1868 WithNoFibHcType='HC_GLASGOW_GHC'
1869 AC_CHECK_PROG(have_ghc_nofib,$WithNoFibHc,$ac_dir/$ac_word)
1870 if test -z "$have_ghc_nofib"; then
1871 echo "Can't find Glasgow Haskell to compile NoFib with: $WithNoFibHc"
1875 hbc* ) # Look for the dastardly competition
1876 WithNoFibHcType='HC_CHALMERS_HBC'
1877 AC_CHECK_PROG(have_hbc,$WithNoFibHc,YES,NO)
1878 if test $have_hbc = 'NO' ; then
1879 echo "Can't find Chalmers HBC to compile NoFib with: $WithNoFibHc"
1883 nhc* ) # Look for Niklas Rojemo's "nhc"
1884 WithNoFibHcType='HC_ROJEMO_NHC'
1885 AC_CHECK_PROG(have_nhc,$WithNoFibHc,YES,NO)
1886 if test $have_nhc = 'NO' ; then
1887 echo "Can't find Niklas Rojemo's NHC to compile NoFib with: $WithNoFibHc"
1891 IN-PLACE) WithNoFibHcType='HC_GLASGOW_GHC'
1894 AC_SUBST(WithNoFibHc)
1895 AC_SUBST(WithNoFibHcType)
1897 dnl ** what mkworld \`setup' should be used?
1900 --with-setup=<setup> : What mkworld \`setup' should be used?
1901 Choices: ghc, hbc, nhc
1904 ghc ) MkWorldSetup='ghc'
1906 hbc ) MkWorldSetup='hbc'
1908 nhc ) MkWorldSetup='nhc'
1910 *) echo "I don't understand this option: --with-setup=$withval"
1915 if test $MkWorldSetup = 'std' ; then
1916 echo 'You must do --with-setup=... (one of: ghc, hbc, or nhc) for NoFib'
1920 # ---------------------------------------
1921 # What sets of tests should be run.
1923 IncludeRealNoFibTests='YES' # defaults
1924 IncludeSpectralNoFibTests='YES'
1925 IncludeImaginaryNoFibTests='YES'
1926 IncludeSpecialiseNoFibTests='NO'
1927 IncludeGHC_ONLYNoFibTests='NO'
1928 IncludePRIVATENoFibTests='NO'
1929 IncludeParallelNoFibTests='NO'
1931 dnl ** should *all* NoFib tests be run?
1932 # special catch-all variant
1933 AC_ARG_ENABLE(all-tests,
1934 [Possibly turn on *all* of the possible tests (a sane choice
1937 --enable-all-tests do *all* tests],
1938 [case "$enableval" in
1939 yes) IncludeGHC_ONLYNoFibTests='YES'
1940 IncludeSpecialiseNoFibTests='YES'
1941 IncludePRIVATENoFibTests='YES'
1942 IncludeParallelNoFibTests='YES'
1944 no) IncludeGHC_ONLYNoFibTests='NO'
1945 IncludeSpecialiseNoFibTests='NO'
1946 IncludePRIVATENoFibTests='NO'
1947 IncludeParallelNoFibTests='NO'
1949 IncludeRealNoFibTests='NO'
1950 IncludeSpectralNoFibTests='NO'
1951 IncludeImaginaryNoFibTests='NO'
1953 *) echo "I don't understand this option: --enable-all-tests=$enableval"
1958 dnl ** turn on/off individual categories of tests...
1959 # individual categories
1960 AC_ARG_ENABLE(imaginary-tests,
1962 Enable/disable individual categories of tests:
1964 --disable-imaginary-tests do *not* include imaginary tests],
1965 [case "$enableval" in
1966 yes) IncludeImaginaryNoFibTests='YES'
1968 no) IncludeImaginaryNoFibTests='NO'
1970 *) echo "I don't understand this option: --enable-imaginary-tests=$enableval"
1975 AC_ARG_ENABLE(spectral-tests,
1976 [--disable-spectral-tests do *not* include spectral tests],
1977 [case "$enableval" in
1978 yes) IncludeSpectralNoFibTests='YES'
1980 no) IncludeSpectralNoFibTests='NO'
1982 *) echo "I don't understand this option: --enable-spectral-tests=$enableval"
1987 AC_ARG_ENABLE(real-tests,
1988 [--disable-real-tests do *not* include real tests],
1989 [case "$enableval" in
1990 yes) IncludeRealNoFibTests='YES'
1992 no) IncludeRealNoFibTests='NO'
1994 *) echo "I don't understand this option: --enable-real-tests=$enableval"
1999 AC_ARG_ENABLE(GHC-ONLY-tests,
2000 [--enable-GHC-ONLY-tests include GHC_ONLY tests],
2001 [case "$enableval" in
2002 yes) IncludeGHC_ONLYNoFibTests='YES'
2004 no) IncludeGHC_ONLYNoFibTests='NO'
2006 *) echo "I don't understand this option: --enable-GHC-ONLY-tests=$enableval"
2011 AC_ARG_ENABLE(specialise-tests,
2012 [--enable-specialise-tests include specialisation tests],
2013 [case "$enableval" in
2014 yes) IncludeSpecialiseNoFibTests='YES'
2016 no) IncludeSpecialiseNoFibTests='NO'
2018 *) echo "I don't understand this option: --enable-specialise-tests=$enableval"
2023 AC_ARG_ENABLE(PRIVATE-tests,
2024 [--enable-PRIVATE-tests include PRIVATE tests],
2025 [case "$enableval" in
2026 yes) IncludePRIVATENoFibTests='YES'
2028 no) IncludePRIVATENoFibTests='NO'
2030 *) echo "I don't understand this option: --enable-PRIVATE-tests=$enableval"
2035 AC_ARG_ENABLE(parallel-tests,
2036 [--enable-parallel-tests include parallel tests
2038 [case "$enableval" in
2039 yes) IncludeParallelNoFibTests='YES'
2041 no) IncludeParallelNoFibTests='NO'
2043 *) echo "I don't understand this option: --enable-parallel-tests=$enableval"
2048 dnl not AC_SUBSTd because of 99-command seds (sigh)
2049 dnl (See what follows instead)
2050 dnl AC_SUBST(IncludeRealNoFibTests)
2051 dnl AC_SUBST(IncludeSpectralNoFibTests)
2052 dnl AC_SUBST(IncludeImaginaryNoFibTests)
2053 dnl AC_SUBST(IncludeGHC_ONLYNoFibTests)
2054 dnl AC_SUBST(IncludeSpecialiseNoFibTests)
2055 dnl AC_SUBST(IncludePRIVATENoFibTests)
2056 dnl AC_SUBST(IncludeParallelNoFibTests)
2058 # Here, by HACK means, we dump all the Include*NoFibTests info
2059 # into a file. See comment above.
2060 rm -f nofib/mkworld/buildinfo.jm
2061 echo creating nofib/mkworld/buildinfo.jm
2062 cat > nofib/mkworld/buildinfo.jm <<EOF
2063 XCOMM ** DO NOT EDIT! **
2064 XCOMM This file is obliterated every time 'configure' is run!
2067 for xx in Real Spectral Imaginary GHC_ONLY Specialise PRIVATE Parallel ; do
2068 eval "yy=\$Include${xx}NoFibTests"
2069 echo "#ifndef Include${xx}NoFibTests" >> nofib/mkworld/buildinfo.jm
2070 echo "#define Include${xx}NoFibTests $yy" >> nofib/mkworld/buildinfo.jm
2071 echo "#endif" >> nofib/mkworld/buildinfo.jm
2074 # here ends a very big if DoingNoFib = 'nofib' ...
2077 # -------------------------------------------------------------------------
2079 dnl * extract non-header files with substitution (end)
2081 AC_SUBST(MkWorldSetup)
2083 AC_OUTPUT(Makefile STARTUP mkworld/site.jm mkworld/platform.h mkworld/config.h $ghc_mkworld_site_ghc_jm $ghc_includes_platform_h $hslibs_mkworld_site_hslibs_jm $nofib_mkworld_site_nofib_jm)
2085 echo '************************************************'
2086 echo '*** NOW DO: sh < STARTUP'
2087 echo '************************************************'