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: used in jmake.c (GnuCppCmd) and in mkdependC
766 # (where we could do with the usual pre-#defines)
768 test -n "$verbose" && echo " setting GNUCPP to $GNUCPP"
769 # RAWCPP: we do not want *any* pre-#defines...
770 # (e.g., hscpp, mkdependHS)
771 RAWCPP="`eval $PerlCmd -n conftest.pl conftest.out` -traditional"
772 test -n "$verbose" && echo " setting RAWCPP to $RAWCPP"
775 # ToDo: what are GNUCPP and RAWCPP if the above if didn't fire? WDP 95/02
779 dnl ** figure out how to do a BSD-ish install
783 dnl ** figure out what arguments to feed to `ar'
785 AC_CHECK_PROG(ArCmd,ar,$ac_dir/$ac_word)
786 if test -z "$ArCmd"; then
787 echo "You don't seem to have ar...I have no idea how to make a library"
790 if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
793 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
796 elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
799 elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
802 elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
806 echo "I can't figure out how to use your $ArCmd"
810 test -n "$ArCmd" && test -n "$verbose" && echo " setting ArCmd to $ArCmd"
813 dnl ** figure out if we need `ranlib'
815 if test -z "$NeedRanLib"; then
816 # we hackily override a few platforms on a case-by-case basis
817 case $HostPlatform in
824 test -n "$verbose" && echo " setting RANLIB to $RANLIB"
826 if test -n "$NeedRanLib"; then
831 dnl ** check for full ANSI header (.h) files
835 dnl ** check for specific header (.h) files that we are interested in
837 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/socket.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 )
839 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
843 dnl ** how do we get a timezone name?
847 dnl ** determine the type of signal()
851 dnl ** check for specific library functions that we are interested in
853 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect setitimer stat sysconf timelocal times vadvise vfork)
855 dnl ** can we get alloca?
859 dnl ** determine whether or not const works
863 dnl ** check for leading underscores in symbol names
864 # We assume that they _aren't_ there if anything goes wrong.
866 echo checking for a leading underscore in symbol names
870 struct nlist xYzzY[] = {{"_xYzzY", 0},{0}};
878 if(nlist(argv[0], xYzzY) == 0 && xYzzY[0].n_value != 0)
882 }], LeadingUnderscore='YES', LeadingUnderscore='NO', LeadingUnderscore='YES')
883 test -n "$verbose" && echo " setting LeadingUnderscore to $LeadingUnderscore"
885 dnl -------------------------------------------------------
886 dnl ** which builds to build?
887 dnl ** (applies to anything w/ libraries (ghc, hslibs, ???)
888 dnl -------------------------------------------------------
889 # builds: normal = sequential _ap_o ; _p = profiling (sequential);
890 # _t = ticky; _u = unregisterized
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) Build_normal='YES'
937 no) Build_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
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
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
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
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
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) Build_mp='YES';
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) Build_mg='YES';
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
1263 *) echo "I don't understand this option: --enable-user-way-B=$enableval"
1268 dnl We do not use AC_SUBST to communicate the Build_* 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 # -------------------------------------------------------------------------
1274 dnl * `GHC' CONFIGURATION STUFF
1276 if test "xxx$DoingGHC" = 'xxxghc' ; then
1279 #---------------------------------------------------------------
1281 dnl ** which Haskell compiler to bootstrap GHC with?
1282 # Figure out what Haskell compiler(s) to use for booting
1284 # first, the defaults...
1285 WithGhcHc='haskell-compiler-unspecified'
1286 WithGhcHcType='HC_UNSPECIFIED'
1287 GhcBuilderVersion='28'
1289 AC_ARG_WITH(hc-for-ghc,
1291 The Haskell compiler for bootstrapping GHC (if any); this option,
1292 if used, overrides --with-hc=<...>:
1294 --with-hc-for-ghc=<Haskell compiler>
1295 ghc* => Glasgow Haskell invoked by the name given
1296 C or c => Don't use a Haskell compiler;
1297 build from intermediate C (.hc) files.
1303 hbc* ) echo "HBC will not compile GHC 0.26 as is (sigh)"
1306 c | C) WithGhcHc='C'
1307 WithGhcHcType='HC_USE_HC_FILES'
1309 *) echo "I don't understand this option: --with-hc-for-ghc=$withval"
1314 # make sure that what they said makes sense.... set WithGhcHcType
1316 haskell-compiler-unspecified ) # maybe they said something earlier...
1317 if test $WithHc = 'haskell-compiler-unspecified' ; then
1318 echo "Neither --with-hc nor --with-hc-for-ghc was properly set"
1321 if test $WithHcType = 'HC_GLASGOW_GHC' ; then
1323 $WithHc -v -C conftest.o > conftest.out 2>&1
1324 echo '/version (\d+)\.(\d+)/ && print ($1*100+$2);' > conftest.pl
1325 GhcBuilderVersion=`eval $PerlCmd -n conftest.pl conftest.out`
1330 WithGhcHcType='HC_GLASGOW_GHC'
1331 AC_CHECK_PROG(have_ghc_ghc,$WithGhcHc,$ac_dir/$ac_word)
1332 if test -z "$have_ghc_ghc"; then
1333 echo "Can't find Glasgow Haskell to compile GHC with: $WithGhcHc"
1337 $WithGhcHc -v -C conftest.o > conftest.out 2>&1
1338 echo '/version (\d+)\.(\d+)/ && print ($1*100+$2);' > conftest.pl
1339 GhcBuilderVersion=`eval $PerlCmd -n conftest.pl conftest.out`
1343 c | C) WithGhcHcType='HC_USE_HC_FILES'
1346 AC_SUBST(GhcBuilderVersion)
1348 AC_SUBST(WithGhcHcType)
1350 dnl ** use portable (slow) C? -- preferably not
1351 GhcWithRegisterised='YES'
1352 AC_ARG_ENABLE(portable-C,
1353 [Other things for GHC:
1355 --enable-portable-C use portable C (slow), not \`registerised' (fast)],
1356 [case "$enableval" in
1357 yes) GhcWithRegisterised='NO'
1359 no) GhcWithRegisterised='YES'
1361 *) echo "I don't understand this option: --enable-portable-C=$enableval"
1366 if test $GhcWithRegisterised = 'YES'; then
1367 case $HostPlatform in
1368 alpha-* | hppa1.1-* | i386-* | m68k-* | mips-* | powerpc-* | sparc-* )
1371 echo "Don't know non-portable C tricks for this platform: $HostPlatform"
1372 GhcWithRegisterised='NO'
1376 AC_SUBST(GhcWithRegisterised)
1378 if test $GhcWithRegisterised = 'NO'; then
1383 # ToDo: make sure we can do concurrent for platform/circs...
1384 # ToDo: make sure we can do profiling for platform/circs...
1385 # ToDo: make sure we can do parallel for platform/circs...
1386 # ToDo: make sure we can do gransim for platform/circs...
1388 dnl ** build GHC compiler proper (\`hsc') from .hc files?
1389 GhcWithHscBuiltViaC='NO'
1390 AC_ARG_ENABLE(hsc-built-via-C,
1391 [--enable-hsc-built-via-C build compiler proper (hsc) from intermediate .hc
1392 files (disabled by default)],
1393 [case "$enableval" in
1394 yes) GhcWithHscBuiltViaC='YES'
1396 no) GhcWithHscBuiltViaC='NO'
1398 *) echo "I don't understand this option: --enable-hsc-built-via-C=$enableval"
1403 haskell-compiler-unspecified ) # maybe they said something earlier...
1404 if test $WithHcType = 'HC_USE_HC_FILES' ; then
1405 GhcWithHscBuiltViaC='YES'
1408 c | C) GhcWithHscBuiltViaC='YES'
1412 AC_SUBST(GhcWithHscBuiltViaC)
1414 dnl ** build \`hsc' with -O?
1415 GhcWithHscOptimised='YES'
1416 AC_ARG_ENABLE(hsc-optimised,
1417 [--disable-hsc-optimised don't build compiler proper (hsc) with -O],
1418 [case "$enableval" in
1419 yes) GhcWithHscOptimised='YES'
1421 no) GhcWithHscOptimised='NO'
1423 *) echo "I don't understand this option: --enable-hsc-optimised=$enableval"
1427 AC_SUBST(GhcWithHscOptimised)
1429 dnl ** build \`hsc' with -DDEBUG?
1430 GhcWithHscDebug='NO'
1431 AC_ARG_ENABLE(hsc-debug,
1432 [--enable-hsc-debug build compiler proper (hsc) with -DDEBUG],
1433 [case "$enableval" in
1434 yes) GhcWithHscDebug='YES'
1436 no) GhcWithHscDebug='NO'
1438 *) echo "I don't understand this option: --enable-hsc-debug=$enableval"
1442 AC_SUBST(GhcWithHscDebug)
1444 dnl ** omit native-code generator from \`hsc'?
1445 GhcWithNativeCodeGen='YES'
1446 AC_ARG_ENABLE(native-code-generator,
1447 [--enable-native-code-generator build an n.c.g.
1448 [enabled for supported platforms]],
1449 [case "$enableval" in
1450 yes) GhcWithNativeCodeGen='YES'
1452 no) GhcWithNativeCodeGen='NO'
1454 *) echo "I don't understand this option: --enable-native-code-generator=$enableval"
1458 if test $GhcWithNativeCodeGen = 'YES'; then
1459 case $TargetPlatform in
1460 i386-* | alpha-* | sparc-* )
1463 echo "Don't have a native-code generator for this platform: $TargetPlatform"
1464 GhcWithNativeCodeGen='NO'
1468 AC_SUBST(GhcWithNativeCodeGen)
1470 dnl ** include Marlow's deforester in \`hsc'?
1471 GhcWithDeforester='NO'
1472 AC_ARG_ENABLE(deforester,
1473 [--enable-deforester build deforester into compiler (HACKERS ONLY)],
1474 [case "$enableval" in
1475 yes) GhcWithDeforester='YES'
1477 no) GhcWithDeforester='NO'
1479 *) echo "I don't understand this option: --enable-deforester=$enableval"
1483 AC_SUBST(GhcWithDeforester)
1485 dnl ** include Readline library?
1486 GhcWithReadline='NO'
1487 AC_ARG_ENABLE(readline-library,
1488 [--enable-readline-library include (GNU) readline library in -syslib GHC],
1489 [case "$enableval" in
1490 yes) GhcWithReadline='YES'
1492 no) GhcWithReadline='NO'
1494 *) echo "I don't understand this option: --enable-readline-library=$enableval"
1498 AC_SUBST(GhcWithReadline)
1500 dnl ** include Sockets library?
1502 AC_ARG_ENABLE(sockets-library,
1503 [--enable-sockets-library include the network-interface (sockets) library in -syslib GHC],
1504 [case "$enableval" in
1505 yes) GhcWithSockets='YES'
1507 no) GhcWithSockets='NO'
1509 *) echo "I don't understand this option: --enable-sockets-library=$enableval"
1513 AC_SUBST(GhcWithSockets)
1515 # Here, by HACK means, we dump all the Build_ info
1516 # into a file. See comment above.
1517 rm -f ghc/mkworld/buildinfo.jm
1518 echo creating ghc/mkworld/buildinfo.jm
1519 cat > ghc/mkworld/buildinfo.jm <<EOF
1520 XCOMM ** DO NOT EDIT! **
1521 XCOMM This file is obliterated every time 'configure' is run!
1524 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
1525 eval "yy=\$Build_$xx"
1526 echo "#ifndef Build_$xx" >> ghc/mkworld/buildinfo.jm
1527 echo "#define Build_$xx $yy" >> ghc/mkworld/buildinfo.jm
1528 echo "#endif" >> ghc/mkworld/buildinfo.jm
1531 # here ends a very big if DoingGHC = 'ghc' ...
1534 # -------------------------------------------------------------------------
1536 dnl * `HsLibs' CONFIGURATION STUFF
1538 if test "xxx$DoingHsLibs" = 'xxxhslibs' ; then
1541 dnl ** which Haskell compiler to use on hslibs?
1542 WithHsLibsHc='haskell-compiler-unspecified'
1543 WithHsLibsHcType='HC_UNSPECIFIED'
1545 AC_ARG_WITH(hc-for-hslibs,
1547 *******************************************************************
1548 ** \`HsLibs' HASKELL LIBRARIES OPTIONS:
1550 The Haskell compiler to compile the Haskell Libraries suite; this
1551 option, if used, overrides --with-hc=<...>:
1553 --with-hc-for-hslibs=<Haskell compiler>
1554 ghc* => Glasgow Haskell invoked by the name given
1555 and you want to use it un-installed ("in-place").],
1558 WithHsLibsHc=$withval
1561 WithHsLibsHc='IN-PLACE'
1563 *) echo "I don't understand this option: --with-hc-for-hslibs=$withval"
1568 # make sure that what they said makes sense.... set WithHsLibsHcType
1569 case $WithHsLibsHc in
1570 haskell-compiler-unspecified ) # maybe they said something earlier...
1571 if test $WithHc = 'haskell-compiler-unspecified' ; then
1572 echo "Neither --with-hc nor --with-hc-for-hslibs was properly set"
1577 WithHsLibsHcType='HC_GLASGOW_GHC'
1578 AC_CHECK_PROG(have_ghc_hslibs,$WithHsLibsHc,$ac_dir/$ac_word)
1579 if test -z "$have_ghc_hslibs"; then
1580 echo "Can't find Glasgow Haskell to compile HsLibs with: $WithHsLibsHc"
1584 IN-PLACE) WithHsLibsHcType='HC_GLASGOW_GHC'
1587 AC_SUBST(WithHsLibsHc)
1588 AC_SUBST(WithHsLibsHcType)
1590 # Here, by HACK means, we dump all the Build_ info
1591 # into a file. See comment above.
1592 rm -f hslibs/mkworld/buildinfo.jm
1593 echo creating hslibs/mkworld/buildinfo.jm
1594 cat > hslibs/mkworld/buildinfo.jm <<EOF
1595 XCOMM ** DO NOT EDIT! **
1596 XCOMM This file is obliterated every time 'configure' is run!
1599 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
1600 eval "yy=\$Build_$xx"
1601 echo "#ifndef Build_$xx" >> hslibs/mkworld/buildinfo.jm
1602 echo "#define Build_$xx $yy" >> hslibs/mkworld/buildinfo.jm
1603 echo "#endif" >> hslibs/mkworld/buildinfo.jm
1606 # here ends a very big if DoingHsLibs = 'hslibs' ...
1609 # -------------------------------------------------------------------------
1611 dnl * `Happy' CONFIGURATION STUFF
1613 if test "xxx$DoingHappy" = 'xxxhappy' ; then
1616 dnl ** which Haskell compiler to use on happy?
1617 WithHappyHc='haskell-compiler-unspecified'
1618 WithHappyHcType='HC_UNSPECIFIED'
1620 AC_ARG_WITH(hc-for-happy,
1622 *******************************************************************
1623 ** \`Happy' PARSER-GENERATOR OPTIONS:
1625 The Haskell compiler to compile Happy; this option, if used, overrides
1628 --with-hc-for-happy=<Haskell compiler>
1629 ghc* => Glasgow Haskell invoked by the name given
1630 hbc* => Chalmers HBC, invoked by the name given
1631 nhc* => Niklas Rojemo's "nhc", invoked by the name given
1632 in-place => Use ghc/driver/ghc; i.e. you've built GHC
1633 and you want to use it un-installed ("in-place").],
1636 WithHappyHc=$withval
1638 hbc* ) WithHappyHc=$withval
1640 nhc* ) WithHappyHc=$withval
1643 WithHappyHc='IN-PLACE'
1645 *) echo "I don't understand this option: --with-hc-for-happy=$withval"
1650 # make sure that what they said makes sense.... set WithHappyHcType
1651 case $WithHappyHc in
1652 haskell-compiler-unspecified ) # maybe they said something earlier...
1653 if test $WithHc = 'haskell-compiler-unspecified' ; then
1654 echo "Neither --with-hc nor --with-hc-for-happy was properly set"
1659 WithHappyHcType='HC_GLASGOW_GHC'
1660 AC_CHECK_PROG(have_ghc_happy,$WithHappyHc,$ac_dir/$ac_word)
1661 if test -z "$have_ghc_happy"; then
1662 echo "Can't find Glasgow Haskell to compile Happy with: $WithHappyHc"
1666 hbc* ) # Look for the dastardly competition
1667 WithHappyHcType='HC_CHALMERS_HBC'
1668 AC_CHECK_PROG(have_hbc,$WithHappyHc,YES,NO)
1669 if test $have_hbc = 'NO' ; then
1670 echo "Can't find Chalmers HBC to compile with: $WithHappyHc"
1674 nhc* ) # Look for Niklas Rojemo's "nhc"
1675 WithHappyHcType='HC_ROJEMO_NHC'
1676 AC_CHECK_PROG(have_nhc,$WithHappyHc,YES,NO)
1677 if test $have_nhc = 'NO' ; then
1678 echo "Can't find Niklas Rojemo's NHC to compile with: $WithHappyHc"
1682 IN-PLACE) WithHappyHcType='HC_GLASGOW_GHC'
1685 AC_SUBST(WithHappyHc)
1686 AC_SUBST(WithHappyHcType)
1688 # here ends a very big if DoingHappy = 'happy' ...
1691 # -------------------------------------------------------------------------
1693 dnl * `Haggis' CONFIGURATION STUFF
1695 if test "xxx$DoingHaggis" = 'xxxhaggis' ; then
1698 dnl ** which Haskell compiler to use on haggis?
1699 WithHaggisHc='haskell-compiler-unspecified'
1700 WithHaggisHcType='HC_UNSPECIFIED'
1702 AC_ARG_WITH(hc-for-haggis,
1704 *******************************************************************
1705 ** \`Haggis' HASKELL GUI TOOLKIT OPTIONS:
1707 The Haskell compiler to compile the Haggis toolkit; this option, if
1708 used, overrides --with-hc=<...>:
1710 --with-hc-for-haggis=<Haskell compiler>
1711 ghc* => Glasgow Haskell invoked by the name given
1712 and you want to use it un-installed ("in-place").],
1715 WithHaggisHc=$withval
1718 WithHaggisHc='IN-PLACE'
1720 *) echo "I don't understand this option: --with-hc-for-haggis=$withval"
1725 # make sure that what they said makes sense.... set WithHaggisHcType
1726 case $WithHaggisHc in
1727 haskell-compiler-unspecified ) # maybe they said something earlier...
1728 if test $WithHc = 'haskell-compiler-unspecified' ; then
1729 echo "Neither --with-hc nor --with-hc-for-haggis was properly set"
1734 WithHaggisHcType='HC_GLASGOW_GHC'
1735 AC_CHECK_PROG(have_ghc_haggis,$WithHaggisHc,$ac_dir/$ac_word)
1736 if test -z "$have_ghc_haggis"; then
1737 echo "Can't find Glasgow Haskell to compile Haggis with: $WithHaggisHc"
1741 IN-PLACE) WithHaggisHcType='HC_GLASGOW_GHC'
1744 AC_SUBST(WithHaggisHc)
1745 AC_SUBST(WithHaggisHcType)
1747 # builds stuff?? ToDo
1749 # here ends a very big if DoingHaggis = 'haggis' ...
1752 # -------------------------------------------------------------------------
1754 dnl * `Literate' CONFIGURATION STUFF
1756 if test "xxx$DoingLiterate" = 'xxxliterate' ; then
1760 AC_ARG_ENABLE(info-utils,
1762 *******************************************************************
1763 ** Literate programming system OPTIONS:
1765 --enable-info-utils build GNU info/makeinfo utilities],
1766 [case "$enableval" in
1767 yes) BuildInfoUtils='YES'
1769 no) BuildInfoUtils='NO'
1771 *) echo "I don't understand this option: --enable-info-utils=$enableval"
1775 AC_SUBST(BuildInfoUtils)
1777 # here ends a very big if DoingLiterate = 'literate' ...
1780 # -------------------------------------------------------------------------
1782 dnl * `NoFib' CONFIGURATION STUFF
1784 if test "xxx$DoingNoFib" = 'xxxnofib' ; then
1787 dnl ** which Haskell compiler to test with NoFib?
1788 WithNoFibHc='haskell-compiler-unspecified'
1789 WithNoFibHcType='HC_UNSPECIFIED'
1791 AC_ARG_WITH(hc-for-nofib,
1793 *******************************************************************
1794 ** NoFib HASKELL BENCHMARK SUITE OPTIONS:
1796 The Haskell compiler to compile the NoFib programs; this option, if
1797 used, overrides --with-hc=<...>:
1799 --with-hc-for-nofib=<Haskell compiler>
1800 ghc* => Glasgow Haskell invoked by the name given
1801 hbc* => Chalmers HBC, invoked by the name given
1802 nhc* => Niklas Rojemo's "nhc", invoked by the name given
1803 in-place => Use ghc/driver/ghc; i.e. you've built GHC
1804 and you want to use it un-installed ("in-place").
1808 WithNoFibHc=$withval
1810 hbc* ) WithNoFibHc=$withval
1812 nhc* ) WithNoFibHc=$withval
1815 WithNoFibHc='IN-PLACE'
1817 *) echo "I don't understand this option: --with-hc-for-nofib=$withval"
1822 # make sure that what they said makes sense.... set WithHappyHcType
1823 case $WithNoFibHc in
1824 haskell-compiler-unspecified ) # maybe they said something earlier...
1825 if test $WithHc = 'haskell-compiler-unspecified' ; then
1826 echo "Neither --with-hc nor --with-hc-for-nofib was properly set"
1831 WithNoFibHcType='HC_GLASGOW_GHC'
1832 AC_CHECK_PROG(have_ghc_nofib,$WithNoFibHc,$ac_dir/$ac_word)
1833 if test -z "$have_ghc_nofib"; then
1834 echo "Can't find Glasgow Haskell to compile NoFib with: $WithNoFibHc"
1838 hbc* ) # Look for the dastardly competition
1839 WithNoFibHcType='HC_CHALMERS_HBC'
1840 AC_CHECK_PROG(have_hbc,$WithNoFibHc,YES,NO)
1841 if test $have_hbc = 'NO' ; then
1842 echo "Can't find Chalmers HBC to compile NoFib with: $WithNoFibHc"
1846 nhc* ) # Look for Niklas Rojemo's "nhc"
1847 WithNoFibHcType='HC_ROJEMO_NHC'
1848 AC_CHECK_PROG(have_nhc,$WithNoFibHc,YES,NO)
1849 if test $have_nhc = 'NO' ; then
1850 echo "Can't find Niklas Rojemo's NHC to compile NoFib with: $WithNoFibHc"
1854 IN-PLACE) WithNoFibHcType='HC_GLASGOW_GHC'
1857 AC_SUBST(WithNoFibHc)
1858 AC_SUBST(WithNoFibHcType)
1860 dnl ** what mkworld \`setup' should be used?
1863 --with-setup=<setup> : What mkworld \`setup' should be used?
1864 Choices: ghc, hbc, nhc
1867 ghc ) MkWorldSetup='ghc'
1869 hbc ) MkWorldSetup='hbc'
1871 nhc ) MkWorldSetup='nhc'
1873 *) echo "I don't understand this option: --with-setup=$withval"
1878 if test $MkWorldSetup = 'std' ; then
1879 echo 'You must do --with-setup=... (one of: ghc, hbc, or nhc) for NoFib'
1883 # ---------------------------------------
1884 # What sets of tests should be run.
1886 IncludeRealNoFibTests='YES' # defaults
1887 IncludeSpectralNoFibTests='YES'
1888 IncludeImaginaryNoFibTests='YES'
1889 IncludeSpecialiseNoFibTests='NO'
1890 IncludeGHC_ONLYNoFibTests='NO'
1891 IncludePRIVATENoFibTests='NO'
1892 IncludeParallelNoFibTests='NO'
1894 dnl ** should *all* NoFib tests be run?
1895 # special catch-all variant
1896 AC_ARG_ENABLE(all-tests,
1897 [Possibly turn on *all* of the possible tests (a sane choice
1900 --enable-all-tests do *all* tests],
1901 [case "$enableval" in
1902 yes) IncludeGHC_ONLYNoFibTests='YES'
1903 IncludeSpecialiseNoFibTests='YES'
1904 IncludePRIVATENoFibTests='YES'
1905 IncludeParallelNoFibTests='YES'
1907 no) IncludeGHC_ONLYNoFibTests='NO'
1908 IncludeSpecialiseNoFibTests='NO'
1909 IncludePRIVATENoFibTests='NO'
1910 IncludeParallelNoFibTests='NO'
1912 IncludeRealNoFibTests='NO'
1913 IncludeSpectralNoFibTests='NO'
1914 IncludeImaginaryNoFibTests='NO'
1916 *) echo "I don't understand this option: --enable-all-tests=$enableval"
1921 dnl ** turn on/off individual categories of tests...
1922 # individual categories
1923 AC_ARG_ENABLE(imaginary-tests,
1925 Enable/disable individual categories of tests:
1927 --disable-imaginary-tests do *not* include imaginary tests],
1928 [case "$enableval" in
1929 yes) IncludeImaginaryNoFibTests='YES'
1931 no) IncludeImaginaryNoFibTests='NO'
1933 *) echo "I don't understand this option: --enable-imaginary-tests=$enableval"
1938 AC_ARG_ENABLE(spectral-tests,
1939 [--disable-spectral-tests do *not* include spectral tests],
1940 [case "$enableval" in
1941 yes) IncludeSpectralNoFibTests='YES'
1943 no) IncludeSpectralNoFibTests='NO'
1945 *) echo "I don't understand this option: --enable-spectral-tests=$enableval"
1950 AC_ARG_ENABLE(real-tests,
1951 [--disable-real-tests do *not* include real tests],
1952 [case "$enableval" in
1953 yes) IncludeRealNoFibTests='YES'
1955 no) IncludeRealNoFibTests='NO'
1957 *) echo "I don't understand this option: --enable-real-tests=$enableval"
1962 AC_ARG_ENABLE(GHC-ONLY-tests,
1963 [--enable-GHC-ONLY-tests include GHC_ONLY tests],
1964 [case "$enableval" in
1965 yes) IncludeGHC_ONLYNoFibTests='YES'
1967 no) IncludeGHC_ONLYNoFibTests='NO'
1969 *) echo "I don't understand this option: --enable-GHC-ONLY-tests=$enableval"
1974 AC_ARG_ENABLE(specialise-tests,
1975 [--enable-specialise-tests include specialisation tests],
1976 [case "$enableval" in
1977 yes) IncludeSpecialiseNoFibTests='YES'
1979 no) IncludeSpecialiseNoFibTests='NO'
1981 *) echo "I don't understand this option: --enable-specialise-tests=$enableval"
1986 AC_ARG_ENABLE(PRIVATE-tests,
1987 [--enable-PRIVATE-tests include PRIVATE tests],
1988 [case "$enableval" in
1989 yes) IncludePRIVATENoFibTests='YES'
1991 no) IncludePRIVATENoFibTests='NO'
1993 *) echo "I don't understand this option: --enable-PRIVATE-tests=$enableval"
1998 AC_ARG_ENABLE(parallel-tests,
1999 [--enable-parallel-tests include parallel tests
2001 [case "$enableval" in
2002 yes) IncludeParallelNoFibTests='YES'
2004 no) IncludeParallelNoFibTests='NO'
2006 *) echo "I don't understand this option: --enable-parallel-tests=$enableval"
2011 dnl not AC_SUBSTd because of 99-command seds (sigh)
2012 dnl (See what follows instead)
2013 dnl AC_SUBST(IncludeRealNoFibTests)
2014 dnl AC_SUBST(IncludeSpectralNoFibTests)
2015 dnl AC_SUBST(IncludeImaginaryNoFibTests)
2016 dnl AC_SUBST(IncludeGHC_ONLYNoFibTests)
2017 dnl AC_SUBST(IncludeSpecialiseNoFibTests)
2018 dnl AC_SUBST(IncludePRIVATENoFibTests)
2019 dnl AC_SUBST(IncludeParallelNoFibTests)
2021 # Here, by HACK means, we dump all the Include*NoFibTests info
2022 # into a file. See comment above.
2023 rm -f nofib/mkworld/buildinfo.jm
2024 echo creating nofib/mkworld/buildinfo.jm
2025 cat > nofib/mkworld/buildinfo.jm <<EOF
2026 XCOMM ** DO NOT EDIT! **
2027 XCOMM This file is obliterated every time 'configure' is run!
2030 for xx in Real Spectral Imaginary GHC_ONLY Specialise PRIVATE Parallel ; do
2031 eval "yy=\$Include${xx}NoFibTests"
2032 echo "#ifndef Include${xx}NoFibTests" >> nofib/mkworld/buildinfo.jm
2033 echo "#define Include${xx}NoFibTests $yy" >> nofib/mkworld/buildinfo.jm
2034 echo "#endif" >> nofib/mkworld/buildinfo.jm
2037 # Here, by HACK means, we dump all the Build_ info
2038 # into a file. See comment above.
2039 rm -f nofib/mkworld/buildinfo.jm
2040 echo creating nofib/mkworld/buildinfo.jm
2041 cat > nofib/mkworld/buildinfo.jm <<EOF
2042 XCOMM ** DO NOT EDIT! **
2043 XCOMM This file is obliterated every time 'configure' is run!
2046 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
2047 eval "yy=\$Build_$xx"
2048 echo "#ifndef Build_$xx" >> nofib/mkworld/buildinfo.jm
2049 echo "#define Build_$xx $yy" >> nofib/mkworld/buildinfo.jm
2050 echo "#endif" >> nofib/mkworld/buildinfo.jm
2053 # here ends a very big if DoingNoFib = 'nofib' ...
2056 # -------------------------------------------------------------------------
2058 dnl * extract non-header files with substitution (end)
2060 AC_SUBST(MkWorldSetup)
2062 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)
2064 echo '************************************************'
2065 echo '*** NOW DO: sh < STARTUP'
2066 echo '************************************************'