X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=configure.in;h=3ea7098dc204d7d8a959c42ae70a171fe6bf219a;hb=dbce0191fabbc86b5cf7256f4e63e20a759a0206;hp=cfadc777b78758654e59ce3830a24081d09fe583;hpb=10521d8418fd3a1cf32882718b5bd28992db36fd;p=ghc-hetmet.git diff --git a/configure.in b/configure.in index cfadc77..3ea7098 100644 --- a/configure.in +++ b/configure.in @@ -1,245 +1,57 @@ dnl == autoconf source for the Glasgow FP tools == -dnl (grep for '^dnl' to see the outline of this file) +dnl (run "grep '^dnl \*' configure.in | sed -e 's/dnl / /g; s/\*\*/ +/g;'" +dnl (or some such) to see the outline of this file) dnl -dnl * INITIAL SETUP, CHOICE OF PLATFORM(S) -#!/bin/sh # -# (c) The AQUA Project, Glasgow University, 1994-1995 +# (c) The AQUA Project, Glasgow University, 1994-1998 # -# Configure script for the Glasgow functional programming tools -# (created automagically by autoconf...do not edit by hand) +# Configure script template for the Glasgow functional programming tools # -# Do "./configure --help" to see what flags are available. -# (Better yet, read the documentation!) +# Process with 'autoconf' to get a working configure script. # -# ------------------------------------------------------------------------- -AC_INIT(STARTUP.in) +# For the generated configure script, do "./configure --help" to +# see what flags are available. (Better yet, read the documentation!) # + +# First off, a distrib sanity check.. +AC_INIT(mk/config.mk.in) + +# ------------------------------------------------------------------------- # Prepare to generate the following header files # -AC_CONFIG_HEADER(ghc/includes/config.h literate/config.h) -# ToDo !!!!!!!!!!!!!!!! # -# No, we don't do `--srcdir'... +AC_CONFIG_HEADER(mk/config.h) + +# No, semi-sadly, we don't do `--srcdir'... if test x"$srcdir" != 'x.' ; then - echo "This configuration does not support the \`--srcdir' option." + echo "This configuration does not support the \`--srcdir' option.." exit 1 fi -# ------------------------------------------------------------------------- -dnl ** choose what blobs to build (ghc,haggis,happy,nofib,????) - -# set to the name for the dir if doing it, otherwise empty -DoingGHC='ghc' -DoingNoFib='' -DoingHappy='' -DoingHaggis='' -# the following are not normally changed -DoingLiterate='literate' -DoingMkWorld='mkworld' -DoingGlaFpUtils='glafp-utils' - -MkWorldSetup='std' - -AC_ARG_ENABLE(ghc, - [ -********************************************************************** -* Configuration options for the Glasgow functional-programming tools * -********************************************************************** - -First, select *which* of the tools you want to build, -with --{enable,disable}-{ghc,nofib,happy,haggis}. -(The default is: only GHC (Glasgow Haskell compiler).) - -Second, you may set one of a few applies-in-all-cases options. -For example, --with-tmpdir=/usr/tmp. - -Then you may set various options which are specifically for the -tools you choose in step 1. For GHC, perhaps --enable-concurrent. -For NoFib, perhaps --enable-all-tests. And so on. - -The rest of this message lists all of the configure options. If the -option is enabled by default, the message says how to disable it. And -vice versa. - -If you are confused, don't forget the installation documents that came -with the software! - -******************************************************************* -** FOR SELECTING WHICH GLASGOW FP TOOLS TO BUILD: - ---disable-ghc do *not* build GHC as part of Glasgow FP tools], - [case "$enableval" in - yes) DoingGHC='ghc' - ;; - no) DoingGHC='' - ;; - *) echo "I don't understand this option: --enable-ghc=$enableval" - exit 1 - ;; - esac]) -if test "xxx$DoingGHC" = 'xxxghc' -a \( ! -d ghc \) ; then - DoingGHC='' - echo 'Doing --disable-ghc, as there is no ghc directory' -fi -ghc_mkworld_site_ghc_jm='ghc/mkworld/site-ghc.jm' -ghc_includes_platform_h='ghc/includes/platform.h' -# duznae work: ghc_includes_config_h='ghc/includes/config.h' -if test "xxx$DoingGHC" = 'xxx' ; then - ghc_mkworld_site_ghc_jm='' - ghc_includes_platform_h='' -# ghc_includes_config_h='' -fi - -AC_ARG_ENABLE(nofib, - [--enable-nofib build NoFib suite as part of Glasgow FP tools], - [case "$enableval" in - yes) DoingNoFib='nofib' - ;; - no) DoingNoFib='' - ;; - *) echo "I don't understand this option: --enable-nofib=$enableval" - exit 1 - ;; - esac]) -if test "xxx$DoingNoFib" = 'xxxnofib' -a \( ! -d nofib \) ; then - DoingNoFib='' - echo 'Doing --disable-nofib, as there is no nofib directory' -fi -nofib_mkworld_site_nofib_jm='nofib/mkworld/site-nofib.jm' -if test "xxx$DoingNoFib" = 'xxx' ; then - nofib_mkworld_site_nofib_jm='' -fi - -AC_ARG_ENABLE(happy, - [--enable-happy build Happy parser-generator as part of Glasgow FP tools], - [case "$enableval" in - yes) DoingHappy='happy' - ;; - no) DoingHappy='' - ;; - *) echo "I don't understand this option: --enable-happy=$enableval" - exit 1 - ;; - esac]) -if test "xxx$DoingHappy" = 'xxxhappy' -a \( ! -d happy \) ; then - DoingHappy='' - echo 'Doing --disable-happy, as there is no happy directory' -fi - -AC_ARG_ENABLE(haggis, - [--disable-haggis build Haggis GUI toolkit as part of Glasgow FP tools], - [case "$enableval" in - yes) DoingHaggis='haggis' - ;; - no) DoingHaggis='' - ;; - *) echo "I don't understand this option: --enable-haggis=$enableval" - exit 1 - ;; - esac]) -if test "xxx$DoingHaggis" = 'xxxhaggis' -a \( ! -d haggis \) ; then - DoingHaggis='' - echo 'Doing --disable-haggis, as there is no haggis directory' -fi - -AC_ARG_ENABLE(literate, - [ -The following three are \`for hackers only': ---disable-literate do *not* build literate-programming stuff], - [case "$enableval" in - yes) DoingLiterate='literate' - ;; - no) DoingLiterate='' - ;; - *) echo "I don't understand this option: --enable-literate=$enableval" - exit 1 - ;; - esac]) -if test "xxx$DoingLiterate" = 'xxxliterate' -a \( ! -d literate \) ; then - DoingLiterate='' - echo 'Doing --disable-literate, as there is no literate directory' -fi - -AC_ARG_ENABLE(mkworld, - [--disable-mkworld do *not* build \`mkworld' configuration stuff], - [case "$enableval" in - yes) DoingMkWorld='mkworld' - ;; - no) DoingMkWorld='' - ;; - *) echo "I don't understand this option: --enable-mkworld=$enableval" - exit 1 - ;; - esac]) -if test "xxx$DoingMkWorld" = 'xxxmkworld' -a \( ! -d mkworld \) ; then - DoingMkWorld='' - echo 'Doing --disable-mkworld, as there is no mkworld directory' -fi +# +# Remove common automounter nonsense + convert from UNC to DOS style paths +# (UNC awareness isn't quite there yet for cygwin32-beta18 and consituent tools.) +# +hardtop=`pwd` +hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|' | sed 's|^/grasp_tmp|/local/grasp_tmp|' | sed 's|^//\(.\)/|\1:/|' ` -AC_ARG_ENABLE(glafp-utils, - [--disable-glafp-utils do *not* build \`glafp utilities'], - [case "$enableval" in - yes) DoingGlaFpUtils='glafp-utils' - ;; - no) DoingGlaFpUtils='' - ;; - *) echo "I don't understand this option: --enable-glafp-utils=$enableval" - exit 1 - ;; - esac]) -if test "xxx$DoingGlaFpUtils" = 'xxxglafp-utils' -a \( ! -d glafp-utils \) ; then - DoingGlaFpUtils='' - echo 'Doing --disable-glafp-utils, as there is no glafp-utils directory' -fi +echo '' +echo "*** The top of your build tree is: $hardtop" +AC_SUBST(hardtop) -AC_SUBST(DoingGHC) -AC_SUBST(DoingNoFib) -AC_SUBST(DoingHappy) -AC_SUBST(DoingHaggis) -AC_SUBST(DoingLiterate) -AC_SUBST(DoingMkWorld) -AC_SUBST(DoingGlaFpUtils) +dnl-------------------------------------------------------------------- +dnl * Choose host(/target/build) platform +dnl-------------------------------------------------------------------- -# ------------------------------------------------------------------------- -dnl ** choose host(/target/build) platform -# Guess host/target/build platform(s) if necessary. -# Partly stolen from GCC "configure". -# -if test "x$target" = xNONE ; then - if test "x$nonopt" != xNONE; then - target=$nonopt - else - # This way of testing the result of a command substitution is - # defined by Posix.2 (section 3.9.1) as well as traditional shells. - if target=`$srcdir/config.guess` ; then - echo "Configuring for a ${target} host." 1>&2 - else - echo 'Config.guess failed to determine the host type. You need \ -to specify one.' 1>&2 - if [ -r config.status ] - then - tail +2 config.status 1>&2 - fi - exit 1 - fi - fi -fi +dnl Guess host/target/build platform(s) if necessary. +AC_CANONICAL_SYSTEM # "$host" defaults to "$target" if test "x$host" = xNONE ; then host=$target fi -# "$build" defaults to "$host" -if test "x$build" = xNONE ; then - build=$host -else - echo "This configuration does not support the \`--build' option." - exit 1 -fi dnl ** canonicalize platform names -# Canonicali[sz]e those babies BuildPlatform=`/bin/sh $srcdir/config.sub $build` || exit 1 HostPlatform=`/bin/sh $srcdir/config.sub $host` || exit 1 TargetPlatform=`/bin/sh $srcdir/config.sub $target` || exit 1 @@ -249,22 +61,33 @@ if test x"$TargetPlatform" != x"$HostPlatform" ; then exit 1 fi +exeext='' +# # The following will be more difficult when we *are* cross-compiling. # Suitable names to slam in *_CPP are in platform.h.in. # We also record the architecture, vendor, and operating system (OS) # separately. case $HostPlatform in -alpha-dec-osf1* | alpha-dec-osf2*) - HostPlatform=alpha-dec-osf1 # canonicalise for our purposes +alpha-dec-osf[[12]]*) + HostPlatform=alpha-dec-osf1 # canonicalise for our purposes TargetPlatform=alpha-dec-osf1 # this will work for now... (hack) - BuildPlatform=alpha-dec-osf1 #hack + BuildPlatform=alpha-dec-osf1 # hack HostPlatform_CPP='alpha_dec_osf1' HostArch_CPP='alpha' HostVendor_CPP='dec' HostOS_CPP='osf1' ;; +alpha-dec-osf[[34]]*) + HostPlatform=alpha-dec-osf3 # canonicalise for our purposes + TargetPlatform=alpha-dec-osf3 # this will work for now... (hack) + BuildPlatform=alpha-dec-osf3 # hack + HostPlatform_CPP='alpha_dec_osf3' + HostArch_CPP='alpha' + HostVendor_CPP='dec' + HostOS_CPP='osf3' + ;; hppa1.1-hp-hpux*) - HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack) + HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack) TargetPlatform=hppa1.1-hp-hpux BuildPlatform=hppa1.1-hp-hpux HostPlatform_CPP='hppa1_1_hp_hpux' @@ -272,17 +95,8 @@ hppa1.1-hp-hpux*) HostVendor_CPP='hp' HostOS_CPP='hpux' ;; -i386-*-linuxaout*) - HostPlatform=i386-unknown-linuxaout # hack again - TargetPlatform=i386-unknown-linuxaout - BuildPlatform=i386-unknown-linuxaout - HostPlatform_CPP='i386_unknown_linuxaout' - HostArch_CPP='i386' - HostVendor_CPP='unknown' - HostOS_CPP='linuxaout' - ;; -i486-*-linuxaout*) - HostPlatform=i386-unknown-linuxaout # hack again: NB: name for arch is *i386*! +i[[3456]]86-*-linuxaout*) + HostPlatform=i386-unknown-linuxaout # hack again TargetPlatform=i386-unknown-linuxaout BuildPlatform=i386-unknown-linuxaout HostPlatform_CPP='i386_unknown_linuxaout' @@ -290,7 +104,7 @@ i486-*-linuxaout*) HostVendor_CPP='unknown' HostOS_CPP='linuxaout' ;; -i386-*-linux*) +i[[3456]]86-*-linux*) HostPlatform=i386-unknown-linux # hack again TargetPlatform=i386-unknown-linux BuildPlatform=i386-unknown-linux @@ -299,40 +113,34 @@ i386-*-linux*) HostVendor_CPP='unknown' HostOS_CPP='linux' ;; -i486-*-linux*) - HostPlatform=i386-unknown-linux # hack again: NB: name for arch is *i386*! - TargetPlatform=i386-unknown-linux - BuildPlatform=i386-unknown-linux - HostPlatform_CPP='i386_unknown_linux' +i[[3456]]86-*-freebsd3*) # FreeBSD 3.0+ uses ELF + HostPlatform=i386-unknown-freebsd3 # hack again + TargetPlatform=i386-unknown-freebsd3 + BuildPlatform=i386-unknown-freebsd3 + HostPlatform_CPP='i386_unknown_freebsd3' HostArch_CPP='i386' HostVendor_CPP='unknown' - HostOS_CPP='linux' - ;; -i386-*-freebsd*) - HostPlatform_CPP='i386_unknown_freebsd' - HostArch_CPP='i386' - HostVendor_CPP='unknown' - HostOS_CPP='freebsd' + HostOS_CPP='freebsd3' ;; -i486-*-freebsd*) - HostPlatform_CPP='i386_unknown_freebsd' +i[[3456]]86-*-freebsd2*) # Older FreeBSDs are a.out + HostPlatform=i386-unknown-freebsd2 # hack again + TargetPlatform=i386-unknown-freebsd2 + BuildPlatform=i386-unknown-freebsd2 + HostPlatform_CPP='i386_unknown_freebsd2' HostArch_CPP='i386' HostVendor_CPP='unknown' - HostOS_CPP='freebsd' + HostOS_CPP='freebsd2' ;; -i386-*-netbsd*) +i[[3456]]86-*-netbsd*) + HostPlatform=i386-unknown-netbsd # hack again + TargetPlatform=i386-unknown-netbsd + BuildPlatform=i386-unknown-netbsd HostPlatform_CPP='i386_unknown_netbsd' HostArch_CPP='i386' HostVendor_CPP='unknown' HostOS_CPP='netbsd' ;; -i486-*-netbsd*) - HostPlatform_CPP='i386_unknown_netbsd' - HostArch_CPP='i386' - HostVendor_CPP='unknown' - HostOS_CPP='netbsd' - ;; -i386-*-solaris2*) +i[[3456]]86-*-solaris2*) HostPlatform=i386-unknown-solaris2 # hack again TargetPlatform=i386-unknown-solaris2 BuildPlatform=i386-unknown-solaris2 @@ -341,6 +149,31 @@ i386-*-solaris2*) HostVendor_CPP='unknown' HostOS_CPP='solaris2' ;; +i[[3456]]86-*-cygwin32*) + HostPlatform=i386-unknown-cygwin32 # hack again + TargetPlatform=i386-unknown-cygwin32 + BuildPlatform=i386-unknown-cygwin32 + HostPlatform_CPP='i386_unknown_cygwin32' + HostArch_CPP='i386' + HostVendor_CPP='unknown' + HostOS_CPP='cygwin32' + exeext='.exe' + ;; +i[[3456]]86-*-mingw32*) + HostPlatform=i386-unknown-mingw32 # hack again + TargetPlatform=i386-unknown-mingw32 + BuildPlatform=i386-unknown-mingw32 + HostPlatform_CPP='i386_unknown_mingw32' + HostArch_CPP='i386' + HostVendor_CPP='unknown' + HostOS_CPP='mingw32' + exeext='.exe' + # We assume you're using mingw32 via the gcc that comes + # with cygwin, and not the native port, so let's augment + # the gcc command-line used here with -mno-cygwin to + # arrange for good things to happen. + CFLAGS="-mno-cygwin $CFLAGS" + ;; m68k-next-nextstep2) HostPlatform_CPP='m68k_next_nextstep2' HostArch_CPP='m68k' @@ -353,7 +186,7 @@ m68k-next-nextstep3) HostVendor_CPP='next' HostOS_CPP='nextstep3' ;; -i386-next-nextstep3) +i[[3456]]86-next-nextstep3) HostPlatform=i386-next-nextstep3 # hack again TargetPlatform=i386-next-nextstep3 BuildPlatform=i386-next-nextstep3 @@ -386,6 +219,15 @@ mips-sgi-irix*) HostVendor_CPP='sgi' HostOS_CPP='irix' ;; +rs6000-ibm-aix*) + HostPlatform=rs6000-ibm-aix + TargetPlatform=rs6000-ibm-aix #hack + BuildPlatform=rs6000-ibm-aix #hack + HostPlatform_CPP='rs6000_ibm_aix' + HostArch_CPP='rs6000' + HostVendor_CPP='ibm' + HostOS_CPP='aix' + ;; powerpc-ibm-aix*) HostPlatform=powerpc-ibm-aix TargetPlatform=powerpc-ibm-aix #hack @@ -418,1563 +260,421 @@ sparc-sun-solaris2*) exit 1 ;; esac - -test -n "$verbose" && echo "Host platform set to $HostPlatform" -test -n "$verbose" -a x"$HostPlatform" != x"$TargetPlatform" \ - && echo "Target platform set to $TargetPlatform" -test -n "$verbose" -a x"$BuildPlatform" != x"$HostPlatform" \ - && echo "Build platform set to $BuildPlatform" +echo "Canonicalised to: $HostPlatform" +test x"$HostPlatform" != x"$TargetPlatform" && echo "Target platform set to $TargetPlatform" +test x"$BuildPlatform" != x"$HostPlatform" && echo "Build platform set to $BuildPlatform" BuildPlatform_CPP=$HostPlatform_CPP TargetPlatform_CPP=$HostPlatform_CPP BuildArch_CPP=$HostArch_CPP TargetArch_CPP=$HostArch_CPP BuildOS_CPP=$HostOS_CPP +HostOS_Full=$host_os TargetOS_CPP=$HostOS_CPP BuildVendor_CPP=$HostVendor_CPP TargetVendor_CPP=$HostVendor_CPP -dnl Cannot afford all these AC_SUBSTs (because of braindead seds w/ 99 cmd limits + +dnl Cannot afford all these SUBSTs (because of braindead seds w/ 99 cmd limits) dnl AC_SUBST(BuildPlatform) + AC_SUBST(HostPlatform) -dnl AC_SUBST(TargetPlatform) +AC_SUBST(TargetPlatform) AC_SUBST(HostPlatform_CPP) dnl AC_SUBST(BuildPlatform_CPP) dnl AC_SUBST(TargetPlatform_CPP) + AC_SUBST(HostArch_CPP) dnl AC_SUBST(BuildArch_CPP) dnl AC_SUBST(TargetArch_CPP) + AC_SUBST(HostOS_CPP) +AC_SUBST(HostOS_Full) dnl AC_SUBST(BuildOS_CPP) dnl AC_SUBST(TargetOS_CPP) + AC_SUBST(HostVendor_CPP) dnl AC_SUBST(BuildVendor_CPP) dnl AC_SUBST(TargetVendor_CPP) -# ------------------------------------------------------------------------- -dnl -dnl * _GENERAL_ CONFIGURATION CHECKS -# -dnl ** are we at Glasgow? -# -if test -d /local/fp -a -d /users/fp/simonpj; then - echo "Brilliant! You must be a Glaswegian." - AT_GLASGOW=1 - if test "x$prefix" = xNONE; then - prefix=/local/fp - echo "Assuming installation prefix of $prefix" - fi - if test "x$exec_prefix" = xNONE; then - # Sigh: the defn of exec_prefix does not include the bin* bit... - # WDP 94/07 - exec_prefix=/local/fp - echo "Assuming binary installation prefix of $exec_prefix" - fi -else - AT_GLASGOW=0 +AC_SUBST(exeext) + +dnl -------------------------------------------------------------- +dnl * Project specific configuration options +dnl -------------------------------------------------------------- +dnl What follows is a bunch of options that can either be configured +dnl through command line options to the configure script or by +dnl supplying defns in the build tree's mk/build.mk. Having the option to +dnl use either is considered a Feature. + +dnl ** What command to use to compile compiler sources ? +dnl -------------------------------------------------------------- +AC_ARG_WITH(hc, +[ --with-hc= + Use a command different from 'ghc' to compile up Haskell code. + (no claims currently made that this will work with a compiler other than a + recent version of GHC, but you could always try...) +], +[WithHc="$withval"], +[WithHc="ghc"] +) +AC_SUBST(WithHc) + +dnl ** Which gcc to use? +dnl -------------------------------------------------------------- +AC_ARG_WITH(gcc, +[ --with-gcc= + Use a different command instead of 'gcc' for the GNU C compiler. +], +[WhatGccIsCalled="$withval"], +[WhatGccIsCalled="gcc"] +) +AC_SUBST(WhatGccIsCalled) + +dnl ** Booting from .hc files? +dnl -------------------------------------------------------------- +AC_ARG_ENABLE(hc-boot, +[ --enable-hc-boot + Boot the Glasgow Haskell Compiler from intermediate .hc files. + (This option is mostly of interest to porters.) +], +[BootingFromHc=YES], +[BootingFromHc=NO] +) +AC_SUBST(BootingFromHc) + + +dnl ** Enable the construction of Win32 DLLs? +dnl -------------------------------------------------------------- +AC_ARG_ENABLE(win32-dlls, +[ --enable-win32-dlls + If on a Win32 platform running mingw32/cygwin, enable the + construction of DLLs containing ghc-compiled code. +], +[ +case $HostOS_CPP in +cygwin32) ;; +mingw32) ;; +*) echo "Unrecognised win32 platform: $HostPlatform" + exit 1 + ;; +esac +EnableWin32DLLs=YES +], +[EnableWin32DLLs=NO] +) +AC_SUBST(EnableWin32DLLs) +if test x"$EnableWin32DLLs" = "xYES" ; then + AC_DEFINE(HAVE_WIN32_DLL_SUPPORT) fi -AC_SUBST(AT_GLASGOW) -test -n "$verbose" && echo " setting AT_GLASGOW to $AT_GLASGOW" -# -# -# + +dnl -------------------------------------------------------------- +dnl End of configure script option section +dnl -------------------------------------------------------------- + + +dnl -------------------------------------------------------------- +dnl * General configuration checks +dnl -------------------------------------------------------------- + dnl ** does #! work? -# AC_SYS_INTERPRETER() -# + dnl ** look for `perl', but watch out for version 4.035 -# -AC_CHECK_PROG(PerlCmd,perl,$ac_dir/$ac_word) +AC_PATH_PROG(PerlCmd,perl) if test -z "$PerlCmd"; then - echo "You must install perl before you can continue" - echo "Perhaps it is already installed, but not in your PATH?" - exit 1 -else - $PerlCmd -v >conftest.out 2>&1 - if egrep "version 4" conftest.out >/dev/null 2>&1; then - if egrep "Patch level: 35" conftest.out >/dev/null 2>&1; then - echo " -************************************************************************ -Uh-oh...looks like you have Perl 4.035. - -Perl version 4.035 has a bug to do with recursion that will bite if -you run the lit2texi script, when making Info files from -literate files of various sorts. Either use the current version -(4.036), an older version (e.g., perl 4.019) or apply the patch in -glafp-utils/perl-4.035-fixes to your 4.035 perl. -************************************************************************ -" - fi - else - if egrep "version 5" conftest.out >/dev/null 2>&1; then - : - else - echo "I'm not sure if your version of perl will work," - echo "but it's worth a shot, eh?" - fi - fi - rm -fr conftest* -fi -# -dnl ** does #!.../perl work? (sometimes it's too long...) -echo "checking if \`#!$PerlCmd' works in shell scripts" -echo "#!$PerlCmd"' -exit $1; -' > conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null) -if test $? -ne 69; then - echo "It does!" -else - echo "It doesn't! Perhaps \`#!$PerlCmd' is too long (often 32 characters max)" + echo "You must install perl before you can continue" + echo "Perhaps it is already installed, but not in your PATH?" exit 1 -fi -rm -f conftest -# -dnl ** check if perl library is properly installed -# (by seeing if a "do 'getopts.pl'" works... -if $PerlCmd -e 'do "getopts.pl" || exit(1); exit(0);' > /dev/null 2>&1 ; then - : else - echo "I think your perl library is misinstalled." - echo "The following script did not work:" - echo ' do "getopts.pl" || exit(1); exit(0);' - exit 1 +FPTOOLS_CHECK_PERL_VERSION fi -# -# + +dnl ** does #! path/to/perl work? (sometimes it's too long...) +FPTOOLS_SHEBANG_PERL + + dnl ** look for GCC and find out which version -# Figure out which C compiler to use. Gcc is preferred. -# If gcc, make sure it's at least 2.1 -# +dnl Figure out which C compiler to use. Gcc is preferred. +dnl If gcc, make sure it's at least 2.1 +dnl AC_PROG_CC -if test -z "$GCC"; then - echo "You would be better off with gcc" - echo "Perhaps it is already installed, but not in your PATH?" - HaveGcc='NO' -else - gcc -v > conftest.out 2>&1 - echo '/version (\d+)\.(\d+)/ && $1*10+$2 > 20 && print "YES";' > conftest.pl - HaveGcc=`eval $PerlCmd -n conftest.pl conftest.out` - if test -z "$HaveGcc"; then - echo "I'm not sure if your version of gcc will work," - echo "but it's worth a shot, eh?" - HaveGcc='YES' - fi - rm -fr conftest* -fi -AC_SUBST(HaveGcc) -AC_C_CROSS -# +FPTOOLS_HAVE_GCC + +dnl ** figure out how to invoke cpp directly (gcc -E is no good) +AC_PROG_CPP + dnl ** figure out how to do context diffs -# (NB: NeXTStep thinks diff'ing a file against itself is "trouble") -# -echo foo > conftest1 -echo foo > conftest2 -if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then - ContextDiffCmd='diff -C 1' -else - if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then - ContextDiffCmd='diff -c1' - else - echo "Can't figure out how to do context diffs." - echo "Neither \`diff -C 1' nor \`diff -c1' works." - exit 1 - fi -fi -rm -f conftest1 conftest2 -AC_SUBST(ContextDiffCmd) -# +FPTOOLS_PROG_DIFF + + dnl ** look for a decent parser generator (bison preferred) -# -# -AC_CHECK_PROG(YaccCmd, bison, bison -y) -if test -z "$YaccCmd"; then - echo "Can't find bison out there..." - AC_CHECK_PROG(WhatCmd, what, what, :) - AC_CHECK_PROG(YaccCmd, yacc, $ac_dir/$ac_word) - if test -z "$YaccCmd"; then - echo "But that's okay...I can't find yacc either." - YaccCmd=: - else - $WhatCmd $YaccCmd > conftest.out - if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then - echo "I don't trust your $YaccCmd; it looks like an old Sun yacc" - if test -x /usr/lang/yacc; then - echo "I'm going to use /usr/lang/yacc instead" - YaccCmd=/usr/lang/yacc - else - echo "I'm assuming the worst...no parser generator at all" - YaccCmd=: - fi - elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then - echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc" - echo "I'm assuming the worst...no parser generator at all" - YaccCmd=: - else - echo "But that's okay...as far as I know, your yacc will work." - fi - rm -fr conftest* - fi -fi +dnl (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing +dnl on the suitability of the 'yacc' returned.) +FPTOOLS_PROG_YACCY -#-------------------------------------------------------------- -WithHc='haskell-compiler-unspecified' -WithHcType='HC_UNSPECIFIED' +dnl ** Find lex command (lex or flex) and library (-ll or -lfl) +dnl ( not that we care about the latter, see mk/config.mk.in ) +AC_PROG_LEX -AC_ARG_WITH(hc, - [ -******************************************************************* -** GENERAL OPTIONS WHICH APPLY TO ALL TOOLS: - ---with-hc= - ghc* => Glasgow Haskell invoked by the name given - hbc* => Chalmers HBC, invoked by the name given - nhc* => Niklas Rojemo's "nhc", invoked by the name given - C or c => Don't use a Haskell compiler; - build from intermediate C (.hc) files. - in-place => Use ghc/driver/ghc; i.e. you've built GHC - and you want to use it un-installed ("in-place"). - ], - [case "$withval" in - ghc* | glhc* ) - WithHc=$withval - ;; - hbc* ) WithHc=$withval - ;; - nhc* ) WithHc=$withval - ;; - c | C) WithHc='C' - ;; - in-place ) - WithHc='IN-PLACE' - ;; - *) echo "I don't understand this option: --with-hc=$withval" - exit 1 - ;; - esac]) - -# make sure that what they said makes sense.... set WithHcType -case $WithHc in - haskell-compiler-unspecified ) # maybe they will say something later... - ;; - ghc* | glhc* ) - WithHcType='HC_GLASGOW_GHC' - AC_CHECK_PROG(have_ghc,$WithHc,$ac_dir/$ac_word) - if test -z "$have_ghc"; then - echo "Can't find Glasgow Haskell to compile with: $WithHc" - exit 1 - fi - ;; - hbc* ) # Look for the dastardly competition - WithHcType='HC_CHALMERS_HBC' - AC_CHECK_PROG(have_hbc,$WithHc,YES,NO) - if test $have_hbc = 'NO' ; then - echo "Can't find Chalmers HBC to compile with: $WithHc" - exit 1 - fi - ;; - nhc* ) # Look for Niklas Rojemo's "nhc" - WithHcType='HC_ROJEMO_NHC' - AC_CHECK_PROG(have_nhc,$WithHc,YES,NO) - if test $have_nhc = 'NO' ; then - echo "Can't find Niklas Rojemo's NHC to compile with: $WithHc" - exit 1 - fi - ;; - c | C) WithHcType='HC_USE_HC_FILES' - ;; - IN-PLACE) WithHcType='HC_GLASGOW_GHC' - ;; -esac -AC_SUBST(WithHc) -AC_SUBST(WithHcType) - -dnl ** possibly choose a different tmpdir (default /tmp) -# let the user decide where the best tmpdir is -# /tmp is the default; /usr/tmp is sometimes a good choice. -# Very site-specific. -TmpDir='/tmp' -AC_ARG_WITH(tmpdir, - [--with-tmpdir= Use an alternative directory for -temporary files (presumably because /tmp is too small).], - [TmpDir="$withval"]) -AC_SUBST(TmpDir) - -dnl ** possibly set a max heap for Haskell compilations -# let the user specify a maximum heap to be used; the old -# "I have a 64MB machine, why not use a 32MB heap?" thing. -HcMaxHeapWasSet='NO' -HcMaxHeap='0' -AC_ARG_WITH(max-heap, - [ ---with-max-heap= Do all Haskell compilations -with a heap of this size. (If you've got it, flaunt it.)], - [HcMaxHeapWasSet='YES' - HcMaxHeap="$withval"]) -AC_SUBST(HcMaxHeapWasSet) -AC_SUBST(HcMaxHeap) - -dnl ** figure out about mkdependHS -MkDependHSCmd=':' -if test -f ./ghc/utils/mkdependHS/mkdependHS \ - -o -f ./ghc/utils/mkdependHS/mkdependHS.prl ; then - MkDependHSCmd='TopDirPwd/ghc/utils/mkdependHS/mkdependHS' -else - AC_CHECK_PROG(have_mkdependHS,mkdependHS,YES,NO) - if test $have_mkdependHS = 'YES' ; then - MkDependHSCmd='mkdependHS' - fi -fi -AC_SUBST(MkDependHSCmd) -# ------------------------------------------------------------------------- -# -dnl ** figure out how to invoke cpp directly (gcc -E is no good) -# -AC_PROG_CPP -if echo $CPP | egrep gcc >/dev/null 2>&1; then - echo > conftest.c - gcc -v -E conftest.c >/dev/null 2>conftest.out - echo '/(\S+\/cpp)/ && print "$1";' > conftest.pl - GNUCPP="`eval $PerlCmd -n conftest.pl conftest.out`" - test -n "$verbose" && echo " setting GNUCPP to $GNUCPP" - RAWCPP="`eval $PerlCmd -n conftest.pl conftest.out` -traditional" - test -n "$verbose" && echo " setting RAWCPP to $RAWCPP" - rm -fr conftest* -fi -# ToDo: what are GNUCPP and RAWCPP if the above if didn't fire? WDP 95/02 -AC_SUBST(GNUCPP) -AC_SUBST(RAWCPP) -# dnl ** figure out how to do a BSD-ish install -# AC_PROG_INSTALL -# -dnl ** figure out what arguments to feed to `ar' -# -AC_CHECK_PROG(ArCmd,ar,$ac_dir/$ac_word) -if test -z "$ArCmd"; then - echo "You don't seem to have ar...I have no idea how to make a library" - exit 1; -fi -if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd clqs" - NeedRanLib='' -elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd cqs" - NeedRanLib='' -elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd clq" - NeedRanLib='YES' -elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then - ArCmd="$ArCmd cq" - NeedRanLib='YES' + +dnl If you can run configure, you certainly have /bin/sh +AC_DEFINE(HAVE_BIN_SH) + +dnl ** how to invoke `ar' and `ranlib' +FPTOOLS_PROG_AR_AND_RANLIB + + +dnl ** Check to see whether ln -s works +AC_PROG_LN_S + + +dnl ** Find the path to sed +AC_PATH_PROG(SedCmd,sed) + + +dnl ** check for time command +AC_PATH_PROG(TimeCmd,time) + + +dnl ** check for tar +dnl if GNU tar is named gtar, look for it first. +AC_PATH_PROGS(TarCmd,gtar tar,tar) + +dnl ** check for gzip/compress +AC_PATH_PROGS(CompressCmd,gzip compress,gzip) + +compress_nm=`basename $CompressCmd` +if test x"$compress_nm" = xgzip; then + CompressCmd="$CompressCmd -d" + CompressSuffix="gz" else - echo "I can't figure out how to use your $ArCmd" - exit 1 -fi -rm -rf conftest* -test -n "$ArCmd" && test -n "$verbose" && echo " setting ArCmd to $ArCmd" -AC_SUBST(ArCmd) -# -dnl ** figure out if we need `ranlib' -# -if test -z "$NeedRanLib"; then - # we hackily override a few platforms on a case-by-case basis - case $HostPlatform in - i386-*-linuxaout) - NeedRanLib='YES' - ;; - *) RANLIB=':' - ;; - esac - test -n "$verbose" && echo " setting RANLIB to $RANLIB" + CompressSuffix="Z" fi -if test -n "$NeedRanLib"; then - AC_PROG_RANLIB -fi -AC_SUBST(RANLIB) -# +AC_SUBST(CompressCmd) +AC_SUBST(CompressSuffix) + +dnl ** check for installed happy binary + version +dnl (don't do it if we're booting from .hc files though.) +if (test "$BootingFromHc" = "NO"); then +FPTOOLS_HAPPY +fi; + +dnl -------------------------------------------------- +dnl ### program checking section ends here ### +dnl -------------------------------------------------- + +dnl -------------------------------------------------- +dnl * Platform header file and syscall feature tests +dnl ### checking the state of the local header files and syscalls ### + dnl ** check for full ANSI header (.h) files -# AC_HEADER_STDC -# + dnl ** check for specific header (.h) files that we are interested in -# -AC_CHECK_HEADERS(dirent.h fcntl.h grp.h malloc.h memory.h nlist.h pwd.h siginfo.h signal.h stdlib.h string.h sys/fault.h sys/file.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/vadvise.h sys/wait.h termios.h time.h types.h unistd.h utime.h vfork.h ) -# +AC_CHECK_HEADERS(Files.h assert.h console.h ctype.h dirent.h errno.h fcntl.h float.h ftw.h grp.h ieee754.h malloc.h memory.h nlist.h pascal.h pwd.h sgtty.h siginfo.h signal.h stat.h stdlib.h stdarg.h string.h sys/fault.h sys/file.h sys/ioctl.h sys/limits.h sys/mman.h sys/param.h sys/procfs.h sys/resource.h sys/signal.h sys/socket.h netinet/tcp.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 termio.h termios.h time.h types.h unistd.h utime.h values.h vfork.h readline/readline.h readline/history.h bfd.h winsock.h) + +dnl ** check for DOS include files +AC_CHECK_HEADERS(dos.h conio.h io.h std.h) + +dnl ** check for Windows include files +AC_CHECK_HEADERS(windows.h) + dnl ** check if it is safe to include both and -# AC_HEADER_TIME -# -dnl ** how do we get a timezone name? -# + +dnl dynamic loading include files +AC_CHECK_HEADERS(dlfcn.h dl.h) + +dnl ** check for farcalloc (in bcc) +AC_CHECK_HEADER(alloc.h,AC_CHECK_FUNCS(farcalloc)) + +dnl ** check for valloc (in sunos, solaris, mips, amiga, next, minix, ultrix) +AC_CHECK_HEADER(malloc.h,AC_CHECK_FUNCS(valloc)) + +dnl ** how do we get a timezone name, and UTC offset ? AC_STRUCT_TIMEZONE -# -dnl ** determine the type of signal() -# + +dnl ** what's the type of timezone? +FPTOOLS_HAVE_TIMEZONE +FPTOOLS_TYPE_TIMEZONE + +dnl ** do we have altzone? +FPTOOLS_ALTZONE + +dnl ** does struct stat contain st_blksize? +AC_STRUCT_ST_BLKSIZE + +dnl ** what are the sizes of various types +dnl (these must come before GHC_CHECK_ALIGNMENT) +AC_CHECK_SIZEOF(unsigned int,4) +AC_CHECK_SIZEOF(float, 4) +AC_CHECK_SIZEOF(double, 8) +AC_CHECK_SIZEOF(long, 4) +AC_CHECK_SIZEOF(void *, 4) + +dnl ** what are alignment constraints on various types +FPTOOLS_CHECK_ALIGNMENT(unsigned int) dnl redundant but harmless +FPTOOLS_CHECK_ALIGNMENT(long) +FPTOOLS_CHECK_ALIGNMENT(float) +FPTOOLS_CHECK_ALIGNMENT(double) + +dnl ** do we have long longs? +FPTOOLS_C_LONG_LONG + +dnl ** can we open files in binary mode? +FPTOOLS_O_BINARY + +dnl ** check for GetModuleFileName and WinExec (windows only) +dnl Old: AC_CHECK_FUNCS(WinExec GetModuleFileName) dnl Windows +dnl Doesn't work because the linker can't see the functions if +dnl you omit the #include . (I've no idea why not...) + +FPTOOLS_TRY_LINK_NOWARN(,[ +#if HAVE_WINDOWS_H +#include +#endif +main() { + WinExec("",0); + exit(0); +} +], +[have_winexec=1], +[have_winexec=0]) +if test "$have_winexec" = "1"; then +AC_DEFINE(HAVE_WINEXEC) +fi + +FPTOOLS_TRY_LINK_NOWARN(,[ +#if HAVE_WINDOWS_H +#include +#endif +main() { + char* dir; + GetModuleFileName((HMODULE)0,dir,0); + exit(0); +} +], +[have_getmodulefilename=1], +[have_getmodulefilename=0]) +if test "$have_getmodulefilename" = "1"; then +AC_DEFINE(HAVE_GETMODULEFILENAME) +fi + +dnl ** check return type of signal handlers +dnl Foo: assumes we can use prototypes. +dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)". +dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler, +dnl [AC_TRY_COMPILE([#include +dnl #include +dnl #ifdef signal +dnl #undef signal +dnl #endif +dnl void (*signal (int, void (*)(int)))(int); +dnl ], +dnl [int i;], +dnl ac_cv_type_signal_handler=void_int, +dnl ac_cv_type_signal_handler=int_void)]) +dnl if test "$ac_cv_type_signal_handler" = void_int; then +dnl AC_DEFINE(VOID_INT_SIGNALS) +dnl fi + +dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)". AC_TYPE_SIGNAL -# -dnl ** decide whether or not flex lexers need to be linked with -lfl -# -AC_CHECK_LIB(fl,yywrap, - FlexLibAvailable='YES', - FlexLibAvailable='NO') -AC_SUBST(FlexLibAvailable) -# -dnl ** Decide whether or not lex lexers need to be linked with -ll -# (Linux, for example, does not have "lex", only "flex") -# -AC_CHECK_LIB(l,yywrap, - LexLibAvailable='YES', - LexLibAvailable='NO') -AC_SUBST(LexLibAvailable) -# +if test "$ac_cv_type_signal" = void; then +AC_DEFINE(VOID_INT_SIGNALS) +fi + +dnl ** check for more functions +AC_CHECK_FUNCS(strcasecmp _stricmp stricmp strcmpi) +AC_CHECK_FUNCS(strcmp) +AC_CHECK_FUNCS(realpath _fullpath) +AC_CHECK_FUNCS(PBHSetVolSync macsystem) +AC_CHECK_FUNCS(fgetpos fsetpos fseek ftell) +AC_CHECK_FUNCS(vsnprintf _vsnprintf) +AC_CHECK_FUNCS(snprintf _snprintf ) +AC_CHECK_FUNCS(popen _popen ) +AC_CHECK_FUNCS(pclose _pclose ) + + dnl ** check for specific library functions that we are interested in -# -AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect setitimer stat sysconf timelocal times vadvise vfork) -# +AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat symlink sysconf timelocal times vadvise vfork) + +dnl ** check whether this machine has gmp2 installed +AC_CHECK_LIB(gmp, mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp, + AC_CHECK_LIB(gmp2, mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp2, + HaveLibGmp=No; LibGmp=not-installed)) +AC_SUBST(HaveLibGmp) +AC_SUBST(LibGmp) + +dnl ** check whether this machine has BFD and liberty installed (used for debugging) +dnl the order of these tests matters: bfd needs liberty +AC_CHECK_LIB(iberty, xmalloc) +AC_CHECK_LIB(bfd, bfd_init) + +dnl ** check for readline, for Hugs +AC_CHECK_LIB(readline, readline, +[ +AC_DEFINE(HAVE_LIBREADLINE,1) +HaveLibReadline=YES +], +[ +AC_DEFINE(HAVE_LIBREADLINE,0) +HaveLibReadline=NO +], +-ltermcap) +AC_SUBST(HaveLibReadline) + + +dnl ################################################################ +dnl Check for libraries +dnl ################################################################ + +FPTOOLS_CHECK_LIB_NOWARN(dl, dlopen) +FPTOOLS_CHECK_LIB_NOWARN(dld, shl_load) +FPTOOLS_CHECK_LIB_NOWARN(m, atan) + +dnl -------------------------------------------------- +dnl * Miscellaneous feature tests +dnl -------------------------------------------------- + dnl ** can we get alloca? -# AC_FUNC_ALLOCA -# + dnl ** determine whether or not const works -# AC_C_CONST -# -dnl ** check for leading underscores in symbol names -# We assume that they _aren't_ there if anything goes wrong. -# -echo checking for a leading underscore in symbol names -AC_TRY_RUN( -[#ifdef HAVE_NLIST_H -#include -struct nlist xYzzY[] = {{"_xYzzY", 0},{0}}; -#endif - -main(argc, argv) -int argc; -char **argv; -{ -#ifdef HAVE_NLIST_H - if(nlist(argv[0], xYzzY) == 0 && xYzzY[0].n_value != 0) - exit(0); -#endif - exit(1); -}], LeadingUnderscore='YES', LeadingUnderscore='NO', LeadingUnderscore='YES') -test -n "$verbose" && echo " setting LeadingUnderscore to $LeadingUnderscore" -# ------------------------------------------------------------------------- -dnl -dnl * `GHC' CONFIGURATION STUFF +dnl ** determine whether ANSI-function prototypes work? +AC_C_PROTOTYPES -if test "xxx$DoingGHC" = 'xxxghc' ; then -# a very big "if"! -# -dnl ** which builds to build? -# builds: normal = sequential _ap_o ; _p = profiling (sequential); -# _t = ticky; _u = unregisterized -GhcBuild_normal='YES' -GhcBuild_p='YES' -GhcBuild_t='NO' -GhcBuild_u='NO' -# _mc = concurrent; _mr = profiled concurrent; _mt = ticky concurrent -# _mp = parallel; _mg = gransim -GhcBuild_mc='NO' -GhcBuild_mr='NO' -GhcBuild_mt='NO' -GhcBuild_mp='NO' -GhcBuild_mg='NO' -# GC builds: _2s, _1s, _du (, _gn) -GhcBuild_2s='NO' -GhcBuild_1s='NO' -GhcBuild_du='NO' -# user builds: a...o -GhcBuild_a='NO' -GhcBuild_b='NO' -GhcBuild_c='NO' -GhcBuild_d='NO' -GhcBuild_e='NO' -GhcBuild_f='NO' -GhcBuild_g='NO' -GhcBuild_h='NO' -GhcBuild_i='NO' -GhcBuild_j='NO' -GhcBuild_k='NO' -GhcBuild_l='NO' -GhcBuild_m='NO' -GhcBuild_n='NO' -GhcBuild_o='NO' -GhcBuild_A='NO' -GhcBuild_B='NO' -# More could be added here... - -AC_ARG_ENABLE(normal-build, - [ -******************************************************************* -** \`GHC' (GLASGOW HASKELL COMPILER) OPTIONS: - -Choose all the \`builds' of GHC that you want: - ---disable-normal-build do *not* build GHC for normal sequential code], - [case "$enableval" in - yes) GhcBuild_normal='YES' - ;; - no) GhcBuild_normal='NO' - ;; - *) echo "I don't understand this option: --enable-normal-build=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(profiling, - [--disable-profiling do *not* build profiling features], - [case "$enableval" in - yes) GhcBuild_p='YES' - ;; - no) GhcBuild_p='NO' - ;; - *) echo "I don't understand this option: --enable-profiling=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(ticky, - [--enable-ticky build for \`ticky-ticky' profiling (for implementors)], - [case "$enableval" in - yes) GhcBuild_t='YES' - ;; - no) GhcBuild_t='NO' - ;; - *) echo "I don't understand this option: --enable-ticky=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(concurrent, - [--enable-concurrent turn on \`concurrent Haskell' features], - [case "$enableval" in - yes) GhcBuild_mc='YES' - ;; - no) GhcBuild_mc='NO' - ;; - *) echo "I don't understand this option: --enable-concurrent=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(profiled-concurrent, - [--enable-profiled-concurrent turn on profiling for \`concurrent Haskell'], - [case "$enableval" in - yes) GhcBuild_mr='YES' - ;; - no) GhcBuild_mr='NO' - ;; - *) echo "I don't understand this option: --enable-profiled-concurrent=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(ticky-concurrent, - [--enable-ticky-concurrent turn on \`ticky-ticky' profiling for \`concurrent Haskell'], - [case "$enableval" in - yes) GhcBuild_mt='YES' - ;; - no) GhcBuild_mt='NO' - ;; - *) echo "I don't understand this option: --enable-ticky-concurrent=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(parallel, - [--enable-parallel turn on \`parallel Haskell' features], - [case "$enableval" in - yes) GhcBuild_mp='YES'; - ;; - no) GhcBuild_mp='NO' - ;; - *) echo "I don't understand this option: --enable-parallel=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(gransim, - [--enable-gransim turn on GranSim parallel simulator], - [case "$enableval" in - yes) GhcBuild_mg='YES'; - ;; - no) GhcBuild_mg='NO' - ;; - *) echo "I don't understand this option: --enable-gransim=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(gc-2s, - [--enable-gc-2s a build with the 2-space copying garbage collector], - [case "$enableval" in - yes) GhcBuild_2s='YES' - ;; - no) GhcBuild_2s='NO' - ;; - *) echo "I don't understand this option: --enable-gc-2s=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(gc-1s, - [--enable-gc-1s a build with the 1-space compacting garbage collector], - [case "$enableval" in - yes) GhcBuild_1s='YES' - ;; - no) GhcBuild_1s='NO' - ;; - *) echo "I don't understand this option: --enable-gc-1s=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(gc-du, - [--enable-gc-du a build with \`dual-mode' (1s/2s) garbage collector], - [case "$enableval" in - yes) GhcBuild_du='YES' - ;; - no) GhcBuild_du='NO' - ;; - *) echo "I don't understand this option: --enable-gc-du=$enableval" - exit 1 - ;; - esac]) - -dnl some seds only allow 99 commands, meaning no more -dnl than 99 AC_SUBSTs. AARRGGHH!! -dnl AC_ARG_ENABLE(user-way-a, -dnl [--enable-user-way-a build for \`user way a' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_a='YES' -dnl ;; -dnl no) GhcBuild_a='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-a=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-b, -dnl [--enable-user-way-b build for \`user way b' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_b='YES' -dnl ;; -dnl no) GhcBuild_b='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-b=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-c, -dnl [--enable-user-way-c build for \`user way c' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_c='YES' -dnl ;; -dnl no) GhcBuild_c='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-c=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-d, -dnl [--enable-user-way-d build for \`user way d' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_d='YES' -dnl ;; -dnl no) GhcBuild_d='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-d=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-e, -dnl [--enable-user-way-e build for \`user way e' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_e='YES' -dnl ;; -dnl no) GhcBuild_e='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-e=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-f, -dnl [--enable-user-way-f build for \`user way f' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_f='YES' -dnl ;; -dnl no) GhcBuild_f='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-f=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-g, -dnl [--enable-user-way-g build for \`user way g' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_g='YES' -dnl ;; -dnl no) GhcBuild_g='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-g=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-h, -dnl [--enable-user-way-h build for \`user way h' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_h='YES' -dnl ;; -dnl no) GhcBuild_h='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-h=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-i, -dnl [--enable-user-way-i build for \`user way i' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_i='YES' -dnl ;; -dnl no) GhcBuild_i='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-i=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-j, -dnl [--enable-user-way-j build for \`user way j' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_j='YES' -dnl ;; -dnl no) GhcBuild_j='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-j=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-k, -dnl [--enable-user-way-k build for \`user way k' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_k='YES' -dnl ;; -dnl no) GhcBuild_k='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-k=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-l, -dnl [--enable-user-way-l build for \`user way l' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_l='YES' -dnl ;; -dnl no) GhcBuild_l='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-l=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-m, -dnl [--enable-user-way-m build for \`user way m' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_m='YES' -dnl ;; -dnl no) GhcBuild_m='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-m=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-n, -dnl [--enable-user-way-n build for \`user way n' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_n='YES' -dnl ;; -dnl no) GhcBuild_n='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-n=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-o, -dnl [--enable-user-way-o build for \`user way o' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_o='YES' -dnl ;; -dnl no) GhcBuild_o='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-o=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-A, -dnl [--enable-user-way-A build for \`user way A' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_A='YES' -dnl ;; -dnl no) GhcBuild_A='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-A=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -dnl AC_ARG_ENABLE(user-way-B, -dnl [--enable-user-way-B build for \`user way B' (mostly for implementors)], -dnl [case "$enableval" in -dnl yes) GhcBuild_B='YES' -dnl ;; -dnl no) GhcBuild_B='NO' -dnl ;; -dnl *) echo "I don't understand this option: --enable-user-way-B=$enableval" -dnl exit 1 -dnl ;; -dnl esac]) -dnl -AC_SUBST(GhcBuild_normal) -AC_SUBST(GhcBuild_p) -AC_SUBST(GhcBuild_t) -AC_SUBST(GhcBuild_u) -AC_SUBST(GhcBuild_mc) -AC_SUBST(GhcBuild_mr) -AC_SUBST(GhcBuild_mt) -AC_SUBST(GhcBuild_mp) -AC_SUBST(GhcBuild_mg) -AC_SUBST(GhcBuild_2s) -AC_SUBST(GhcBuild_1s) -AC_SUBST(GhcBuild_du) -dnl AC_SUBST(GhcBuild_a) -dnl AC_SUBST(GhcBuild_b) -dnl AC_SUBST(GhcBuild_c) -dnl AC_SUBST(GhcBuild_d) -dnl AC_SUBST(GhcBuild_e) -dnl AC_SUBST(GhcBuild_f) -dnl AC_SUBST(GhcBuild_g) -dnl AC_SUBST(GhcBuild_h) -dnl AC_SUBST(GhcBuild_i) -dnl AC_SUBST(GhcBuild_j) -dnl AC_SUBST(GhcBuild_k) -dnl AC_SUBST(GhcBuild_l) -dnl AC_SUBST(GhcBuild_m) -dnl AC_SUBST(GhcBuild_n) -dnl AC_SUBST(GhcBuild_o) -dnl AC_SUBST(GhcBuild_A) -dnl AC_SUBST(GhcBuild_B) - -#--------------------------------------------------------------- -# -dnl ** which Haskell compiler to bootstrap GHC with? -# Figure out what Haskell compiler(s) to use for booting -# -# first, the defaults... -WithGhcHc='haskell-compiler-unspecified' -WithGhcHcType='HC_UNSPECIFIED' -GhcBuilderVersion='26' - -AC_ARG_WITH(hc-for-ghc, - [ -The Haskell compiler for bootstrapping GHC (if any); this option, -if used, overrides --with-hc=<...>: - - --with-hc-for-ghc= - ghc* => Glasgow Haskell invoked by the name given - C or c => Don't use a Haskell compiler; - build from intermediate C (.hc) files. - ], - [case "$withval" in - ghc* | glhc* ) - WithGhcHc=$withval - ;; - hbc* ) echo "HBC will not compile GHC 0.26 as is (sigh)" - exit 1 - ;; - c | C) WithGhcHc='C' - WithGhcHcType='HC_USE_HC_FILES' - ;; - *) echo "I don't understand this option: --with-hc-for-ghc=$withval" - exit 1 - ;; - esac]) - -# make sure that what they said makes sense.... set WithGhcHcType -case $WithGhcHc in - haskell-compiler-unspecified ) # maybe they said something earlier... - if test $WithHc = 'haskell-compiler-unspecified' ; then - echo "Neither --with-hc nor --with-hc-for-ghc was properly set" - exit 1 - fi - if test $WithHcType = 'HC_GLASGOW_GHC' ; then - touch conftest.o - $WithHc -v -C conftest.o > conftest.out 2>&1 - echo '/version (\d+)\.(\d+)/ && print ($1*100+$2);' > conftest.pl - GhcBuilderVersion=`eval $PerlCmd -n conftest.pl conftest.out` - rm -rf conftest* - fi - ;; - ghc* | glhc* ) - WithGhcHcType='HC_GLASGOW_GHC' - AC_CHECK_PROG(have_ghc,$WithGhcHc,$ac_dir/$ac_word) - if test -z "$have_ghc"; then - echo "Can't find Glasgow Haskell to compile with: $WithGhcHc" - exit 1 - else - touch conftest.o - $WithGhcHc -v -C conftest.o > conftest.out 2>&1 - echo '/version (\d+)\.(\d+)/ && print ($1*100+$2);' > conftest.pl - GhcBuilderVersion=`eval $PerlCmd -n conftest.pl conftest.out` - rm -rf conftest* - fi - ;; - c | C) WithGhcHcType='HC_USE_HC_FILES' - ;; -esac -AC_SUBST(GhcBuilderVersion) -AC_SUBST(WithGhcHc) -AC_SUBST(WithGhcHcType) - -dnl ** use portable (slow) C? -- preferably not -GhcWithRegisterised='YES' -AC_ARG_ENABLE(portable-C, - [Other things for GHC: - ---enable-portable-C use portable C (slow), not \`registerised' (fast)], - [case "$enableval" in - yes) GhcWithRegisterised='NO' - ;; - no) GhcWithRegisterised='YES' - ;; - *) echo "I don't understand this option: --enable-portable-C=$enableval" - exit 1 - ;; - esac]) - -if test $GhcWithRegisterised = 'YES'; then - case $HostPlatform in - alpha-* | hppa1.1-* | i386-* | m68k-* | mips-* | powerpc-* | sparc-* ) - ;; - *) - echo "Don't know non-portable C tricks for this platform: $HostPlatform" - GhcWithRegisterised='NO' - ;; - esac -fi -AC_SUBST(GhcWithRegisterised) +dnl ** are we big endian? +AC_C_BIGENDIAN +# Allay users' general fear of warnings of any kind. +errprint((fptools configure script wizard sez: "don't worry, the above warning is harmless (to us.)") +) -if test $GhcWithRegisterised = 'NO'; then - GhcBuild_u='YES' - GhcBuild_normal='NO' - GhcBuild_p='NO' -fi -# ToDo: make sure we can do concurrent for platform/circs... -# ToDo: make sure we can do profiling for platform/circs... -# ToDo: make sure we can do parallel for platform/circs... -# ToDo: make sure we can do gransim for platform/circs... - -dnl ** build GHC compiler proper (\`hsc') from .hc files? -GhcWithHscBuiltViaC='NO' -AC_ARG_ENABLE(hsc-built-via-C, - [--enable-hsc-built-via-C build compiler proper (hsc) from intermediate .hc - files (disabled by default)], - [case "$enableval" in - yes) GhcWithHscBuiltViaC='YES' - ;; - no) GhcWithHscBuiltViaC='NO' - ;; - *) echo "I don't understand this option: --enable-hsc-built-via-C=$enableval" - exit 1 - ;; - esac]) -case $WithGhcHc in - haskell-compiler-unspecified ) # maybe they said something earlier... - if test $WithHcType = 'HC_USE_HC_FILES' ; then - GhcWithHscBuiltViaC='YES' - fi - ;; - c | C) GhcWithHscBuiltViaC='YES' - ;; - *) ;; -esac -AC_SUBST(GhcWithHscBuiltViaC) - -dnl ** build \`hsc' with -O? -GhcWithHscOptimised='YES' -AC_ARG_ENABLE(hsc-optimised, - [--disable-hsc-optimised don't build compiler proper (hsc) with -O], - [case "$enableval" in - yes) GhcWithHscOptimised='YES' - ;; - no) GhcWithHscOptimised='NO' - ;; - *) echo "I don't understand this option: --enable-hsc-optimised=$enableval" - exit 1 - ;; - esac]) -AC_SUBST(GhcWithHscOptimised) - -dnl ** build \`hsc' with -DDEBUG? -GhcWithHscDebug='NO' -AC_ARG_ENABLE(hsc-debug, - [--enable-hsc-debug build compiler proper (hsc) with -DDEBUG], - [case "$enableval" in - yes) GhcWithHscDebug='YES' - ;; - no) GhcWithHscDebug='NO' - ;; - *) echo "I don't understand this option: --enable-hsc-debug=$enableval" - exit 1 - ;; - esac]) -AC_SUBST(GhcWithHscDebug) - -dnl ** omit native-code generator from \`hsc'? -GhcWithNativeCodeGen='YES' -AC_ARG_ENABLE(native-code-generator, - [--enable-native-code-generator build an n.c.g. - [enabled for supported platforms]], - [case "$enableval" in - yes) GhcWithNativeCodeGen='YES' - ;; - no) GhcWithNativeCodeGen='NO' - ;; - *) echo "I don't understand this option: --enable-native-code-generator=$enableval" - exit 1 - ;; - esac]) -if test $GhcWithNativeCodeGen = 'YES'; then - case $TargetPlatform in - i386-* | alpha-* | sparc-* ) - ;; - *) - echo "Don't have a native-code generator for this platform: $TargetPlatform" - GhcWithNativeCodeGen='NO' - ;; - esac -fi -AC_SUBST(GhcWithNativeCodeGen) - -dnl ** include Marlow's deforester in \`hsc'? -GhcWithDeforester='NO' -AC_ARG_ENABLE(deforester, - [--enable-deforester build deforester into compiler (HACKERS ONLY)], - [case "$enableval" in - yes) GhcWithDeforester='YES' - ;; - no) GhcWithDeforester='NO' - ;; - *) echo "I don't understand this option: --enable-deforester=$enableval" - exit 1 - ;; - esac]) -AC_SUBST(GhcWithDeforester) - -dnl ** include Readline library? -GhcWithReadline='NO' -AC_ARG_ENABLE(readline-library, - [--enable-readline-library include (GNU) readline library in -syslib GHC], - [case "$enableval" in - yes) GhcWithReadline='YES' - ;; - no) GhcWithReadline='NO' - ;; - *) echo "I don't understand this option: --enable-readline-library=$enableval" - exit 1 - ;; - esac]) -AC_SUBST(GhcWithReadline) - -dnl ** include Sockets library? -GhcWithSockets='NO' -AC_ARG_ENABLE(sockets-library, - [--enable-sockets-library include the network-interface (sockets) library in -syslib GHC], - [case "$enableval" in - yes) GhcWithSockets='YES' - ;; - no) GhcWithSockets='NO' - ;; - *) echo "I don't understand this option: --enable-sockets-library=$enableval" - exit 1 - ;; - esac]) -AC_SUBST(GhcWithSockets) - -dnl ** build the interpreter? -BuildGHCI='NO' -AC_ARG_ENABLE(ghci, - [--enable-ghci build Glasgow Haskell interpreter (HACKERS ONLY)], - [case "$enableval" in - yes) BuildGHCI='YES' - ;; - no) BuildGHCI='NO' - ;; - *) echo "I don't understand this option: --enable-ghci=$enableval" - exit 1 - ;; - esac]) -AC_SUBST(BuildGHCI) - -# here ends a very big if DoingGHC = 'ghc' ... -fi +dnl ** determine the return type of signal() +AC_TYPE_SIGNAL -# -# ------------------------------------------------------------------------- -dnl -dnl * `Happy' CONFIGURATION STUFF - -if test "xxx$DoingHappy" = 'xxxhappy' ; then -# a very big "if"! - -dnl ** which Haskell compiler to use on happy? -WithHappyHc='haskell-compiler-unspecified' -WithHappyHcType='HC_UNSPECIFIED' - -AC_ARG_WITH(hc-for-happy, - [ -******************************************************************* -** \`Happy' PARSER-GENERATOR OPTIONS: - -The Haskell compiler to compile Happy; this option, if used, overrides ---with-hc=<...>: - - --with-hc-for-happy= - ghc* => Glasgow Haskell invoked by the name given - hbc* => Chalmers HBC, invoked by the name given - nhc* => Niklas Rojemo's "nhc", invoked by the name given - in-place => Use ghc/driver/ghc; i.e. you've built GHC - and you want to use it un-installed ("in-place").], - [case "$withval" in - ghc* | glhc* ) - WithHappyHc=$withval - ;; - hbc* ) WithHappyHc=$withval - ;; - nhc* ) WithHappyHc=$withval - ;; - in-place ) - WithHappyHc='IN-PLACE' - ;; - *) echo "I don't understand this option: --with-hc-for-happy=$withval" - exit 1 - ;; - esac]) - -# make sure that what they said makes sense.... set WithHappyHcType -case $WithHappyHc in - haskell-compiler-unspecified ) # maybe they said something earlier... - if test $WithHc = 'haskell-compiler-unspecified' ; then - echo "Neither --with-hc nor --with-hc-for-happy was properly set" - exit 1 - fi - ;; - ghc* | glhc* ) - WithHappyHcType='HC_GLASGOW_GHC' - AC_CHECK_PROG(have_ghc,$WithHappyHc,$ac_dir/$ac_word) - if test -z "$have_ghc"; then - echo "Can't find Glasgow Haskell to compile with: $WithHappyHc" - exit 1 - fi - ;; - hbc* ) # Look for the dastardly competition - WithHappyHcType='HC_CHALMERS_HBC' - AC_CHECK_PROG(have_hbc,$WithHappyHc,YES,NO) - if test $have_hbc = 'NO' ; then - echo "Can't find Chalmers HBC to compile with: $WithHappyHc" - exit 1 - fi - ;; - nhc* ) # Look for Niklas Rojemo's "nhc" - WithHappyHcType='HC_ROJEMO_NHC' - AC_CHECK_PROG(have_nhc,$WithHappyHc,YES,NO) - if test $have_nhc = 'NO' ; then - echo "Can't find Niklas Rojemo's NHC to compile with: $WithHappyHc" - exit 1 - fi - ;; - IN-PLACE) WithHappyHcType='HC_GLASGOW_GHC' - ;; -esac -AC_SUBST(WithHappyHc) -AC_SUBST(WithHappyHcType) +dnl ** check for leading underscores in symbol names +FPTOOLS_UNDERSCORE -# here ends a very big if DoingHappy = 'happy' ... -fi -# -# ------------------------------------------------------------------------- -dnl -dnl * `Haggis' CONFIGURATION STUFF - -if test "xxx$DoingHaggis" = 'xxxhaggis' ; then -# a very big "if"! - -dnl ** which Haskell compiler to use on haggis? -WithHaggisHc='haskell-compiler-unspecified' -WithHaggisHcType='HC_UNSPECIFIED' - -AC_ARG_WITH(hc-for-haggis, - [ -******************************************************************* -** \`Haggis' HASKELL GUI TOOLKIT OPTIONS: - -The Haskell compiler to compile the Haggis toolkit; this option, if -used, overrides --with-hc=<...>: - - --with-hc-for-haggis= - ghc* => Glasgow Haskell invoked by the name given - and you want to use it un-installed ("in-place").], - [case "$withval" in - ghc* | glhc* ) - WithHaggisHc=$withval - ;; - in-place ) - WithHaggisHc='IN-PLACE' - ;; - *) echo "I don't understand this option: --with-hc-for-haggis=$withval" - exit 1 - ;; - esac]) - -# make sure that what they said makes sense.... set WithHaggisHcType -case $WithHaggisHc in - haskell-compiler-unspecified ) # maybe they said something earlier... - if test $WithHc = 'haskell-compiler-unspecified' ; then - echo "Neither --with-hc nor --with-hc-for-haggis was properly set" - exit 1 - fi - ;; - ghc* | glhc* ) - WithHaggisHcType='HC_GLASGOW_GHC' - AC_CHECK_PROG(have_ghc,$WithHaggisHc,$ac_dir/$ac_word) - if test -z "$have_ghc"; then - echo "Can't find Glasgow Haskell to compile with: $WithHaggisHc" - exit 1 - fi - ;; - IN-PLACE) WithHaggisHcType='HC_GLASGOW_GHC' - ;; -esac -AC_SUBST(WithHaggisHc) -AC_SUBST(WithHaggisHcType) +dnl ** how is the end of text section signalled? +FPTOOLS_END_TEXT_SECTION -# here ends a very big if DoingHaggis = 'haggis' ... -fi -# -# ------------------------------------------------------------------------- -dnl -dnl * `Literate' CONFIGURATION STUFF - -if test "xxx$DoingLiterate" = 'xxxliterate' ; then -# a very big "if"! - -BuildInfoUtils='NO' -AC_ARG_ENABLE(info-utils, - [ -******************************************************************* -** Literate programming system OPTIONS: - ---enable-info-utils build GNU info/makeinfo utilities], - [case "$enableval" in - yes) BuildInfoUtils='YES' - ;; - no) BuildInfoUtils='NO' - ;; - *) echo "I don't understand this option: --enable-info-utils=$enableval" - exit 1 - ;; - esac]) -AC_SUBST(BuildInfoUtils) - -# here ends a very big if DoingLiterate = 'literate' ... -fi -# -# ------------------------------------------------------------------------- -dnl -dnl * `NoFib' CONFIGURATION STUFF - -if test "xxx$DoingNoFib" = 'xxxnofib' ; then -# a very big "if"! - -dnl ** which Haskell compiler to test with NoFib? -WithNoFibHc='haskell-compiler-unspecified' -WithNoFibHcType='HC_UNSPECIFIED' - -AC_ARG_WITH(hc-for-nofib, - [ -******************************************************************* -** NoFib HASKELL BENCHMARK SUITE OPTIONS: - -The Haskell compiler to compile the NoFib programs; this option, if -used, overrides --with-hc=<...>: - - --with-hc-for-nofib= - ghc* => Glasgow Haskell invoked by the name given - hbc* => Chalmers HBC, invoked by the name given - nhc* => Niklas Rojemo's "nhc", invoked by the name given - in-place => Use ghc/driver/ghc; i.e. you've built GHC - and you want to use it un-installed ("in-place"). - ], - [case "$withval" in - ghc* | glhc* ) - WithNoFibHc=$withval - ;; - hbc* ) WithNoFibHc=$withval - ;; - nhc* ) WithNoFibHc=$withval - ;; - in-place ) - WithNoFibHc='IN-PLACE' - ;; - *) echo "I don't understand this option: --with-hc-for-nofib=$withval" - exit 1 - ;; - esac]) - -# make sure that what they said makes sense.... set WithHappyHcType -case $WithNoFibHc in - haskell-compiler-unspecified ) # maybe they said something earlier... - if test $WithHc = 'haskell-compiler-unspecified' ; then - echo "Neither --with-hc nor --with-hc-for-nofib was properly set" - exit 1 - fi - ;; - ghc* | glhc* ) - WithNoFibHcType='HC_GLASGOW_GHC' - AC_CHECK_PROG(have_ghc,$WithNoFibHc,$ac_dir/$ac_word) - if test -z "$have_ghc"; then - echo "Can't find Glasgow Haskell to compile with: $WithNoFibHc" - exit 1 - fi - ;; - hbc* ) # Look for the dastardly competition - WithNoFibHcType='HC_CHALMERS_HBC' - AC_CHECK_PROG(have_hbc,$WithNoFibHc,YES,NO) - if test $have_hbc = 'NO' ; then - echo "Can't find Chalmers HBC to compile with: $WithNoFibHc" - exit 1 - fi - ;; - nhc* ) # Look for Niklas Rojemo's "nhc" - WithNoFibHcType='HC_ROJEMO_NHC' - AC_CHECK_PROG(have_nhc,$WithNoFibHc,YES,NO) - if test $have_nhc = 'NO' ; then - echo "Can't find Niklas Rojemo's NHC to compile with: $WithNoFibHc" - exit 1 - fi - ;; - IN-PLACE) WithNoFibHcType='HC_GLASGOW_GHC' - ;; -esac -AC_SUBST(WithNoFibHc) -AC_SUBST(WithNoFibHcType) - -dnl ** what mkworld \`setup' should be used? -AC_ARG_WITH(setup, - [ ---with-setup= : What mkworld \`setup' should be used? - Choices: ghc, hbc, nhc -], - [case "$withval" in - ghc ) MkWorldSetup='ghc' - ;; - hbc ) MkWorldSetup='hbc' - ;; - nhc ) MkWorldSetup='nhc' - ;; - *) echo "I don't understand this option: --with-setup=$withval" - exit 1 - ;; - esac]) - -if test $MkWorldSetup = 'std' ; then - echo 'You must do --with-setup=... (one of: ghc, hbc, or nhc) for NoFib' - exit 1 -fi +dnl ** how is the end of data section signalled? +FPTOOLS_END_DATA_SECTION -# --------------------------------------- -# What sets of tests should be run. -# -IncludeRealNoFibTests='YES' # defaults -IncludeSpectralNoFibTests='YES' -IncludeImaginaryNoFibTests='YES' -IncludePENDINGNoFibTests='NO' -IncludeUNUSEDNoFibTests='NO' -IncludeGHC_ONLYNoFibTests='NO' -IncludePRIVATENoFibTests='NO' -IncludeParallelNoFibTests='NO' - -dnl ** should *all* NoFib tests be run? -# special catch-all variant -AC_ARG_ENABLE(all-tests, - [Possibly turn on *all* of the possible tests (a sane choice -only if using GHC): - ---enable-all-tests do *all* tests], - [case "$enableval" in - yes) IncludePENDINGNoFibTests='YES' - IncludeUNUSEDNoFibTests='YES' - IncludeGHC_ONLYNoFibTests='YES' - IncludePRIVATENoFibTests='YES' - IncludeParallelNoFibTests='YES' - ;; - no) IncludePENDINGNoFibTests='NO' - IncludeUNUSEDNoFibTests='NO' - IncludeGHC_ONLYNoFibTests='NO' - IncludePRIVATENoFibTests='NO' - IncludeParallelNoFibTests='NO' - - IncludeRealNoFibTests='NO' - IncludeSpectralNoFibTests='NO' - IncludeImaginaryNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-all-tests=$enableval" - exit 1 - ;; - esac]) - -dnl ** turn on/off individual categories of tests... -# individual categories -AC_ARG_ENABLE(imaginary-tests, - [ -Enable/disable individual categories of tests: - ---disable-imaginary-tests do *not* include imaginary tests], - [case "$enableval" in - yes) IncludeImaginaryNoFibTests='YES' - ;; - no) IncludeImaginaryNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-imaginary-tests=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(spectral-tests, - [--disable-spectral-tests do *not* include spectral tests], - [case "$enableval" in - yes) IncludeSpectralNoFibTests='YES' - ;; - no) IncludeSpectralNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-spectral-tests=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(real-tests, - [--disable-real-tests do *not* include real tests], - [case "$enableval" in - yes) IncludeRealNoFibTests='YES' - ;; - no) IncludeRealNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-real-tests=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(PENDING-tests, - [--enable-PENDING-tests include PENDING tests], - [case "$enableval" in - yes) IncludePENDINGNoFibTests='YES' - ;; - no) IncludePENDINGNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-PENDING-tests=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(UNUSED-tests, - [--enable-UNUSED-tests include UNUSED tests], - [case "$enableval" in - yes) IncludeUNUSEDNoFibTests='YES' - ;; - no) IncludeUNUSEDNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-UNUSED-tests=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(GHC-ONLY-tests, - [--enable-GHC-ONLY-tests include GHC_ONLY tests], - [case "$enableval" in - yes) IncludeGHC_ONLYNoFibTests='YES' - ;; - no) IncludeGHC_ONLYNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-GHC-ONLY-tests=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(PRIVATE-tests, - [--enable-PRIVATE-tests include PRIVATE tests], - [case "$enableval" in - yes) IncludePRIVATENoFibTests='YES' - ;; - no) IncludePRIVATENoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-PRIVATE-tests=$enableval" - exit 1 - ;; - esac]) - -AC_ARG_ENABLE(parallel-tests, - [--enable-parallel-tests include parallel tests -], - [case "$enableval" in - yes) IncludeParallelNoFibTests='YES' - ;; - no) IncludeParallelNoFibTests='NO' - ;; - *) echo "I don't understand this option: --enable-parallel-tests=$enableval" - exit 1 - ;; - esac]) - -AC_SUBST(IncludeRealNoFibTests) -AC_SUBST(IncludeSpectralNoFibTests) -AC_SUBST(IncludeImaginaryNoFibTests) -AC_SUBST(IncludePENDINGNoFibTests) -AC_SUBST(IncludeUNUSEDNoFibTests) -AC_SUBST(IncludeGHC_ONLYNoFibTests) -AC_SUBST(IncludeSpecialiseNoFibTests) -AC_SUBST(IncludePRIVATENoFibTests) -AC_SUBST(IncludeParallelNoFibTests) - -# here ends a very big if DoingNoFib = 'nofib' ... -fi -# -# ------------------------------------------------------------------------- -dnl -dnl * extract non-header files with substitution (end) -# -AC_SUBST(MkWorldSetup) +dnl ** code before data? +FPTOOLS_CODE_BEFORE_DATA -AC_OUTPUT(Makefile STARTUP mkworld/site.jm mkworld/platform.h mkworld/config.h $ghc_mkworld_site_ghc_jm $ghc_includes_platform_h $nofib_mkworld_site_nofib_jm) +AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h ) +echo '' echo '************************************************' -echo '*** NOW DO: sh < STARTUP' +echo '*** NOW DO: gmake boot followed by gmake all' +echo '*** (where gmake == GNU make)' echo '************************************************' exit 0