1 dnl == autoconf source for the Glasgow FP tools ==
2 dnl (run "grep '^dnl \*' configure.in | sed -e 's/dnl / /g; s/\*\*/ +/g;'"
3 dnl (or some such) to see the outline of this file)
6 # (c) The AQUA Project, Glasgow University, 1994-1998
8 # Configure script template for the Glasgow functional programming tools
10 # Process with 'autoconf' to get a working configure script.
12 # For the generated configure script, do "./configure --help" to
13 # see what flags are available. (Better yet, read the documentation!)
16 # First off, a distrib sanity check..
17 AC_INIT(mk/config.mk.in)
19 dnl * Declare subdirectories that have a private configure script
21 dnl After the toplevel configuration is complete, the script will recurse into
22 dnl these subdirectories (the use of cache values makes repeated checks cheap)
23 AC_CONFIG_SUBDIRS(ghc)
25 # -------------------------------------------------------------------------
26 # Prepare to generate the following header files
29 AC_CONFIG_HEADER(mk/config.h)
31 # No, semi-sadly, we don't do `--srcdir'...
32 if test x"$srcdir" != 'x.' ; then
33 echo "This configuration does not support the \`--srcdir' option.."
38 # Remove common automounter nonsense + convert from UNC to DOS style paths
39 # (UNC awareness isn't quite there yet for cygwin32-beta18 and consituent tools.)
42 hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|' | sed 's|^/grasp_tmp|/local/grasp_tmp|' | sed 's|^//\(.\)/|\1:/|' `
45 echo "*** The top of your build tree is: $hardtop"
48 dnl--------------------------------------------------------------------
49 dnl * Choose host(/target/build) platform
50 dnl--------------------------------------------------------------------
52 dnl Guess host/target/build platform(s) if necessary.
55 # "$host" defaults to "$target"
56 if test "x$host" = xNONE ; then
60 dnl ** canonicalize platform names
61 BuildPlatform=`/bin/sh $srcdir/config.sub $build` || exit 1
62 HostPlatform=`/bin/sh $srcdir/config.sub $host` || exit 1
63 TargetPlatform=`/bin/sh $srcdir/config.sub $target` || exit 1
65 if test x"$TargetPlatform" != x"$HostPlatform" ; then
66 echo "GHC configuration does not support differing host/target (i.e., cross-compiling)"
72 # The following will be more difficult when we *are* cross-compiling.
73 # Suitable names to slam in *_CPP are in platform.h.in.
74 # We also record the architecture, vendor, and operating system (OS)
78 HostPlatform=alpha-dec-osf1 # canonicalise for our purposes
79 TargetPlatform=alpha-dec-osf1 # this will work for now... (hack)
80 BuildPlatform=alpha-dec-osf1 # hack
81 HostPlatform_CPP='alpha_dec_osf1'
87 HostPlatform=alpha-dec-osf3 # canonicalise for our purposes
88 TargetPlatform=alpha-dec-osf3 # this will work for now... (hack)
89 BuildPlatform=alpha-dec-osf3 # hack
90 HostPlatform_CPP='alpha_dec_osf3'
96 HostPlatform=alpha-unknown-linux
97 TargetPlatform=alpha-unknown-linux
98 BuildPlatform=alpha-unknown-linux
99 HostPlatform_CPP='alpha_unknown_linux'
101 HostVendor_CPP='unknown'
104 alpha-unknown-freebsd*)
105 HostPlatform=alpha-unknown-freebsd
106 TargetPlatform=alpha-unknown-freebsd
107 BuildPlatform=alpha-unknown-freebsd
108 HostPlatform_CPP='alpha_unknown_freebsd'
110 HostVendor_CPP='unknown'
114 HostPlatform=hppa1.1-hp-hpux # canonicalise for our purposes (hack)
115 TargetPlatform=hppa1.1-hp-hpux
116 BuildPlatform=hppa1.1-hp-hpux
117 HostPlatform_CPP='hppa1_1_hp_hpux'
118 HostArch_CPP='hppa1_1'
122 i[[3456]]86-*-linuxaout*)
123 HostPlatform=i386-unknown-linuxaout # hack again
124 TargetPlatform=i386-unknown-linuxaout
125 BuildPlatform=i386-unknown-linuxaout
126 HostPlatform_CPP='i386_unknown_linuxaout'
128 HostVendor_CPP='unknown'
129 HostOS_CPP='linuxaout'
131 i[[3456]]86-*-linux*)
132 HostPlatform=i386-unknown-linux # hack again
133 TargetPlatform=i386-unknown-linux
134 BuildPlatform=i386-unknown-linux
135 HostPlatform_CPP='i386_unknown_linux'
137 HostVendor_CPP='unknown'
140 i[[3456]]86-*-freebsd[[3-9]]*) # FreeBSD 3.0+ uses ELF
141 HostPlatform=i386-unknown-freebsd # hack again
142 TargetPlatform=i386-unknown-freebsd
143 BuildPlatform=i386-unknown-freebsd
144 HostPlatform_CPP='i386_unknown_freebsd'
146 HostVendor_CPP='unknown'
149 i[[3456]]86-*-freebsd2*) # Older FreeBSDs are a.out
150 HostPlatform=i386-unknown-freebsd2 # hack again
151 TargetPlatform=i386-unknown-freebsd2
152 BuildPlatform=i386-unknown-freebsd2
153 HostPlatform_CPP='i386_unknown_freebsd2'
155 HostVendor_CPP='unknown'
156 HostOS_CPP='freebsd2'
158 i[[3456]]86-*-netbsd*)
159 HostPlatform=i386-unknown-netbsd # hack again
160 TargetPlatform=i386-unknown-netbsd
161 BuildPlatform=i386-unknown-netbsd
162 HostPlatform_CPP='i386_unknown_netbsd'
164 HostVendor_CPP='unknown'
167 i[[3456]]86-*-solaris2*)
168 HostPlatform=i386-unknown-solaris2 # hack again
169 TargetPlatform=i386-unknown-solaris2
170 BuildPlatform=i386-unknown-solaris2
171 HostPlatform_CPP='i386_unknown_solaris2'
173 HostVendor_CPP='unknown'
174 HostOS_CPP='solaris2'
176 i[[3456]]86-*-cygwin32*)
177 HostPlatform=i386-unknown-cygwin32 # hack again
178 TargetPlatform=i386-unknown-cygwin32
179 BuildPlatform=i386-unknown-cygwin32
180 HostPlatform_CPP='i386_unknown_cygwin32'
182 HostVendor_CPP='unknown'
183 HostOS_CPP='cygwin32'
186 i[[3456]]86-*-mingw32*)
187 HostPlatform=i386-unknown-mingw32 # hack again
188 TargetPlatform=i386-unknown-mingw32
189 BuildPlatform=i386-unknown-mingw32
190 HostPlatform_CPP='i386_unknown_mingw32'
192 HostVendor_CPP='unknown'
195 # We assume you're using mingw32 via the gcc that comes
196 # with cygwin, and not the native port, so let's augment
197 # the gcc command-line used here with -mno-cygwin to
198 # arrange for good things to happen.
199 CFLAGS="-mno-cygwin $CFLAGS"
202 HostPlatform_CPP='m68k_next_nextstep2'
204 HostVendor_CPP='next'
205 HostOS_CPP='nextstep2'
208 HostPlatform_CPP='m68k_next_nextstep3'
210 HostVendor_CPP='next'
211 HostOS_CPP='nextstep3'
213 i[[3456]]86-next-nextstep3)
214 HostPlatform=i386-next-nextstep3 # hack again
215 TargetPlatform=i386-next-nextstep3
216 BuildPlatform=i386-next-nextstep3
217 HostPlatform_CPP='i386_next_nextstep3'
219 HostVendor_CPP='next'
220 HostOS_CPP='nextstep3'
223 HostPlatform=m68k-sun-sunos4
224 TargetPlatform=m68k-sun-sunos4 #hack
225 BuildPlatform=m68k-sun-sunos4 #hack
226 HostPlatform_CPP='m68k_sun_sunos4'
232 HostPlatform_CPP='mips_dec_ultrix'
233 HostArch_CPP='mipsel' # NB a little different
238 HostPlatform=mips-sgi-irix
239 TargetPlatform=mips-sgi-irix #hack
240 BuildPlatform=mips-sgi-irix #hack
241 HostPlatform_CPP='mips_sgi_irix'
242 HostArch_CPP='mipseb' # NB a little different
247 HostPlatform=rs6000-ibm-aix
248 TargetPlatform=rs6000-ibm-aix #hack
249 BuildPlatform=rs6000-ibm-aix #hack
250 HostPlatform_CPP='rs6000_ibm_aix'
251 HostArch_CPP='rs6000'
256 HostPlatform=powerpc-ibm-aix
257 TargetPlatform=powerpc-ibm-aix #hack
258 BuildPlatform=powerpc-ibm-aix #hack
259 HostPlatform_CPP='powerpc_ibm_aix'
260 HostArch_CPP='powerpc'
265 HostPlatform=sparc-sun-sunos4
266 TargetPlatform=sparc-sun-sunos4 #hack
267 BuildPlatform=sparc-sun-sunos4 #hack
268 HostPlatform_CPP='sparc_sun_sunos4'
274 HostPlatform=sparc-sun-solaris2
275 TargetPlatform=sparc-sun-solaris2 #hack
276 BuildPlatform=sparc-sun-solaris2 #hack
277 HostPlatform_CPP='sparc_sun_solaris2'
280 HostOS_CPP='solaris2'
283 echo "Unrecognised platform: $HostPlatform"
287 echo "Canonicalised to: $HostPlatform"
288 test x"$HostPlatform" != x"$TargetPlatform" && echo "Target platform set to $TargetPlatform"
289 test x"$BuildPlatform" != x"$HostPlatform" && echo "Build platform set to $BuildPlatform"
291 BuildPlatform_CPP=$HostPlatform_CPP
292 TargetPlatform_CPP=$HostPlatform_CPP
293 BuildArch_CPP=$HostArch_CPP
294 TargetArch_CPP=$HostArch_CPP
295 BuildOS_CPP=$HostOS_CPP
297 TargetOS_CPP=$HostOS_CPP
298 BuildVendor_CPP=$HostVendor_CPP
299 TargetVendor_CPP=$HostVendor_CPP
301 dnl Cannot afford all these SUBSTs (because of braindead seds w/ 99 cmd limits)
302 dnl AC_SUBST(BuildPlatform)
304 AC_SUBST(HostPlatform)
305 AC_SUBST(TargetPlatform)
306 AC_SUBST(HostPlatform_CPP)
307 dnl AC_SUBST(BuildPlatform_CPP)
308 dnl AC_SUBST(TargetPlatform_CPP)
310 AC_SUBST(HostArch_CPP)
311 dnl AC_SUBST(BuildArch_CPP)
312 dnl AC_SUBST(TargetArch_CPP)
315 AC_SUBST(HostOS_Full)
316 dnl AC_SUBST(BuildOS_CPP)
317 dnl AC_SUBST(TargetOS_CPP)
319 AC_SUBST(HostVendor_CPP)
320 dnl AC_SUBST(BuildVendor_CPP)
321 dnl AC_SUBST(TargetVendor_CPP)
325 AC_PATH_PROG(GHC,ghc)
326 AC_PATH_PROGS(NHC,nhc nhc98)
327 AC_PATH_PROG(HBC,hbc)
329 dnl --------------------------------------------------------------
330 dnl * Project specific configuration options
331 dnl --------------------------------------------------------------
332 dnl What follows is a bunch of options that can either be configured
333 dnl through command line options to the configure script or by
334 dnl supplying defns in the build tree's mk/build.mk. Having the option to
335 dnl use either is considered a Feature.
337 dnl ** What command to use to compile compiler sources ?
338 dnl --------------------------------------------------------------
340 [ --with-hc=<haskell compiler>
341 Use a command different from 'ghc' to compile up Haskell code.
342 (no claims currently made that this will work with a compiler other than a
343 recent version of GHC, but you could always try...)
350 dnl ** Which gcc to use?
351 dnl --------------------------------------------------------------
353 [ --with-gcc=<gcc command>
354 Use a different command instead of 'gcc' for the GNU C compiler.
356 [WhatGccIsCalled="$withval"],
357 [WhatGccIsCalled="gcc"]
359 AC_SUBST(WhatGccIsCalled)
361 dnl ** Booting from .hc files?
362 dnl --------------------------------------------------------------
363 AC_ARG_ENABLE(hc-boot,
365 Boot the Glasgow Haskell Compiler from intermediate .hc files.
366 (This option is mostly of interest to porters.)
371 AC_SUBST(BootingFromHc)
374 dnl ** Enable the construction of Win32 DLLs?
375 dnl --------------------------------------------------------------
376 AC_ARG_ENABLE(win32-dlls,
377 [ --enable-win32-dlls
378 If on a Win32 platform running mingw32/cygwin, enable the
379 construction of DLLs containing ghc-compiled code.
385 *) echo "Unrecognised win32 platform: $HostPlatform"
393 AC_SUBST(EnableWin32DLLs)
394 if test x"$EnableWin32DLLs" = "xYES" ; then
395 AC_DEFINE(HAVE_WIN32_DLL_SUPPORT)
398 dnl --------------------------------------------------------------
399 dnl End of configure script option section
400 dnl --------------------------------------------------------------
403 dnl --------------------------------------------------------------
404 dnl * General configuration checks
405 dnl --------------------------------------------------------------
410 dnl ** look for `perl', but only in /bin on Windows
413 AC_CHECK_PROG(PerlCmd,perl,/bin/perl,,/bin)
414 if test -z "$PerlCmd"; then
415 echo "You must install the version of Perl shipped with GHC"
416 echo "(or a compatible one) in /bin."
421 AC_PATH_PROG(PerlCmd,perl)
422 if test -z "$PerlCmd"; then
423 echo "You must install perl before you can continue"
424 echo "Perhaps it is already installed, but not in your PATH?"
427 FPTOOLS_CHECK_PERL_VERSION
432 dnl ** does #! path/to/perl work? (sometimes it's too long...)
436 dnl ** look for GCC and find out which version
437 dnl Figure out which C compiler to use. Gcc is preferred.
438 dnl If gcc, make sure it's at least 2.1
443 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
446 dnl ** figure out how to do context diffs
449 dnl ** Find find command (for Win32's benefit)
450 AC_PATH_PROG(FindCmd, find)
452 dnl ** look for a decent parser generator (bison preferred)
453 dnl (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing
454 dnl on the suitability of the 'yacc' returned.)
457 dnl ** Find lex command (lex or flex) and library (-ll or -lfl)
458 dnl ( not that we care about the latter, see mk/config.mk.in )
462 dnl ** figure out how to do a BSD-ish install
465 dnl If you can run configure, you certainly have /bin/sh
466 AC_DEFINE(HAVE_BIN_SH)
468 dnl ** how to invoke `ar' and `ranlib'
469 FPTOOLS_PROG_AR_AND_RANLIB
472 dnl ** Check to see whether ln -s works
476 dnl ** Find the path to sed
477 AC_PATH_PROG(SedCmd,sed)
480 dnl ** check for time command
481 AC_PATH_PROG(TimeCmd,time)
485 dnl if GNU tar is named gtar, look for it first.
486 AC_PATH_PROGS(TarCmd,gtar tar,tar)
488 dnl ** check for gzip/compress
489 AC_PATH_PROGS(CompressCmd,gzip compress,gzip)
491 dnl ** check for jade/openjade & determine a working catalog
492 AC_PATH_PROGS(JadeCmd,openjade jade,jade)
493 FPTOOLS_DOCBOOK_CATALOG(Catalog, $JadeCmd, docs/fptools-both.dsl,
494 /usr/share/sgml/CATALOG.docbkdsl $hardtop/glafp-utils/docbook/CATALOG*)
495 if test -z "$Catalog"; then
496 AC_MSG_RESULT([Warning: You will not be able to build the documentation.])
500 compress_nm=`basename $CompressCmd`
501 if test x"$compress_nm" = xgzip; then
502 CompressCmd="$CompressCmd -d"
507 AC_SUBST(CompressCmd)
508 AC_SUBST(CompressSuffix)
510 dnl ** check for installed happy binary + version
511 dnl (don't do it if we're booting from .hc files though.)
512 if (test "$BootingFromHc" = "NO"); then
516 dnl --------------------------------------------------
517 dnl ### program checking section ends here ###
518 dnl --------------------------------------------------
520 dnl --------------------------------------------------
521 dnl * Platform header file and syscall feature tests
522 dnl ### checking the state of the local header files and syscalls ###
524 dnl ** check for full ANSI header (.h) files
527 dnl ** check for specific header (.h) files that we are interested in
528 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)
530 AC_CHECK_HEADER(readline/readline.h, HaveReadlineReadlineH=YES, HaveReadlineReadlineH=NO)
531 AC_CHECK_HEADER(readline/history.h, HaveReadlineHistoryH=YES, HaveReadlineHistoryH=NO)
533 if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then
534 HaveReadlineHeaders=YES
535 AC_DEFINE(HAVE_READLINE_HEADERS,1)
537 HaveReadlineHeaders=NO
538 AC_DEFINE(HAVE_READLINE_HEADERS,0)
540 AC_SUBST(HaveReadlineHeaders)
542 dnl ** check for DOS include files
543 AC_CHECK_HEADERS(dos.h conio.h io.h std.h)
545 dnl ** check for Windows include files
546 AC_CHECK_HEADERS(windows.h)
548 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
551 dnl dynamic loading include files
552 AC_CHECK_HEADERS(dlfcn.h dl.h)
554 dnl ** check for farcalloc (in bcc)
555 AC_CHECK_HEADER(alloc.h,AC_CHECK_FUNCS(farcalloc))
557 dnl ** check for valloc (in sunos, solaris, mips, amiga, next, minix, ultrix)
558 AC_CHECK_HEADER(malloc.h,AC_CHECK_FUNCS(valloc))
560 dnl ** how do we get a timezone name, and UTC offset ?
563 dnl ** what's the type of timezone?
564 FPTOOLS_HAVE_TIMEZONE
565 FPTOOLS_TYPE_TIMEZONE
567 dnl ** do we have altzone?
570 dnl ** does struct stat contain st_blksize?
573 dnl ** do we have long longs?
576 dnl ** what are the sizes of various types
577 dnl (these must come before GHC_CHECK_ALIGNMENT)
578 AC_CHECK_SIZEOF(char, 1)
579 AC_CHECK_SIZEOF(double, 8)
580 AC_CHECK_SIZEOF(float, 4)
581 AC_CHECK_SIZEOF(int, 4)
582 AC_CHECK_SIZEOF(long, 4)
583 if test "$fptools_cv_have_long_long" = yes; then
584 AC_CHECK_SIZEOF(long long, 8)
586 AC_CHECK_SIZEOF(short, 2)
587 AC_CHECK_SIZEOF(unsigned char, 1)
588 AC_CHECK_SIZEOF(unsigned int, 4)
589 AC_CHECK_SIZEOF(unsigned long, 4)
590 if test "$fptools_cv_have_long_long" = yes; then
591 AC_CHECK_SIZEOF(unsigned long long, 8)
593 AC_CHECK_SIZEOF(unsigned short, 2)
594 AC_CHECK_SIZEOF(void *, 4)
596 dnl ** what are alignment constraints on various types
597 FPTOOLS_CHECK_ALIGNMENT(char)
598 FPTOOLS_CHECK_ALIGNMENT(double)
599 FPTOOLS_CHECK_ALIGNMENT(float)
600 FPTOOLS_CHECK_ALIGNMENT(int)
601 FPTOOLS_CHECK_ALIGNMENT(long)
602 if test "$fptools_cv_have_long_long" = yes; then
603 FPTOOLS_CHECK_ALIGNMENT(long long)
605 FPTOOLS_CHECK_ALIGNMENT(short)
606 FPTOOLS_CHECK_ALIGNMENT(unsigned char)
607 FPTOOLS_CHECK_ALIGNMENT(unsigned int)
608 FPTOOLS_CHECK_ALIGNMENT(unsigned long)
609 if test "$fptools_cv_have_long_long" = yes; then
610 FPTOOLS_CHECK_ALIGNMENT(unsigned long long)
612 FPTOOLS_CHECK_ALIGNMENT(unsigned short)
613 FPTOOLS_CHECK_ALIGNMENT(void *)
615 dnl ** map standard C types and ISO types to Haskell types
616 FPTOOLS_CHECK_HTYPE(char)
617 FPTOOLS_CHECK_HTYPE(signed char)
618 FPTOOLS_CHECK_HTYPE(unsigned char)
619 FPTOOLS_CHECK_HTYPE(short)
620 FPTOOLS_CHECK_HTYPE(unsigned short)
621 FPTOOLS_CHECK_HTYPE(int)
622 FPTOOLS_CHECK_HTYPE(unsigned int)
623 FPTOOLS_CHECK_HTYPE(long)
624 FPTOOLS_CHECK_HTYPE(unsigned long)
625 if test "$fptools_cv_have_long_long" = yes; then
626 FPTOOLS_CHECK_HTYPE(long long)
627 FPTOOLS_CHECK_HTYPE(unsigned long long)
629 FPTOOLS_CHECK_HTYPE(float)
630 FPTOOLS_CHECK_HTYPE(double)
631 FPTOOLS_CHECK_HTYPE(ptrdiff_t)
632 FPTOOLS_CHECK_HTYPE(size_t)
633 FPTOOLS_CHECK_HTYPE(wchar_t)
634 dnl Int32 is a HACK for non-ISO C compilers
635 FPTOOLS_CHECK_HTYPE(sig_atomic_t, Int32)
636 FPTOOLS_CHECK_HTYPE(clock_t)
637 FPTOOLS_CHECK_HTYPE(time_t)
639 dnl ** can we open files in binary mode?
642 dnl ** check for GetModuleFileName and WinExec (windows only)
643 dnl Old: AC_CHECK_FUNCS(WinExec GetModuleFileName) dnl Windows
644 dnl Doesn't work because the linker can't see the functions if
645 dnl you omit the #include <windows.h>. (I've no idea why not...)
647 FPTOOLS_TRY_LINK_NOWARN(,[
658 if test "$have_winexec" = "1"; then
659 AC_DEFINE(HAVE_WINEXEC)
662 FPTOOLS_TRY_LINK_NOWARN(,[
668 GetModuleFileName((HMODULE)0,dir,0);
672 [have_getmodulefilename=1],
673 [have_getmodulefilename=0])
674 if test "$have_getmodulefilename" = "1"; then
675 AC_DEFINE(HAVE_GETMODULEFILENAME)
678 dnl ** check return type of signal handlers
679 dnl Foo: assumes we can use prototypes.
680 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
681 dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler,
682 dnl [AC_TRY_COMPILE([#include <sys/types.h>
683 dnl #include <signal.h>
687 dnl void (*signal (int, void (*)(int)))(int);
690 dnl ac_cv_type_signal_handler=void_int,
691 dnl ac_cv_type_signal_handler=int_void)])
692 dnl if test "$ac_cv_type_signal_handler" = void_int; then
693 dnl AC_DEFINE(VOID_INT_SIGNALS)
696 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
698 if test "$ac_cv_type_signal" = void; then
699 AC_DEFINE(VOID_INT_SIGNALS)
702 dnl ** check for more functions
703 AC_CHECK_FUNCS(strcasecmp _stricmp stricmp strcmpi)
704 AC_CHECK_FUNCS(strcmp)
705 AC_CHECK_FUNCS(realpath _fullpath)
706 AC_CHECK_FUNCS(PBHSetVolSync macsystem)
707 AC_CHECK_FUNCS(fgetpos fsetpos fseek ftell)
708 AC_CHECK_FUNCS(vsnprintf _vsnprintf)
709 AC_CHECK_FUNCS(snprintf _snprintf )
710 AC_CHECK_FUNCS(popen _popen )
711 AC_CHECK_FUNCS(pclose _pclose )
714 dnl ** check for specific library functions that we are interested in
715 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat symlink sysconf timelocal times vadvise vfork)
717 dnl ** check whether this machine has gmp2 installed
718 AC_CHECK_LIB(gmp, mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
719 AC_CHECK_LIB(gmp2, mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp2,
720 HaveLibGmp=No; LibGmp=not-installed))
724 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
725 dnl the order of these tests matters: bfd needs liberty
726 AC_CHECK_LIB(iberty, xmalloc)
727 AC_CHECK_LIB(bfd, bfd_init)
729 dnl ** check for readline, for Hugs and hslibs' Readline
730 dnl ncurses supersedes termcap and curses, but for compatibility,
731 dnl we have to check for all...
732 AC_CHECK_LIB(ncurses, tputs, HaveLibTermcap=YES; LibTermcap=ncurses,
733 AC_CHECK_LIB(termcap, tputs, HaveLibTermcap=YES; LibTermcap=termcap,
734 AC_CHECK_LIB(curses, tputs, HaveLibTermcap=YES; LibTermcap=curses,
735 HaveLibTermcap=NO; LibTermcap=not-installed)))
737 if test $HaveLibTermcap = YES ; then
738 LIBS="-l$LibTermcap $LIBS"
739 AC_CHECK_LIB(readline, readline, HaveLibReadline=YES, HaveLibReadline=NO)
742 if test $HaveLibTermcap = YES && test x"$HaveLibReadline" = xYES ; then
743 AC_DEFINE(HAVE_READLINE_LIBS,1)
744 LibsReadline="-lreadline -l$LibTermcap"
746 AC_DEFINE(HAVE_READLINE_LIBS,0)
749 AC_SUBST(LibsReadline)
751 dnl ################################################################
752 dnl Check for libraries
753 dnl ################################################################
755 FPTOOLS_CHECK_LIB_NOWARN(dl, dlopen)
756 FPTOOLS_CHECK_LIB_NOWARN(dld, shl_load)
757 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
759 dnl --------------------------------------------------
760 dnl * Miscellaneous feature tests
761 dnl --------------------------------------------------
763 dnl ** can we get alloca?
766 dnl ** determine whether or not const works
769 dnl ** determine whether ANSI-function prototypes work?
772 dnl ** are we big endian?
774 # Allay users' general fear of warnings of any kind.
775 errprint((fptools configure script wizard sez: "don't worry, the above warning is harmless (to us.)")
778 dnl ** check for leading underscores in symbol names
781 dnl ** how is the end of text section signalled?
782 FPTOOLS_END_TEXT_SECTION
784 dnl ** how is the end of data section signalled?
785 FPTOOLS_END_DATA_SECTION
787 dnl ** code before data?
788 FPTOOLS_CODE_BEFORE_DATA
790 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )
793 echo '************************************************'
794 echo '*** NOW DO: gmake boot followed by gmake all'
795 echo '*** (where gmake == GNU make)'
796 echo '************************************************'