dnl == autoconf source for the Glasgow FP tools == 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 # # (c) The AQUA Project, Glasgow University, 1994-1998 # # Configure script template for the Glasgow functional programming tools # # Process with 'autoconf' to get a working configure script. # # 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) dnl * Declare subdirectories that have a private configure script dnl dnl After the toplevel configuration is complete, the script will recurse into dnl these subdirectories (the use of cache values makes repeated checks cheap) AC_CONFIG_SUBDIRS(ghc) # ------------------------------------------------------------------------- # Prepare to generate the following header files # # 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.." exit 1 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:/|' ` echo '' echo "*** The top of your build tree is: $hardtop" AC_SUBST(hardtop) dnl-------------------------------------------------------------------- dnl * Choose host(/target/build) platform dnl-------------------------------------------------------------------- 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 dnl ** canonicalize platform names 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 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-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 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' ;; alpha-unknown-linux) HostPlatform=alpha-unknown-linux TargetPlatform=alpha-unknown-linux BuildPlatform=alpha-unknown-linux HostPlatform_CPP='alpha_unknown_linux' HostArch_CPP='alpha' HostVendor_CPP='unknown' HostOS_CPP='linux' ;; alpha-unknown-freebsd*) HostPlatform=alpha-unknown-freebsd TargetPlatform=alpha-unknown-freebsd BuildPlatform=alpha-unknown-freebsd HostPlatform_CPP='alpha_unknown_freebsd' HostArch_CPP='alpha' HostVendor_CPP='unknown' HostOS_CPP='freebsd' ;; 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[[3-9]]*) # FreeBSD 3.0+ uses ELF 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-*-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='freebsd2' ;; 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' 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' 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) AC_SUBST(exeext) AC_PATH_PROG(GHC,ghc) AC_PATH_PROGS(NHC,nhc nhc98) AC_PATH_PROG(HBC,hbc) 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 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_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 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 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 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 FPTOOLS_PROG_DIFF dnl ** Find find command (for Win32's benefit) AC_PATH_PROG(FindCmd, find) dnl ** look for a decent parser generator (bison preferred) dnl (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing dnl on the suitability of the 'yacc' returned.) FPTOOLS_PROG_YACCY 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 dnl ** figure out how to do a BSD-ish install AC_PROG_INSTALL 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 CompressSuffix="Z" fi 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(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 stdint.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 bfd.h winsock.h) AC_CHECK_HEADER(readline/readline.h, HaveReadlineReadlineH=YES, HaveReadlineReadlineH=NO) AC_CHECK_HEADER(readline/history.h, HaveReadlineHistoryH=YES, HaveReadlineHistoryH=NO) if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then HaveReadlineHeaders=YES AC_DEFINE(HAVE_READLINE_HEADERS,1) else HaveReadlineHeaders=NO AC_DEFINE(HAVE_READLINE_HEADERS,0) fi AC_SUBST(HaveReadlineHeaders) 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 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 ** 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 ** do we have long longs? FPTOOLS_C_LONG_LONG dnl ** what are the sizes of various types dnl (these must come before GHC_CHECK_ALIGNMENT) AC_CHECK_SIZEOF(char, 1) AC_CHECK_SIZEOF(double, 8) AC_CHECK_SIZEOF(float, 4) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) if test "$fptools_cv_have_long_long" = yes; then AC_CHECK_SIZEOF(long long, 8) fi AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(unsigned char, 1) AC_CHECK_SIZEOF(unsigned int, 4) AC_CHECK_SIZEOF(unsigned long, 4) if test "$fptools_cv_have_long_long" = yes; then AC_CHECK_SIZEOF(unsigned long long, 8) fi AC_CHECK_SIZEOF(unsigned short, 2) AC_CHECK_SIZEOF(void *, 4) dnl ** what are alignment constraints on various types FPTOOLS_CHECK_ALIGNMENT(char) FPTOOLS_CHECK_ALIGNMENT(double) FPTOOLS_CHECK_ALIGNMENT(float) FPTOOLS_CHECK_ALIGNMENT(int) FPTOOLS_CHECK_ALIGNMENT(long) if test "$fptools_cv_have_long_long" = yes; then FPTOOLS_CHECK_ALIGNMENT(long long) fi FPTOOLS_CHECK_ALIGNMENT(short) FPTOOLS_CHECK_ALIGNMENT(unsigned char) FPTOOLS_CHECK_ALIGNMENT(unsigned int) FPTOOLS_CHECK_ALIGNMENT(unsigned long) if test "$fptools_cv_have_long_long" = yes; then FPTOOLS_CHECK_ALIGNMENT(unsigned long long) fi FPTOOLS_CHECK_ALIGNMENT(unsigned short) FPTOOLS_CHECK_ALIGNMENT(void *) 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 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 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 and hslibs' Readline dnl ncurses supersedes termcap and curses, but for compatibility, dnl we have to check for all... AC_CHECK_LIB(ncurses, tputs, HaveLibTermcap=YES; LibTermcap=ncurses, AC_CHECK_LIB(termcap, tputs, HaveLibTermcap=YES; LibTermcap=termcap, AC_CHECK_LIB(curses, tputs, HaveLibTermcap=YES; LibTermcap=curses, HaveLibTermcap=NO; LibTermcap=not-installed))) if test $HaveLibTermcap = YES ; then LIBS="-l$LibTermcap $LIBS" AC_CHECK_LIB(readline, readline, HaveLibReadline=YES, HaveLibReadline=NO) fi if test $HaveLibTermcap = YES && test x"$HaveLibReadline" = xYES ; then AC_DEFINE(HAVE_READLINE_LIBS,1) LibsReadline="-lreadline -l$LibTermcap" else AC_DEFINE(HAVE_READLINE_LIBS,0) LibsReadline= fi AC_SUBST(LibsReadline) 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 ** determine whether ANSI-function prototypes work? AC_C_PROTOTYPES 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.)") ) dnl ** check for leading underscores in symbol names FPTOOLS_UNDERSCORE dnl ** how is the end of text section signalled? FPTOOLS_END_TEXT_SECTION dnl ** how is the end of data section signalled? FPTOOLS_END_DATA_SECTION dnl ** code before data? FPTOOLS_CODE_BEFORE_DATA 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