dnl == autoconf source for the Glasgow FP tools == dnl (grep for '^dnl' to see the outline of this file) dnl dnl * INITIAL SETUP, CHOICE OF PLATFORM(S) #!/bin/sh # # (c) The AQUA Project, Glasgow University, 1994-1997 # # Configure script for the Glasgow functional programming tools # (created automagically by autoconf...do not edit by hand) # # 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(mk/config.h) # No, we don't do `--srcdir'... if test x"$srcdir" != 'x.' ; then echo "This configuration does not support the \`--srcdir' option.." exit 1 fi # # Remove some automounter nonsense (Glasgow specific gruff) # hardtop=`pwd` hardtop=`echo $hardtop | sed 's|^/tmp_mnt/|/|' | sed 's|^/grasp_tmp|/local/grasp_tmp|'` echo '' echo "*** The top of your build tree is: $hardtop" AC_SUBST(hardtop) ####-------------------------------------------------------------------- dnl ** choose host(/target/build) platform # # 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 if test x"$TargetPlatform" != x"$HostPlatform" ; then echo "GHC configuration does not support differing host/target (i.e., cross-compiling)" exit 1 fi # # 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-osf[[1234]]*) HostPlatform=alpha-dec-osf1 # canonicalise for our purposes TargetPlatform=alpha-dec-osf1 # this will work for now... (hack) BuildPlatform=alpha-dec-osf1 # hack HostPlatform_CPP='alpha_dec_osf1' HostArch_CPP='alpha' HostVendor_CPP='dec' HostOS_CPP='osf1' ;; hppa1.1-hp-hpux*) 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' HostArch_CPP='hppa1_1' HostVendor_CPP='hp' HostOS_CPP='hpux' ;; i[[3456]]86-*-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' ;; i[[3456]]86-*-linux*) HostPlatform=i386-unknown-linux # hack again TargetPlatform=i386-unknown-linux BuildPlatform=i386-unknown-linux HostPlatform_CPP='i386_unknown_linux' HostArch_CPP='i386' HostVendor_CPP='unknown' HostOS_CPP='linux' ;; i[[3456]]86-*-freebsd*) HostPlatform=i386-unknown-freebsd # hack again TargetPlatform=i386-unknown-freebsd BuildPlatform=i386-unknown-freebsd HostPlatform_CPP='i386_unknown_freebsd' HostArch_CPP='i386' HostVendor_CPP='unknown' HostOS_CPP='freebsd' ;; 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' ;; i[[3456]]86-*-solaris2*) HostPlatform=i386-unknown-solaris2 # hack again TargetPlatform=i386-unknown-solaris2 BuildPlatform=i386-unknown-solaris2 HostPlatform_CPP='i386_unknown_solaris2' HostArch_CPP='i386' 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' ;; m68k-next-nextstep2) HostPlatform_CPP='m68k_next_nextstep2' HostArch_CPP='m68k' HostVendor_CPP='next' HostOS_CPP='nextstep2' ;; m68k-next-nextstep3) HostPlatform_CPP='m68k_next_nextstep3' HostArch_CPP='m68k' HostVendor_CPP='next' HostOS_CPP='nextstep3' ;; i[[3456]]86-next-nextstep3) HostPlatform=i386-next-nextstep3 # hack again TargetPlatform=i386-next-nextstep3 BuildPlatform=i386-next-nextstep3 HostPlatform_CPP='i386_next_nextstep3' HostArch_CPP='i386' HostVendor_CPP='next' HostOS_CPP='nextstep3' ;; m68k-sun-sunos4*) HostPlatform=m68k-sun-sunos4 TargetPlatform=m68k-sun-sunos4 #hack BuildPlatform=m68k-sun-sunos4 #hack HostPlatform_CPP='m68k_sun_sunos4' HostArch_CPP='m68k' HostVendor_CPP='sun' HostOS_CPP='sunos4' ;; mips-dec-ultrix*) HostPlatform_CPP='mips_dec_ultrix' HostArch_CPP='mipsel' # NB a little different HostVendor_CPP='dec' HostOS_CPP='ultrix' ;; mips-sgi-irix*) HostPlatform=mips-sgi-irix TargetPlatform=mips-sgi-irix #hack BuildPlatform=mips-sgi-irix #hack HostPlatform_CPP='mips_sgi_irix' HostArch_CPP='mipseb' # NB a little different 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 BuildPlatform=powerpc-ibm-aix #hack HostPlatform_CPP='powerpc_ibm_aix' HostArch_CPP='powerpc' HostVendor_CPP='ibm' HostOS_CPP='aix' ;; sparc-sun-sunos4*) HostPlatform=sparc-sun-sunos4 TargetPlatform=sparc-sun-sunos4 #hack BuildPlatform=sparc-sun-sunos4 #hack HostPlatform_CPP='sparc_sun_sunos4' HostArch_CPP='sparc' HostVendor_CPP='sun' HostOS_CPP='sunos4' ;; sparc-sun-solaris2*) HostPlatform=sparc-sun-solaris2 TargetPlatform=sparc-sun-solaris2 #hack BuildPlatform=sparc-sun-solaris2 #hack HostPlatform_CPP='sparc_sun_solaris2' HostArch_CPP='sparc' HostVendor_CPP='sun' HostOS_CPP='solaris2' ;; *) echo "Unrecognised platform: $HostPlatform" exit 1 ;; esac 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 SUBSTs (because of braindead seds w/ 99 cmd limits) dnl AC_SUBST(BuildPlatform) AC_SUBST(HostPlatform) 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 ** does #! work? # AC_SYS_INTERPRETER() # dnl ** look for `perl', but watch out for version 4.035 # 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 AC_CHECK_PERL_VERSION fi # dnl ** does #!.../perl work? (sometimes it's too long...) # AC_SHEBANG_PERL # Remove: we work around the problem in the single place # where we rely on something (getopts) from the libraries. # #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);' # echo 'But, anyway, we will continue in our quest..' #fi # # 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 # AC_PROG_CC AC_HAVE_GCC # dnl ** figure out how to invoke cpp directly (gcc -E is no good) # AC_PROG_CPP AC_PROG_GNUCPP # dnl ** figure out how to do context diffs # AC_PROG_DIFF # dnl ** look for a decent parser generator (bison preferred) # # (AC_PROG_YACCY is AC_PROG_YACC, but with some extra testing # on the suitability of the 'yacc' returned.) AC_PROG_YACCY # dnl ** Find lex command (lex or flex) and library (-ll or -lfl) # AC_PROG_LEX # dnl ** figure out how to do a BSD-ish install # AC_PROG_INSTALL # dnl ** how to invoke `ar' and `ranlib' # AC_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 ** # # 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 CompressSuffix="Z" fi AC_SUBST(CompressCmd) AC_SUBST(CompressSuffix) # dnl ** check for installed happy binary + version # AC_HAPPY # # dnl ** check for installed lx binary # AC_PATH_PROG(LxCmd,lx) # dnl ** check for installed green-card binary # AC_PATH_PROG(GreencardCmd,green-card) #### program checking section ends here #### ####-------------------------------------------------- #### 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/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 readline/readline.h ) # dnl ** check if it is safe to include both and # AC_HEADER_TIME # dnl ** how do we get a timezone name, and UTC offset ? # AC_STRUCT_TIMEZONE # dnl what's the type of timezone? AC_TYPE_TIMEZONE # dnl do we have altzone? AC_ALTZONE # 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) # # Misc # dnl ** can we get alloca? AC_FUNC_ALLOCA dnl ** determine whether or not const works AC_C_CONST dnl ** determine the type of signal() AC_TYPE_SIGNAL # dnl ** check for leading underscores in symbol names # AC_UNDERSCORE AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h ) echo '' echo '************************************************' echo '*** NOW DO: gmake boot followed by gmake all' echo '*** (where gmake == GNU make)' echo '************************************************' exit 0