[project @ 1996-07-19 18:36:04 by partain]
[ghc-hetmet.git] / configure.in
1 dnl == autoconf source for the Glasgow FP tools ==
2 dnl (grep for '^dnl' to see the outline of this file)
3 dnl
4 dnl * INITIAL SETUP, CHOICE OF PLATFORM(S)
5 #!/bin/sh
6 #
7 # (c) The AQUA Project, Glasgow University, 1994-1995
8 #
9 # Configure script for the Glasgow functional programming tools
10 # (created automagically by autoconf...do not edit by hand)
11 #
12 # Do "./configure --help" to see what flags are available.
13 # (Better yet, read the documentation!)
14 #
15 # -------------------------------------------------------------------------
16 AC_INIT(STARTUP.in)
17 #
18 # Prepare to generate the following header files
19 #
20 AC_CONFIG_HEADER(ghc/includes/config.h)
21 # and  literate/config.h ???
22 # ToDo !!!!!!!!!!!!!!!!
23 #
24 # No, we don't do `--srcdir'...
25 if test x"$srcdir" != 'x.' ; then
26     echo "This configuration does not support the \`--srcdir' option."
27     exit 1
28 fi
29
30 # -------------------------------------------------------------------------
31 dnl ** choose what blobs to build (ghc,hslibs,haggis,happy,nofib,????)
32
33 # set to the name for the dir if doing it, otherwise empty
34 DoingGHC='ghc'
35 DoingHsLibs=''
36 DoingNoFib=''
37 DoingHappy=''
38 DoingHaggis=''
39 DoingLiterate=''
40 # the following are not normally changed
41 DoingMkWorld='mkworld'
42 DoingGlaFpUtils='glafp-utils'
43
44 MkWorldSetup='std'
45
46 AC_ARG_ENABLE(ghc,
47    [
48 **********************************************************************
49 * Configuration options for the Glasgow functional-programming tools *
50 **********************************************************************
51
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).)
55
56 Second, you may set one of a few applies-in-all-cases options.
57 For example, --with-tmpdir=/usr/tmp.
58
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.
62
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
65 vice versa.
66
67 If you are confused, don't forget the installation documents that came
68 with the software!
69
70 *******************************************************************
71 ** FOR SELECTING WHICH GLASGOW FP TOOLS TO BUILD:
72
73 --disable-ghc     do *not* build GHC as part of Glasgow FP tools],
74    [case "$enableval" in
75         yes) DoingGHC='ghc'
76              ;;
77         no)  DoingGHC=''
78              ;;
79         *)   echo "I don't understand this option: --enable-ghc=$enableval"
80              exit 1
81              ;;
82     esac])
83 if test "xxx$DoingGHC" = 'xxxghc' -a \( ! -d ghc \) ; then
84     DoingGHC=''
85     echo 'Doing --disable-ghc, as there is no ghc directory'
86 fi
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=''
94 fi
95
96 AC_ARG_ENABLE(hslibs,
97    [--enable-hslibs   build suite of Haskell libraries],
98    [case "$enableval" in
99         yes) DoingHsLibs='hslibs'
100              ;;
101         no)  DoingHsLibs=''
102              ;;
103         *)   echo "I don't understand this option: --enable-hslibs=$enableval"
104              exit 1
105              ;;
106     esac])
107 if test "xxx$DoingHsLibs" = 'xxxhslibs' -a \( ! -d hslibs \) ; then
108     DoingHsLibs=''
109     echo 'Doing --disable-hslibs, as there is no hslibs directory'
110 fi
111 hslibs_mkworld_site_hslibs_jm='hslibs/mkworld/site-hslibs.jm'
112 if test "xxx$DoingHsLibs" = 'xxx' ; then
113     hslibs_mkworld_site_hslibs_jm=''
114 fi
115
116 AC_ARG_ENABLE(nofib,
117    [--enable-nofib    build NoFib suite as part of Glasgow FP tools],
118    [case "$enableval" in
119         yes) DoingNoFib='nofib'
120              ;;
121         no)  DoingNoFib=''
122              ;;
123         *)   echo "I don't understand this option: --enable-nofib=$enableval"
124              exit 1
125              ;;
126     esac])
127 if test "xxx$DoingNoFib" = 'xxxnofib' -a \( ! -d nofib \) ; then
128     DoingNoFib=''
129     echo 'Doing --disable-nofib, as there is no nofib directory'
130 fi
131 nofib_mkworld_site_nofib_jm='nofib/mkworld/site-nofib.jm'
132 if test "xxx$DoingNoFib" = 'xxx' ; then
133     nofib_mkworld_site_nofib_jm=''
134 fi
135
136 AC_ARG_ENABLE(happy,
137    [--enable-happy    build Happy parser-generator as part of Glasgow FP tools],
138    [case "$enableval" in
139         yes) DoingHappy='happy'
140              ;;
141         no)  DoingHappy=''
142              ;;
143         *)   echo "I don't understand this option: --enable-happy=$enableval"
144              exit 1
145              ;;
146     esac])
147 if test "xxx$DoingHappy" = 'xxxhappy' -a \( ! -d happy \) ; then
148     DoingHappy=''
149     echo 'Doing --disable-happy, as there is no happy directory'
150 fi
151
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'
156              ;;
157         no)  DoingHaggis=''
158              ;;
159         *)   echo "I don't understand this option: --enable-haggis=$enableval"
160              exit 1
161              ;;
162     esac])
163 if test "xxx$DoingHaggis" = 'xxxhaggis' -a \( ! -d haggis \) ; then
164     DoingHaggis=''
165     echo 'Doing --disable-haggis, as there is no haggis directory'
166 fi
167
168 AC_ARG_ENABLE(literate,
169    [
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'
174              ;;
175         no)  DoingLiterate=''
176              ;;
177         *)   echo "I don't understand this option: --enable-literate=$enableval"
178              exit 1
179              ;;
180     esac])
181 if test "xxx$DoingLiterate" = 'xxxliterate' -a \( ! -d literate \) ; then
182     DoingLiterate=''
183     echo 'Doing --disable-literate, as there is no literate directory'
184 fi
185
186 AC_ARG_ENABLE(mkworld,
187    [--disable-mkworld     do *not* build \`mkworld' configuration stuff],
188    [case "$enableval" in
189         yes) DoingMkWorld='mkworld'
190              ;;
191         no)  DoingMkWorld=''
192              ;;
193         *)   echo "I don't understand this option: --enable-mkworld=$enableval"
194              exit 1
195              ;;
196     esac])
197 if test "xxx$DoingMkWorld" = 'xxxmkworld' -a \( ! -d mkworld \) ; then
198     DoingMkWorld=''
199     echo 'Doing --disable-mkworld, as there is no mkworld directory'
200 fi
201
202 AC_ARG_ENABLE(glafp-utils,
203    [--disable-glafp-utils do *not* build \`glafp utilities'],
204    [case "$enableval" in
205         yes) DoingGlaFpUtils='glafp-utils'
206              ;;
207         no)  DoingGlaFpUtils=''
208              ;;
209         *)   echo "I don't understand this option: --enable-glafp-utils=$enableval"
210              exit 1
211              ;;
212     esac])
213 if test "xxx$DoingGlaFpUtils" = 'xxxglafp-utils' -a \( ! -d glafp-utils \) ; then
214     DoingGlaFpUtils=''
215     echo 'Doing --disable-glafp-utils, as there is no glafp-utils directory'
216 fi
217
218 AC_SUBST(DoingGHC)
219 AC_SUBST(DoingHsLibs)
220 AC_SUBST(DoingNoFib)
221 AC_SUBST(DoingHappy)
222 AC_SUBST(DoingHaggis)
223 AC_SUBST(DoingLiterate)
224 AC_SUBST(DoingMkWorld)
225 AC_SUBST(DoingGlaFpUtils)
226
227 # -------------------------------------------------------------------------
228 dnl ** choose host(/target/build) platform
229 # Guess host/target/build platform(s) if necessary.
230 # Partly stolen from GCC "configure".
231 #
232 if test "x$target" = xNONE ; then
233     if test "x$nonopt" != xNONE ; then
234         target=$nonopt
235     else
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
240         else
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
245             fi
246             exit 1
247         fi
248     fi
249 fi
250
251 # "$host" defaults to "$target"
252 if test "x$host" = xNONE ; then
253     host=$target
254 fi
255 # "$build" defaults to "$host"
256 if test "x$build" = xNONE ; then
257     build=$host
258 else
259     echo "This configuration does not support the \`--build' option."
260     exit 1
261 fi
262
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
268
269 if test x"$TargetPlatform" != x"$HostPlatform" ; then
270     echo "GHC configuration does not support differing host/target (i.e., cross-compiling)"
271     exit 1
272 fi
273
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)
277 # separately.
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'
284         HostArch_CPP='alpha'
285         HostVendor_CPP='dec'
286         HostOS_CPP='osf1'
287         ;;
288 hppa1.1-hp-hpux*)
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'
294         HostVendor_CPP='hp'
295         HostOS_CPP='hpux'
296         ;;
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'
302         HostArch_CPP='i386'
303         HostVendor_CPP='unknown'
304         HostOS_CPP='linuxaout'
305         ;;
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'
311         HostArch_CPP='i386'
312         HostVendor_CPP='unknown'
313         HostOS_CPP='linux'
314         ;;
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'
320         HostArch_CPP='i386'
321         HostVendor_CPP='unknown'
322         HostOS_CPP='freebsd'
323         ;;
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'
329         HostArch_CPP='i386'
330         HostVendor_CPP='unknown'
331         HostOS_CPP='netbsd'
332         ;;
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'
338         HostArch_CPP='i386'
339         HostVendor_CPP='unknown'
340         HostOS_CPP='solaris2'
341         ;;
342 m68k-next-nextstep2)
343         HostPlatform_CPP='m68k_next_nextstep2'
344         HostArch_CPP='m68k'
345         HostVendor_CPP='next'
346         HostOS_CPP='nextstep2'
347         ;;
348 m68k-next-nextstep3)
349         HostPlatform_CPP='m68k_next_nextstep3'
350         HostArch_CPP='m68k'
351         HostVendor_CPP='next'
352         HostOS_CPP='nextstep3'
353         ;;
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'
359         HostArch_CPP='i386'
360         HostVendor_CPP='next'
361         HostOS_CPP='nextstep3'
362         ;;
363 m68k-sun-sunos4*)
364         HostPlatform=m68k-sun-sunos4
365         TargetPlatform=m68k-sun-sunos4 #hack
366         BuildPlatform=m68k-sun-sunos4 #hack
367         HostPlatform_CPP='m68k_sun_sunos4'
368         HostArch_CPP='m68k'
369         HostVendor_CPP='sun'
370         HostOS_CPP='sunos4'
371         ;;
372 mips-dec-ultrix*)
373         HostPlatform_CPP='mips_dec_ultrix'
374         HostArch_CPP='mipsel'   # NB a little different
375         HostVendor_CPP='dec'
376         HostOS_CPP='ultrix'
377         ;;
378 mips-sgi-irix*)
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
384         HostVendor_CPP='sgi'
385         HostOS_CPP='irix'
386         ;;
387 powerpc-ibm-aix*)
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'
393         HostVendor_CPP='ibm'
394         HostOS_CPP='aix'
395         ;;
396 sparc-sun-sunos4*)
397         HostPlatform=sparc-sun-sunos4
398         TargetPlatform=sparc-sun-sunos4 #hack
399         BuildPlatform=sparc-sun-sunos4 #hack
400         HostPlatform_CPP='sparc_sun_sunos4'
401         HostArch_CPP='sparc'
402         HostVendor_CPP='sun'
403         HostOS_CPP='sunos4'
404         ;;
405 sparc-sun-solaris2*)
406         HostPlatform=sparc-sun-solaris2
407         TargetPlatform=sparc-sun-solaris2 #hack
408         BuildPlatform=sparc-sun-solaris2 #hack
409         HostPlatform_CPP='sparc_sun_solaris2'
410         HostArch_CPP='sparc'
411         HostVendor_CPP='sun'
412         HostOS_CPP='solaris2'
413         ;;
414 *)
415         echo "Unrecognised platform: $HostPlatform"
416         exit 1
417         ;;
418 esac
419
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"
425
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)
444 AC_SUBST(HostOS_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)
450
451 # -------------------------------------------------------------------------
452 dnl
453 dnl * _GENERAL_ CONFIGURATION CHECKS
454 #
455 dnl ** are we at Glasgow?
456 #
457 if test -d /local/fp -a -d /users/fp/simonpj; then
458     echo "Brilliant!  You must be a Glaswegian."
459     AT_GLASGOW=1
460     if test "x$prefix" = xNONE; then
461         prefix=/local/fp
462         echo "Assuming installation prefix of $prefix"
463     fi
464     if test "x$exec_prefix" = xNONE; then
465         # Sigh: the defn of exec_prefix does not include the bin* bit...
466         # WDP 94/07
467         exec_prefix=/local/fp
468         echo "Assuming binary installation prefix of $exec_prefix"
469     fi
470 else
471     AT_GLASGOW=0
472 fi
473 AC_SUBST(AT_GLASGOW)
474 test -n "$verbose" && echo "    setting AT_GLASGOW to $AT_GLASGOW"
475 #
476 #
477 #
478 dnl ** does #! work?
479 #
480 AC_SYS_INTERPRETER()
481 #
482 dnl ** look for `perl', but watch out for version 4.035
483 #
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?"
488     exit 1
489 else
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
493             echo "
494 ************************************************************************
495 Uh-oh...looks like you have Perl 4.035.
496
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 ************************************************************************
503 "
504         fi
505     else
506         if egrep "version 5" conftest.out >/dev/null 2>&1; then
507             :
508         else
509             echo "I'm not sure if your version of perl will work,"
510             echo "but it's worth a shot, eh?"
511         fi
512     fi
513     rm -fr conftest*
514 fi
515 #
516 dnl ** does #!.../perl work? (sometimes it's too long...)
517 echo "checking if \`#!$PerlCmd' works in shell scripts"
518 echo "#!$PerlCmd"'
519 exit $1;
520 ' > conftest
521 chmod u+x conftest
522 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
523 if test $? -ne 69; then
524    echo "It does!"
525 else
526    echo "It doesn't!  Perhaps \`#!$PerlCmd' is too long (often 32 characters max)"
527    exit 1
528 fi
529 rm -f conftest
530 #
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
534     :
535 else
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);'
539     exit 1
540 fi
541 #
542 #
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
546 #
547 AC_PROG_CC
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?"
551     HaveGcc='NO'
552 else
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?"
559         HaveGcc='YES'
560     fi
561     rm -fr conftest*
562 fi
563 AC_SUBST(HaveGcc)
564 AC_C_CROSS
565 #
566 dnl ** figure out how to do context diffs
567 # (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
568 #
569 echo foo > conftest1
570 echo foo > conftest2
571 if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then
572     ContextDiffCmd='diff -C 1'
573 else
574     if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then
575         ContextDiffCmd='diff -c1'
576     else
577         echo "Can't figure out how to do context diffs."
578         echo "Neither \`diff -C 1' nor \`diff -c1' works."
579         exit 1
580     fi
581 fi
582 rm -f conftest1 conftest2
583 AC_SUBST(ContextDiffCmd)
584 #
585 dnl ** look for a decent parser generator (bison preferred)
586 #
587 #
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."
595         YaccCmd=:
596     else
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
603             else
604                 echo "I'm assuming the worst...no parser generator at all"
605                 YaccCmd=:
606             fi
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"
610             YaccCmd=:
611         else
612             echo "But that's okay...as far as I know, your yacc will work."
613         fi
614         rm -fr conftest*
615     fi
616 fi
617
618 dnl ** Find lex command (lex or flex) and library (-ll or -lfl)
619 #
620 AC_PROG_LEX
621
622 #--------------------------------------------------------------
623 WithHc='haskell-compiler-unspecified'
624 WithHcType='HC_UNSPECIFIED'
625
626 AC_ARG_WITH(hc,
627    [
628 *******************************************************************
629 ** GENERAL OPTIONS WHICH APPLY TO ALL TOOLS:
630
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").
639    ],
640    [case "$withval" in
641         ghc* | glhc* )
642                 WithHc=$withval
643                 ;;
644         hbc* )  WithHc=$withval
645                 ;;
646         nhc* )  WithHc=$withval
647                 ;;
648         c | C)  WithHc='C'
649                 ;;
650         in-place )
651                 WithHc='IN-PLACE'
652                 ;;
653         *)      echo "I don't understand this option: --with-hc=$withval"
654                 exit 1
655                 ;;
656     esac])
657
658 # make sure that what they said makes sense.... set WithHcType
659 case $WithHc in
660     haskell-compiler-unspecified ) # maybe they will say something later...
661             ;;
662     ghc* | glhc* )
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"
667                 exit 1
668             fi
669             ;;
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"
675                 exit 1
676             fi
677             ;;
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"
683                 exit 1
684             fi
685             ;;
686     c | C)  WithHcType='HC_USE_HC_FILES'
687             ;;
688     IN-PLACE) WithHcType='HC_GLASGOW_GHC'
689             ;;
690 esac
691 AC_SUBST(WithHc)
692 AC_SUBST(WithHcType)
693
694 dnl ** Possibly use something else instead of 'gcc'.
695 WhatGccIsCalled=gcc
696 AC_ARG_WITH(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)
701
702 dnl ** Choose which make to use (default 'make -r')
703 MakeCmd='make -r'
704 AC_ARG_WITH(make,
705    [ 
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"]) 
713 AC_SUBST(MakeCmd)
714
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.
719 TmpDir='/tmp'
720 AC_ARG_WITH(tmpdir,
721    [
722 --with-tmpdir=<temp directory> 
723         Use an alternative directory for temporary files (presumably
724         because /tmp is too small).],
725    [TmpDir="$withval"])
726 AC_SUBST(TmpDir)
727
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.
731 HcMaxHeapWasSet='NO'
732 HcMaxHeap='0'
733 AC_ARG_WITH(max-heap,
734    [
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)
741 AC_SUBST(HcMaxHeap)
742
743 dnl ** figure out about mkdependHS
744 MkDependHSCmd=':'
745 if test -f ./ghc/utils/mkdependHS/mkdependHS \
746      -o -f ./ghc/utils/mkdependHS/mkdependHS.prl ; then
747     MkDependHSCmd='TopDirPwd/ghc/utils/mkdependHS/mkdependHS'
748 else
749     AC_CHECK_PROG(have_mkdependHS,mkdependHS,YES,NO)
750     if test $have_mkdependHS = 'YES' ; then
751         MkDependHSCmd='mkdependHS'
752     fi
753 fi
754 AC_SUBST(MkDependHSCmd)
755
756 # -------------------------------------------------------------------------
757 #
758 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
759 #
760 AC_PROG_CPP
761 if echo $CPP | egrep gcc >/dev/null 2>&1; then
762     echo > conftest.c
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)
767     GNUCPP="gcc -E"
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"
773     rm -fr conftest*
774 fi
775 # ToDo: what are GNUCPP and RAWCPP if the above if didn't fire? WDP 95/02
776 AC_SUBST(GNUCPP)
777 AC_SUBST(RAWCPP)
778 #
779 dnl ** figure out how to do a BSD-ish install
780 #
781 AC_PROG_INSTALL
782 #
783 dnl ** figure out what arguments to feed to `ar'
784 #
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"
788     exit 1;
789 fi
790 if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
791     ArCmd="$ArCmd clqs"
792     NeedRanLib=''
793 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
794     ArCmd="$ArCmd cqs"
795     NeedRanLib=''
796 elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
797     ArCmd="$ArCmd clq"
798     NeedRanLib='YES'
799 elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
800     ArCmd="$ArCmd cq"
801     NeedRanLib='YES'
802 elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
803     ArCmd="$ArCmd cq"
804     NeedRanLib='YES'
805 else
806     echo "I can't figure out how to use your $ArCmd"
807     exit 1
808 fi
809 rm -rf conftest*
810 test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
811 AC_SUBST(ArCmd)
812 #
813 dnl ** figure out if we need `ranlib'
814 #
815 if test -z "$NeedRanLib"; then
816     # we hackily override a few platforms on a case-by-case basis
817     case $HostPlatform in
818     i386-*-linuxaout)
819         NeedRanLib='YES'
820         ;;
821     *)  RANLIB=':'
822         ;;
823     esac
824     test -n "$verbose" && echo "        setting RANLIB to $RANLIB"
825 fi
826 if test -n "$NeedRanLib"; then
827     AC_PROG_RANLIB
828 fi
829 AC_SUBST(RANLIB)
830 #
831 dnl ** check for full ANSI header (.h) files
832 #
833 AC_HEADER_STDC
834 #
835 dnl ** check for specific header (.h) files that we are interested in
836 #
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 )
838 #
839 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
840 #
841 AC_HEADER_TIME
842 #
843 dnl ** how do we get a timezone name?
844 #
845 AC_STRUCT_TIMEZONE
846
847 dnl ** determine the type of signal()
848 #
849 AC_TYPE_SIGNAL
850 #
851 dnl ** check for specific library functions that we are interested in
852 #
853 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect setitimer stat sysconf timelocal times vadvise vfork)
854 #
855 dnl ** can we get alloca?
856 #
857 AC_FUNC_ALLOCA
858 #
859 dnl ** determine whether or not const works
860 #
861 AC_C_CONST
862 #
863 dnl ** check for leading underscores in symbol names
864 # We assume that they _aren't_ there if anything goes wrong.
865 #
866 echo checking for a leading underscore in symbol names
867 AC_TRY_RUN(
868 [#ifdef HAVE_NLIST_H
869 #include <nlist.h>
870 struct nlist xYzzY[] = {{"_xYzzY", 0},{0}};
871 #endif
872
873 main(argc, argv)
874 int argc;
875 char **argv;
876 {
877 #ifdef HAVE_NLIST_H
878     if(nlist(argv[0], xYzzY) == 0 && xYzzY[0].n_value != 0)
879         exit(0);
880 #endif
881     exit(1);
882 }], LeadingUnderscore='YES', LeadingUnderscore='NO', LeadingUnderscore='YES')
883 test -n "$verbose" && echo "    setting LeadingUnderscore to $LeadingUnderscore"
884
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
891 Build_normal='YES'
892 Build_p='YES'
893 Build_t='NO'
894 Build_u='NO'
895 # _mc = concurrent; _mr = profiled concurrent; _mt = ticky concurrent
896 # _mp = parallel; _mg = gransim
897 Build_mc='NO'
898 Build_mr='NO'
899 Build_mt='NO'
900 Build_mp='NO'
901 Build_mg='NO'
902 # GC builds: _2s, _1s, _du (, _gn)
903 Build_2s='NO'
904 Build_1s='NO'
905 Build_du='NO'
906 # user builds: a...o
907 Build_a='NO'
908 Build_b='NO'
909 Build_c='NO'
910 Build_d='NO'
911 Build_e='NO'
912 Build_f='NO'
913 Build_g='NO'
914 Build_h='NO'
915 Build_i='NO'
916 Build_j='NO'
917 Build_k='NO'
918 Build_l='NO'
919 Build_m='NO'
920 Build_n='NO'
921 Build_o='NO'
922 Build_A='NO'
923 Build_B='NO'
924 # More could be added here...
925
926 AC_ARG_ENABLE(normal-build,
927    [
928 *******************************************************************
929 ** \`GHC' (GLASGOW HASKELL COMPILER) OPTIONS:
930
931 Choose all the \`builds' of GHC that you want:
932
933 --disable-normal-build do *not* build GHC for normal sequential code],
934    [case "$enableval" in
935         yes) Build_normal='YES'
936              ;;
937         no)  Build_normal='NO'
938              ;;
939         *)   echo "I don't understand this option: --enable-normal-build=$enableval"
940              exit 1
941              ;;
942     esac])
943
944 AC_ARG_ENABLE(profiling,
945    [--disable-profiling    do *not* build profiling features],
946    [case "$enableval" in
947         yes) Build_p='YES'
948              ;;
949         no)  Build_p='NO'
950              ;;
951         *)   echo "I don't understand this option: --enable-profiling=$enableval"
952              exit 1
953              ;;
954     esac])
955
956 AC_ARG_ENABLE(ticky,
957    [--enable-ticky         build for \`ticky-ticky' profiling (for implementors)],
958    [case "$enableval" in
959         yes) Build_t='YES'
960              ;;
961         no)  Build_t='NO'
962              ;;
963         *)   echo "I don't understand this option: --enable-ticky=$enableval"
964              exit 1
965              ;;
966     esac])
967
968 AC_ARG_ENABLE(concurrent,
969    [--enable-concurrent    turn on \`concurrent Haskell' features],
970    [case "$enableval" in
971         yes) Build_mc='YES'
972              ;;
973         no)  Build_mc='NO'
974              ;;
975         *)   echo "I don't understand this option: --enable-concurrent=$enableval"
976              exit 1
977              ;;
978     esac])
979
980 AC_ARG_ENABLE(profiled-concurrent,
981    [--enable-profiled-concurrent turn on profiling for \`concurrent Haskell'],
982    [case "$enableval" in
983         yes) Build_mr='YES'
984              ;;
985         no)  Build_mr='NO'
986              ;;
987         *)   echo "I don't understand this option: --enable-profiled-concurrent=$enableval"
988              exit 1
989              ;;
990     esac])
991
992 AC_ARG_ENABLE(ticky-concurrent,
993    [--enable-ticky-concurrent turn on \`ticky-ticky' profiling for \`concurrent Haskell'],
994    [case "$enableval" in
995         yes) Build_mt='YES'
996              ;;
997         no)  Build_mt='NO'
998              ;;
999         *)   echo "I don't understand this option: --enable-ticky-concurrent=$enableval"
1000              exit 1
1001              ;;
1002     esac])
1003
1004 AC_ARG_ENABLE(parallel,
1005    [--enable-parallel      turn on \`parallel Haskell' features],
1006    [case "$enableval" in
1007         yes) Build_mp='YES';
1008              ;;
1009         no)  Build_mp='NO'
1010              ;;
1011         *)   echo "I don't understand this option: --enable-parallel=$enableval"
1012              exit 1
1013              ;;
1014     esac])
1015
1016 AC_ARG_ENABLE(gransim,
1017    [--enable-gransim       turn on GranSim parallel simulator],
1018    [case "$enableval" in
1019         yes) Build_mg='YES';
1020              ;;
1021         no)  Build_mg='NO'
1022              ;;
1023         *)   echo "I don't understand this option: --enable-gransim=$enableval"
1024              exit 1
1025              ;;
1026     esac])
1027
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) Build_2s='YES'
1032              ;;
1033         no)  Build_2s='NO'
1034              ;;
1035         *)   echo "I don't understand this option: --enable-gc-2s=$enableval"
1036              exit 1
1037              ;;
1038     esac])
1039
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) Build_1s='YES'
1044              ;;
1045         no)  Build_1s='NO'
1046              ;;
1047         *)   echo "I don't understand this option: --enable-gc-1s=$enableval"
1048              exit 1
1049              ;;
1050     esac])
1051
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) Build_du='YES'
1056              ;;
1057         no)  Build_du='NO'
1058              ;;
1059         *)   echo "I don't understand this option: --enable-gc-du=$enableval"
1060              exit 1
1061              ;;
1062     esac])
1063
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) Build_a='YES'
1068              ;;
1069         no)  Build_a='NO'
1070              ;;
1071         *)   echo "I don't understand this option: --enable-user-way-a=$enableval"
1072              exit 1
1073              ;;
1074     esac])
1075
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) Build_b='YES'
1080              ;;
1081         no)  Build_b='NO'
1082              ;;
1083         *)   echo "I don't understand this option: --enable-user-way-b=$enableval"
1084              exit 1
1085              ;;
1086     esac])
1087
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) Build_c='YES'
1092              ;;
1093         no)  Build_c='NO'
1094              ;;
1095         *)   echo "I don't understand this option: --enable-user-way-c=$enableval"
1096              exit 1
1097              ;;
1098     esac])
1099
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) Build_d='YES'
1104              ;;
1105         no)  Build_d='NO'
1106              ;;
1107         *)   echo "I don't understand this option: --enable-user-way-d=$enableval"
1108              exit 1
1109              ;;
1110     esac])
1111
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) Build_e='YES'
1116              ;;
1117         no)  Build_e='NO'
1118              ;;
1119         *)   echo "I don't understand this option: --enable-user-way-e=$enableval"
1120              exit 1
1121              ;;
1122     esac])
1123
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) Build_f='YES'
1128              ;;
1129         no)  Build_f='NO'
1130              ;;
1131         *)   echo "I don't understand this option: --enable-user-way-f=$enableval"
1132              exit 1
1133              ;;
1134     esac])
1135
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) Build_g='YES'
1140              ;;
1141         no)  Build_g='NO'
1142              ;;
1143         *)   echo "I don't understand this option: --enable-user-way-g=$enableval"
1144              exit 1
1145              ;;
1146     esac])
1147
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) Build_h='YES'
1152              ;;
1153         no)  Build_h='NO'
1154              ;;
1155         *)   echo "I don't understand this option: --enable-user-way-h=$enableval"
1156              exit 1
1157              ;;
1158     esac])
1159
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) Build_i='YES'
1164              ;;
1165         no)  Build_i='NO'
1166              ;;
1167         *)   echo "I don't understand this option: --enable-user-way-i=$enableval"
1168              exit 1
1169              ;;
1170     esac])
1171
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) Build_j='YES'
1176              ;;
1177         no)  Build_j='NO'
1178              ;;
1179         *)   echo "I don't understand this option: --enable-user-way-j=$enableval"
1180              exit 1
1181              ;;
1182     esac])
1183
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) Build_k='YES'
1188              ;;
1189         no)  Build_k='NO'
1190              ;;
1191         *)   echo "I don't understand this option: --enable-user-way-k=$enableval"
1192              exit 1
1193              ;;
1194     esac])
1195
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) Build_l='YES'
1200              ;;
1201         no)  Build_l='NO'
1202              ;;
1203         *)   echo "I don't understand this option: --enable-user-way-l=$enableval"
1204              exit 1
1205              ;;
1206     esac])
1207
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) Build_m='YES'
1212              ;;
1213         no)  Build_m='NO'
1214              ;;
1215         *)   echo "I don't understand this option: --enable-user-way-m=$enableval"
1216              exit 1
1217              ;;
1218     esac])
1219
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) Build_n='YES'
1224              ;;
1225         no)  Build_n='NO'
1226              ;;
1227         *)   echo "I don't understand this option: --enable-user-way-n=$enableval"
1228              exit 1
1229              ;;
1230     esac])
1231
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) Build_o='YES'
1236              ;;
1237         no)  Build_o='NO'
1238              ;;
1239         *)   echo "I don't understand this option: --enable-user-way-o=$enableval"
1240              exit 1
1241              ;;
1242     esac])
1243
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) Build_A='YES'
1248              ;;
1249         no)  Build_A='NO'
1250              ;;
1251         *)   echo "I don't understand this option: --enable-user-way-A=$enableval"
1252              exit 1
1253              ;;
1254     esac])
1255
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) Build_B='YES'
1260              ;;
1261         no)  Build_B='NO'
1262              ;;
1263         *)   echo "I don't understand this option: --enable-user-way-B=$enableval"
1264              exit 1
1265              ;;
1266     esac])
1267
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.
1271
1272 # -------------------------------------------------------------------------
1273 dnl
1274 dnl * `GHC' CONFIGURATION STUFF
1275
1276 if test "xxx$DoingGHC" = 'xxxghc' ; then
1277 # a very big "if"!
1278 #
1279 #---------------------------------------------------------------
1280 #
1281 dnl ** which Haskell compiler to bootstrap GHC with?
1282 # Figure out what Haskell compiler(s) to use for booting
1283 #
1284 # first, the defaults...
1285 WithGhcHc='haskell-compiler-unspecified'
1286 WithGhcHcType='HC_UNSPECIFIED'
1287 GhcBuilderVersion='28'
1288
1289 AC_ARG_WITH(hc-for-ghc,
1290    [
1291 The Haskell compiler for bootstrapping GHC (if any); this option,
1292 if used, overrides --with-hc=<...>:
1293
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.
1298    ],
1299    [case "$withval" in
1300         ghc* | glhc* )
1301                 WithGhcHc=$withval
1302                 ;;
1303         hbc* )  echo "HBC will not compile GHC 0.26 as is (sigh)"
1304                 exit 1
1305                 ;;
1306         c | C)  WithGhcHc='C'
1307                 WithGhcHcType='HC_USE_HC_FILES'
1308                 ;;
1309         *)      echo "I don't understand this option: --with-hc-for-ghc=$withval"
1310                 exit 1
1311                 ;;
1312     esac])
1313
1314 # make sure that what they said makes sense.... set WithGhcHcType
1315 case $WithGhcHc in
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"
1319                 exit 1
1320             fi
1321             if test $WithHcType = 'HC_GLASGOW_GHC' ; then
1322                 touch conftest.o
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`
1326                 rm -rf conftest*
1327             fi
1328             ;;
1329     ghc* | glhc* )
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"
1334                 exit 1
1335             else
1336                 touch conftest.o
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`
1340                 rm -rf conftest*
1341             fi
1342             ;;
1343     c | C)  WithGhcHcType='HC_USE_HC_FILES'
1344             ;;
1345 esac
1346 AC_SUBST(GhcBuilderVersion)
1347 AC_SUBST(WithGhcHc)
1348 AC_SUBST(WithGhcHcType)
1349
1350 dnl ** use portable (slow) C? -- preferably not
1351 GhcWithRegisterised='YES'
1352 AC_ARG_ENABLE(portable-C,
1353    [Other things for GHC:
1354
1355 --enable-portable-C       use portable C (slow), not \`registerised' (fast)],
1356    [case "$enableval" in
1357         yes) GhcWithRegisterised='NO'
1358              ;;
1359         no)  GhcWithRegisterised='YES'
1360              ;;
1361         *)   echo "I don't understand this option: --enable-portable-C=$enableval"
1362              exit 1
1363              ;;
1364     esac])
1365
1366 if test $GhcWithRegisterised = 'YES'; then
1367     case $HostPlatform in
1368     alpha-* | hppa1.1-* | i386-* | m68k-* | mips-* | powerpc-* | sparc-* )
1369        ;;
1370     *)
1371        echo "Don't know non-portable C tricks for this platform: $HostPlatform"
1372        GhcWithRegisterised='NO'
1373        ;;
1374     esac
1375 fi
1376 AC_SUBST(GhcWithRegisterised)
1377
1378 if test $GhcWithRegisterised = 'NO'; then
1379     Build_u='YES'
1380     Build_normal='NO'
1381     Build_p='NO'
1382 fi
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...
1387
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'
1395              ;;
1396         no)  GhcWithHscBuiltViaC='NO'
1397              ;;
1398         *)   echo "I don't understand this option: --enable-hsc-built-via-C=$enableval"
1399              exit 1
1400              ;;
1401     esac])
1402 case $WithGhcHc in
1403     haskell-compiler-unspecified ) # maybe they said something earlier...
1404             if test $WithHcType = 'HC_USE_HC_FILES' ; then
1405                 GhcWithHscBuiltViaC='YES'
1406             fi
1407             ;;
1408     c | C)  GhcWithHscBuiltViaC='YES'
1409             ;;
1410     *)      ;;
1411 esac
1412 AC_SUBST(GhcWithHscBuiltViaC)
1413
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'
1420              ;;
1421         no)  GhcWithHscOptimised='NO'
1422              ;;
1423         *)   echo "I don't understand this option: --enable-hsc-optimised=$enableval"
1424              exit 1
1425              ;;
1426     esac])
1427 AC_SUBST(GhcWithHscOptimised)
1428
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'
1435              ;;
1436         no)  GhcWithHscDebug='NO'
1437              ;;
1438         *)   echo "I don't understand this option: --enable-hsc-debug=$enableval"
1439              exit 1
1440              ;;
1441     esac])
1442 AC_SUBST(GhcWithHscDebug)
1443
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'
1451              ;;
1452         no)  GhcWithNativeCodeGen='NO'
1453              ;;
1454         *)   echo "I don't understand this option: --enable-native-code-generator=$enableval"
1455              exit 1
1456              ;;
1457     esac])
1458 if test $GhcWithNativeCodeGen = 'YES'; then
1459     case $TargetPlatform in
1460     i386-* | alpha-* | sparc-* )
1461        ;;
1462     *)
1463        echo "Don't have a native-code generator for this platform: $TargetPlatform"
1464        GhcWithNativeCodeGen='NO'
1465        ;;
1466     esac
1467 fi
1468 AC_SUBST(GhcWithNativeCodeGen)
1469
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'
1476              ;;
1477         no)  GhcWithDeforester='NO'
1478              ;;
1479         *)   echo "I don't understand this option: --enable-deforester=$enableval"
1480              exit 1
1481              ;;
1482     esac])
1483 AC_SUBST(GhcWithDeforester)
1484
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'
1491              ;;
1492         no)  GhcWithReadline='NO'
1493              ;;
1494         *)   echo "I don't understand this option: --enable-readline-library=$enableval"
1495              exit 1
1496              ;;
1497     esac])
1498 AC_SUBST(GhcWithReadline)
1499
1500 dnl ** include Sockets library?
1501 GhcWithSockets='NO'
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'
1506              ;;
1507         no)  GhcWithSockets='NO'
1508              ;;
1509         *)   echo "I don't understand this option: --enable-sockets-library=$enableval"
1510              exit 1
1511              ;;
1512     esac])
1513 AC_SUBST(GhcWithSockets)
1514
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!
1522
1523 EOF
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
1529 done
1530
1531 # here ends a very big if DoingGHC = 'ghc' ...
1532 fi
1533
1534 # -------------------------------------------------------------------------
1535 dnl
1536 dnl * `HsLibs' CONFIGURATION STUFF
1537
1538 if test "xxx$DoingHsLibs" = 'xxxhslibs' ; then
1539 # a very big "if"!
1540
1541 dnl ** which Haskell compiler to use on hslibs?
1542 WithHsLibsHc='haskell-compiler-unspecified'
1543 WithHsLibsHcType='HC_UNSPECIFIED'
1544
1545 AC_ARG_WITH(hc-for-hslibs,
1546    [
1547 *******************************************************************
1548 ** \`HsLibs' HASKELL LIBRARIES OPTIONS:
1549
1550 The Haskell compiler to compile the Haskell Libraries suite; this
1551 option, if used, overrides --with-hc=<...>:
1552
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").],
1556    [case "$withval" in
1557         ghc* | glhc* )
1558                 WithHsLibsHc=$withval
1559                 ;;
1560         in-place )
1561                 WithHsLibsHc='IN-PLACE'
1562                 ;;
1563         *)      echo "I don't understand this option: --with-hc-for-hslibs=$withval"
1564                 exit 1
1565                 ;;
1566     esac])
1567
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"
1573                 exit 1
1574             fi
1575             ;;
1576     ghc* | glhc* )
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"
1581                 exit 1
1582             fi
1583             ;;
1584     IN-PLACE) WithHsLibsHcType='HC_GLASGOW_GHC'
1585             ;;
1586 esac
1587 AC_SUBST(WithHsLibsHc)
1588 AC_SUBST(WithHsLibsHcType)
1589
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!
1597
1598 EOF
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
1604 done
1605
1606 # here ends a very big if DoingHsLibs = 'hslibs' ...
1607 fi
1608 #
1609 # -------------------------------------------------------------------------
1610 dnl
1611 dnl * `Happy' CONFIGURATION STUFF
1612
1613 if test "xxx$DoingHappy" = 'xxxhappy' ; then
1614 # a very big "if"!
1615
1616 dnl ** which Haskell compiler to use on happy?
1617 WithHappyHc='haskell-compiler-unspecified'
1618 WithHappyHcType='HC_UNSPECIFIED'
1619
1620 AC_ARG_WITH(hc-for-happy,
1621    [
1622 *******************************************************************
1623 ** \`Happy' PARSER-GENERATOR OPTIONS:
1624
1625 The Haskell compiler to compile Happy; this option, if used, overrides
1626 --with-hc=<...>:
1627
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").],
1634    [case "$withval" in
1635         ghc* | glhc* )
1636                 WithHappyHc=$withval
1637                 ;;
1638         hbc* )  WithHappyHc=$withval
1639                 ;;
1640         nhc* )  WithHappyHc=$withval
1641                 ;;
1642         in-place )
1643                 WithHappyHc='IN-PLACE'
1644                 ;;
1645         *)      echo "I don't understand this option: --with-hc-for-happy=$withval"
1646                 exit 1
1647                 ;;
1648     esac])
1649
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"
1655                 exit 1
1656             fi
1657             ;;
1658     ghc* | glhc* )
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"
1663                 exit 1
1664             fi
1665             ;;
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"
1671                 exit 1
1672             fi
1673             ;;
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"
1679                 exit 1
1680             fi
1681             ;;
1682     IN-PLACE) WithHappyHcType='HC_GLASGOW_GHC'
1683             ;;
1684 esac
1685 AC_SUBST(WithHappyHc)
1686 AC_SUBST(WithHappyHcType)
1687
1688 # here ends a very big if DoingHappy = 'happy' ...
1689 fi
1690 #
1691 # -------------------------------------------------------------------------
1692 dnl
1693 dnl * `Haggis' CONFIGURATION STUFF
1694
1695 if test "xxx$DoingHaggis" = 'xxxhaggis' ; then
1696 # a very big "if"!
1697
1698 dnl ** which Haskell compiler to use on haggis?
1699 WithHaggisHc='haskell-compiler-unspecified'
1700 WithHaggisHcType='HC_UNSPECIFIED'
1701
1702 AC_ARG_WITH(hc-for-haggis,
1703    [
1704 *******************************************************************
1705 ** \`Haggis' HASKELL GUI TOOLKIT OPTIONS:
1706
1707 The Haskell compiler to compile the Haggis toolkit; this option, if
1708 used, overrides --with-hc=<...>:
1709
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").],
1713    [case "$withval" in
1714         ghc* | glhc* )
1715                 WithHaggisHc=$withval
1716                 ;;
1717         in-place )
1718                 WithHaggisHc='IN-PLACE'
1719                 ;;
1720         *)      echo "I don't understand this option: --with-hc-for-haggis=$withval"
1721                 exit 1
1722                 ;;
1723     esac])
1724
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"
1730                 exit 1
1731             fi
1732             ;;
1733     ghc* | glhc* )
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"
1738                 exit 1
1739             fi
1740             ;;
1741     IN-PLACE) WithHaggisHcType='HC_GLASGOW_GHC'
1742             ;;
1743 esac
1744 AC_SUBST(WithHaggisHc)
1745 AC_SUBST(WithHaggisHcType)
1746
1747 # builds stuff?? ToDo
1748
1749 # here ends a very big if DoingHaggis = 'haggis' ...
1750 fi
1751 #
1752 # -------------------------------------------------------------------------
1753 dnl
1754 dnl * `Literate' CONFIGURATION STUFF
1755
1756 if test "xxx$DoingLiterate" = 'xxxliterate' ; then
1757 # a very big "if"!
1758
1759 BuildInfoUtils='NO'
1760 AC_ARG_ENABLE(info-utils,
1761    [
1762 *******************************************************************
1763 ** Literate programming system OPTIONS:
1764
1765 --enable-info-utils       build GNU info/makeinfo utilities],
1766    [case "$enableval" in
1767         yes) BuildInfoUtils='YES'
1768              ;;
1769         no)  BuildInfoUtils='NO'
1770              ;;
1771         *)   echo "I don't understand this option: --enable-info-utils=$enableval"
1772              exit 1
1773              ;;
1774     esac])
1775 AC_SUBST(BuildInfoUtils)
1776
1777 # here ends a very big if DoingLiterate = 'literate' ...
1778 fi
1779 #
1780 # -------------------------------------------------------------------------
1781 dnl
1782 dnl * `NoFib' CONFIGURATION STUFF
1783
1784 if test "xxx$DoingNoFib" = 'xxxnofib' ; then
1785 # a very big "if"!
1786
1787 dnl ** which Haskell compiler to test with NoFib?
1788 WithNoFibHc='haskell-compiler-unspecified'
1789 WithNoFibHcType='HC_UNSPECIFIED'
1790
1791 AC_ARG_WITH(hc-for-nofib,
1792    [
1793 *******************************************************************
1794 ** NoFib HASKELL BENCHMARK SUITE OPTIONS:
1795
1796 The Haskell compiler to compile the NoFib programs; this option, if
1797 used, overrides --with-hc=<...>:
1798
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").
1805    ],
1806    [case "$withval" in
1807         ghc* | glhc* )
1808                 WithNoFibHc=$withval
1809                 ;;
1810         hbc* )  WithNoFibHc=$withval
1811                 ;;
1812         nhc* )  WithNoFibHc=$withval
1813                 ;;
1814         in-place )
1815                 WithNoFibHc='IN-PLACE'
1816                 ;;
1817         *)      echo "I don't understand this option: --with-hc-for-nofib=$withval"
1818                 exit 1
1819                 ;;
1820     esac])
1821
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"
1827                 exit 1
1828             fi
1829             ;;
1830     ghc* | glhc* )
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"
1835                 exit 1
1836             fi
1837             ;;
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"
1843                 exit 1
1844             fi
1845             ;;
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"
1851                 exit 1
1852             fi
1853             ;;
1854     IN-PLACE) WithNoFibHcType='HC_GLASGOW_GHC'
1855             ;;
1856 esac
1857 AC_SUBST(WithNoFibHc)
1858 AC_SUBST(WithNoFibHcType)
1859
1860 dnl ** what mkworld \`setup' should be used?
1861 AC_ARG_WITH(setup,
1862    [
1863 --with-setup=<setup> : What mkworld \`setup' should be used?
1864                        Choices: ghc, hbc, nhc
1865 ],
1866    [case "$withval" in
1867         ghc )   MkWorldSetup='ghc'
1868                 ;;
1869         hbc )   MkWorldSetup='hbc'
1870                 ;;
1871         nhc )   MkWorldSetup='nhc'
1872                 ;;
1873         *)      echo "I don't understand this option: --with-setup=$withval"
1874                 exit 1
1875                 ;;
1876     esac])
1877
1878 if test $MkWorldSetup = 'std' ; then
1879     echo 'You must do --with-setup=... (one of: ghc, hbc, or nhc) for NoFib'
1880     exit 1
1881 fi
1882
1883 # ---------------------------------------
1884 # What sets of tests should be run.
1885 #
1886 IncludeRealNoFibTests='YES'     # defaults
1887 IncludeSpectralNoFibTests='YES'
1888 IncludeImaginaryNoFibTests='YES'
1889 IncludeSpecialiseNoFibTests='NO'
1890 IncludeGHC_ONLYNoFibTests='NO'
1891 IncludePRIVATENoFibTests='NO'
1892 IncludeParallelNoFibTests='NO'
1893
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
1898 only if using GHC):
1899
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'
1906              ;;
1907         no)  IncludeGHC_ONLYNoFibTests='NO'
1908              IncludeSpecialiseNoFibTests='NO'
1909              IncludePRIVATENoFibTests='NO'
1910              IncludeParallelNoFibTests='NO'
1911
1912              IncludeRealNoFibTests='NO'
1913              IncludeSpectralNoFibTests='NO'
1914              IncludeImaginaryNoFibTests='NO'
1915              ;;
1916         *)   echo "I don't understand this option: --enable-all-tests=$enableval"
1917              exit 1
1918              ;;
1919     esac])
1920
1921 dnl ** turn on/off individual categories of tests...
1922 # individual categories
1923 AC_ARG_ENABLE(imaginary-tests,
1924    [
1925 Enable/disable individual categories of tests:
1926
1927 --disable-imaginary-tests do *not* include imaginary tests],
1928    [case "$enableval" in
1929         yes) IncludeImaginaryNoFibTests='YES'
1930              ;;
1931         no)  IncludeImaginaryNoFibTests='NO'
1932              ;;
1933         *)   echo "I don't understand this option: --enable-imaginary-tests=$enableval"
1934              exit 1
1935              ;;
1936     esac])
1937
1938 AC_ARG_ENABLE(spectral-tests,
1939    [--disable-spectral-tests  do *not* include spectral tests],
1940    [case "$enableval" in
1941         yes) IncludeSpectralNoFibTests='YES'
1942              ;;
1943         no)  IncludeSpectralNoFibTests='NO'
1944              ;;
1945         *)   echo "I don't understand this option: --enable-spectral-tests=$enableval"
1946              exit 1
1947              ;;
1948     esac])
1949
1950 AC_ARG_ENABLE(real-tests,
1951    [--disable-real-tests      do *not* include real tests],
1952    [case "$enableval" in
1953         yes) IncludeRealNoFibTests='YES'
1954              ;;
1955         no)  IncludeRealNoFibTests='NO'
1956              ;;
1957         *)   echo "I don't understand this option: --enable-real-tests=$enableval"
1958              exit 1
1959              ;;
1960     esac])
1961
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'
1966              ;;
1967         no)  IncludeGHC_ONLYNoFibTests='NO'
1968              ;;
1969         *)   echo "I don't understand this option: --enable-GHC-ONLY-tests=$enableval"
1970              exit 1
1971              ;;
1972     esac])
1973
1974 AC_ARG_ENABLE(specialise-tests,
1975    [--enable-specialise-tests  include specialisation tests],
1976    [case "$enableval" in
1977         yes) IncludeSpecialiseNoFibTests='YES'
1978              ;;
1979         no)  IncludeSpecialiseNoFibTests='NO'
1980              ;;
1981         *)   echo "I don't understand this option: --enable-specialise-tests=$enableval"
1982              exit 1
1983              ;;
1984     esac])
1985
1986 AC_ARG_ENABLE(PRIVATE-tests,
1987    [--enable-PRIVATE-tests    include PRIVATE tests],
1988    [case "$enableval" in
1989         yes) IncludePRIVATENoFibTests='YES'
1990              ;;
1991         no)  IncludePRIVATENoFibTests='NO'
1992              ;;
1993         *)   echo "I don't understand this option: --enable-PRIVATE-tests=$enableval"
1994              exit 1
1995              ;;
1996     esac])
1997
1998 AC_ARG_ENABLE(parallel-tests,
1999    [--enable-parallel-tests   include parallel tests
2000 ],
2001    [case "$enableval" in
2002         yes) IncludeParallelNoFibTests='YES'
2003              ;;
2004         no)  IncludeParallelNoFibTests='NO'
2005              ;;
2006         *)   echo "I don't understand this option: --enable-parallel-tests=$enableval"
2007              exit 1
2008              ;;
2009     esac])
2010
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)
2020
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!
2028
2029 EOF
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
2035 done
2036
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!
2044
2045 EOF
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
2051 done
2052
2053 # here ends a very big if DoingNoFib = 'nofib' ...
2054 fi
2055 #
2056 # -------------------------------------------------------------------------
2057 dnl
2058 dnl * extract non-header files with substitution (end)
2059 #
2060 AC_SUBST(MkWorldSetup)
2061
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)
2063
2064 echo '************************************************'
2065 echo '*** NOW DO: sh < STARTUP'
2066 echo '************************************************'
2067 exit 0