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 if test "$GHC" = ""; then
326 AC_PATH_PROG(GHC,ghc)
328 if test "$GHC" != ""; then
329 FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
330 AC_SUBST(GhcVersion)dnl
331 AC_SUBST(GhcMajVersion)dnl
332 AC_SUBST(GhcMinVersion)dnl
333 AC_SUBST(GhcPatchLevel)dnl
336 AC_PATH_PROGS(NHC,nhc nhc98)
337 AC_PATH_PROG(HBC,hbc)
339 dnl --------------------------------------------------------------
340 dnl * Project specific configuration options
341 dnl --------------------------------------------------------------
342 dnl What follows is a bunch of options that can either be configured
343 dnl through command line options to the configure script or by
344 dnl supplying defns in the build tree's mk/build.mk. Having the option to
345 dnl use either is considered a Feature.
347 dnl ** What command to use to compile compiler sources ?
348 dnl --------------------------------------------------------------
350 [ --with-hc=<haskell compiler>
351 Use a command different from 'ghc' to compile up Haskell code.
352 (no claims currently made that this will work with a compiler other than a
353 recent version of GHC, but you could always try...)
360 dnl ** Which gcc to use?
361 dnl --------------------------------------------------------------
363 [ --with-gcc=<gcc command>
364 Use a different command instead of 'gcc' for the GNU C compiler.
366 [WhatGccIsCalled="$withval"],
367 [WhatGccIsCalled="gcc"]
369 AC_SUBST(WhatGccIsCalled)
371 dnl ** Booting from .hc files?
372 dnl --------------------------------------------------------------
373 AC_ARG_ENABLE(hc-boot,
375 Boot the Glasgow Haskell Compiler from intermediate .hc files.
376 (This option is mostly of interest to porters.)
381 AC_SUBST(BootingFromHc)
384 dnl ** Enable the construction of Win32 DLLs?
385 dnl --------------------------------------------------------------
386 AC_ARG_ENABLE(win32-dlls,
387 [ --enable-win32-dlls
388 If on a Win32 platform running mingw32/cygwin, enable the
389 construction of DLLs containing ghc-compiled code.
395 *) echo "Unrecognised win32 platform: $HostPlatform"
403 AC_SUBST(EnableWin32DLLs)
404 if test x"$EnableWin32DLLs" = "xYES" ; then
405 AC_DEFINE(HAVE_WIN32_DLL_SUPPORT)
408 dnl --------------------------------------------------------------
409 dnl End of configure script option section
410 dnl --------------------------------------------------------------
413 dnl --------------------------------------------------------------
414 dnl * General configuration checks
415 dnl --------------------------------------------------------------
420 dnl ** look for `perl', but only in /bin on Windows
423 AC_CHECK_PROG(PerlCmd,perl,/bin/perl,,/bin)
424 if test -z "$PerlCmd"; then
425 echo "You must install the version of Perl shipped with GHC"
426 echo "(or a compatible one) in /bin."
431 AC_PATH_PROG(PerlCmd,perl)
432 if test -z "$PerlCmd"; then
433 echo "You must install perl before you can continue"
434 echo "Perhaps it is already installed, but not in your PATH?"
437 FPTOOLS_CHECK_PERL_VERSION
442 dnl ** does #! path/to/perl work? (sometimes it's too long...)
446 dnl ** look for GCC and find out which version
447 dnl Figure out which C compiler to use. Gcc is preferred.
448 dnl If gcc, make sure it's at least 2.1
453 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
456 dnl ** figure out how to do context diffs
459 dnl ** Find find command (for Win32's benefit)
460 AC_PATH_PROG(FindCmd, find)
462 dnl ** look for a decent parser generator (bison preferred)
463 dnl (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing
464 dnl on the suitability of the 'yacc' returned.)
467 dnl ** Find lex command (lex or flex) and library (-ll or -lfl)
468 dnl ( not that we care about the latter, see mk/config.mk.in )
472 dnl ** figure out how to do a BSD-ish install
475 dnl If you can run configure, you certainly have /bin/sh
476 AC_DEFINE(HAVE_BIN_SH)
478 dnl ** how to invoke `ar' and `ranlib'
479 FPTOOLS_PROG_AR_AND_RANLIB
482 dnl ** Check to see whether ln -s works
486 dnl ** Find the path to sed
487 AC_PATH_PROG(SedCmd,sed)
490 dnl ** check for time command
491 AC_PATH_PROG(TimeCmd,time)
495 dnl if GNU tar is named gtar, look for it first.
496 AC_PATH_PROGS(TarCmd,gtar tar,tar)
498 dnl ** check for gzip/compress
499 AC_PATH_PROGS(CompressCmd,gzip compress,gzip)
501 dnl ** check for jade/openjade & determine a working catalog
502 AC_PATH_PROGS(JadeCmd,openjade jade,jade)
503 FPTOOLS_DOCBOOK_CATALOG(Catalog, $JadeCmd, docs/fptools-both.dsl,
504 /etc/sgml.catalog /usr/share/sgml/CATALOG.docbkdsl $hardtop/glafp-utils/docbook/CATALOG*)
505 if test -z "$Catalog"; then
506 AC_MSG_RESULT([Warning: You will not be able to build the documentation.])
510 compress_nm=`basename $CompressCmd`
511 if test x"$compress_nm" = xgzip; then
512 CompressCmd="$CompressCmd -d"
517 AC_SUBST(CompressCmd)
518 AC_SUBST(CompressSuffix)
520 dnl ** check for installed happy binary + version
521 dnl (don't do it if we're booting from .hc files though.)
522 if (test "$BootingFromHc" = "NO"); then
526 dnl --------------------------------------------------
527 dnl ### program checking section ends here ###
528 dnl --------------------------------------------------
530 dnl --------------------------------------------------
531 dnl * Platform header file and syscall feature tests
532 dnl ### checking the state of the local header files and syscalls ###
534 dnl ** check for full ANSI header (.h) files
537 dnl ** check for specific header (.h) files that we are interested in
538 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)
540 AC_CHECK_HEADER(readline/readline.h, HaveReadlineReadlineH=YES, HaveReadlineReadlineH=NO)
541 AC_CHECK_HEADER(readline/history.h, HaveReadlineHistoryH=YES, HaveReadlineHistoryH=NO)
543 if test $HaveReadlineReadlineH = YES && test $HaveReadlineHistoryH = YES ; then
544 HaveReadlineHeaders=YES
545 AC_DEFINE(HAVE_READLINE_HEADERS,1)
547 HaveReadlineHeaders=NO
548 AC_DEFINE(HAVE_READLINE_HEADERS,0)
550 AC_SUBST(HaveReadlineHeaders)
552 dnl ** check for DOS include files
553 AC_CHECK_HEADERS(dos.h conio.h io.h std.h)
555 dnl ** check for Windows include files
556 AC_CHECK_HEADERS(windows.h)
558 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
561 dnl dynamic loading include files
562 AC_CHECK_HEADERS(dlfcn.h dl.h)
564 dnl ** check for farcalloc (in bcc)
565 AC_CHECK_HEADER(alloc.h,AC_CHECK_FUNCS(farcalloc))
567 dnl ** check for valloc (in sunos, solaris, mips, amiga, next, minix, ultrix)
568 AC_CHECK_HEADER(malloc.h,AC_CHECK_FUNCS(valloc))
570 dnl ** how do we get a timezone name, and UTC offset ?
573 dnl ** what's the type of timezone?
574 FPTOOLS_HAVE_TIMEZONE
575 FPTOOLS_TYPE_TIMEZONE
577 dnl ** do we have altzone?
580 dnl ** does struct stat contain st_blksize?
583 dnl ** do we have long longs?
586 dnl ** what are the sizes of various types
587 dnl (these must come before GHC_CHECK_ALIGNMENT)
588 AC_CHECK_SIZEOF(char, 1)
589 AC_CHECK_SIZEOF(double, 8)
590 AC_CHECK_SIZEOF(float, 4)
591 AC_CHECK_SIZEOF(int, 4)
592 AC_CHECK_SIZEOF(long, 4)
593 if test "$fptools_cv_have_long_long" = yes; then
594 AC_CHECK_SIZEOF(long long, 8)
596 AC_CHECK_SIZEOF(short, 2)
597 AC_CHECK_SIZEOF(unsigned char, 1)
598 AC_CHECK_SIZEOF(unsigned int, 4)
599 AC_CHECK_SIZEOF(unsigned long, 4)
600 if test "$fptools_cv_have_long_long" = yes; then
601 AC_CHECK_SIZEOF(unsigned long long, 8)
603 AC_CHECK_SIZEOF(unsigned short, 2)
604 AC_CHECK_SIZEOF(void *, 4)
606 dnl ** what are alignment constraints on various types
607 FPTOOLS_CHECK_ALIGNMENT(char)
608 FPTOOLS_CHECK_ALIGNMENT(double)
609 FPTOOLS_CHECK_ALIGNMENT(float)
610 FPTOOLS_CHECK_ALIGNMENT(int)
611 FPTOOLS_CHECK_ALIGNMENT(long)
612 if test "$fptools_cv_have_long_long" = yes; then
613 FPTOOLS_CHECK_ALIGNMENT(long long)
615 FPTOOLS_CHECK_ALIGNMENT(short)
616 FPTOOLS_CHECK_ALIGNMENT(unsigned char)
617 FPTOOLS_CHECK_ALIGNMENT(unsigned int)
618 FPTOOLS_CHECK_ALIGNMENT(unsigned long)
619 if test "$fptools_cv_have_long_long" = yes; then
620 FPTOOLS_CHECK_ALIGNMENT(unsigned long long)
622 FPTOOLS_CHECK_ALIGNMENT(unsigned short)
623 FPTOOLS_CHECK_ALIGNMENT(void *)
625 dnl ** map standard C types and ISO types to Haskell types
626 FPTOOLS_CHECK_HTYPE(char)
627 FPTOOLS_CHECK_HTYPE(signed char)
628 FPTOOLS_CHECK_HTYPE(unsigned char)
629 FPTOOLS_CHECK_HTYPE(short)
630 FPTOOLS_CHECK_HTYPE(unsigned short)
631 FPTOOLS_CHECK_HTYPE(int)
632 FPTOOLS_CHECK_HTYPE(unsigned int)
633 FPTOOLS_CHECK_HTYPE(long)
634 FPTOOLS_CHECK_HTYPE(unsigned long)
635 if test "$fptools_cv_have_long_long" = yes; then
636 FPTOOLS_CHECK_HTYPE(long long)
637 FPTOOLS_CHECK_HTYPE(unsigned long long)
639 FPTOOLS_CHECK_HTYPE(float)
640 FPTOOLS_CHECK_HTYPE(double)
641 FPTOOLS_CHECK_HTYPE(ptrdiff_t)
642 FPTOOLS_CHECK_HTYPE(size_t)
643 FPTOOLS_CHECK_HTYPE(wchar_t)
644 dnl Int32 is a HACK for non-ISO C compilers
645 FPTOOLS_CHECK_HTYPE(sig_atomic_t, Int32)
646 FPTOOLS_CHECK_HTYPE(clock_t)
647 FPTOOLS_CHECK_HTYPE(time_t)
649 dnl ** can we open files in binary mode?
652 dnl ** check for GetModuleFileName and WinExec (windows only)
653 dnl Old: AC_CHECK_FUNCS(WinExec GetModuleFileName) dnl Windows
654 dnl Doesn't work because the linker can't see the functions if
655 dnl you omit the #include <windows.h>. (I've no idea why not...)
657 FPTOOLS_TRY_LINK_NOWARN(,[
668 if test "$have_winexec" = "1"; then
669 AC_DEFINE(HAVE_WINEXEC)
672 FPTOOLS_TRY_LINK_NOWARN(,[
678 GetModuleFileName((HMODULE)0,dir,0);
682 [have_getmodulefilename=1],
683 [have_getmodulefilename=0])
684 if test "$have_getmodulefilename" = "1"; then
685 AC_DEFINE(HAVE_GETMODULEFILENAME)
688 dnl ** check return type of signal handlers
689 dnl Foo: assumes we can use prototypes.
690 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
691 dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler,
692 dnl [AC_TRY_COMPILE([#include <sys/types.h>
693 dnl #include <signal.h>
697 dnl void (*signal (int, void (*)(int)))(int);
700 dnl ac_cv_type_signal_handler=void_int,
701 dnl ac_cv_type_signal_handler=int_void)])
702 dnl if test "$ac_cv_type_signal_handler" = void_int; then
703 dnl AC_DEFINE(VOID_INT_SIGNALS)
706 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
708 if test "$ac_cv_type_signal" = void; then
709 AC_DEFINE(VOID_INT_SIGNALS)
712 dnl ** check for more functions
713 AC_CHECK_FUNCS(strcasecmp _stricmp stricmp strcmpi)
714 AC_CHECK_FUNCS(strcmp)
715 AC_CHECK_FUNCS(realpath _fullpath)
716 AC_CHECK_FUNCS(PBHSetVolSync macsystem)
717 AC_CHECK_FUNCS(fgetpos fsetpos fseek ftell)
718 AC_CHECK_FUNCS(vsnprintf _vsnprintf)
719 AC_CHECK_FUNCS(snprintf _snprintf )
720 AC_CHECK_FUNCS(popen _popen )
721 AC_CHECK_FUNCS(pclose _pclose )
724 dnl ** check for specific library functions that we are interested in
725 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat symlink sysconf timelocal times vadvise vfork)
727 dnl ** check whether this machine has gmp2 installed
728 AC_CHECK_LIB(gmp, mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
729 AC_CHECK_LIB(gmp2, mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp2,
730 HaveLibGmp=No; LibGmp=not-installed))
734 dnl ** check whether this machine has GNU regex in libc.
735 FPTOOLS_REGEX_IN_LIBC
737 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
738 dnl the order of these tests matters: bfd needs liberty
739 AC_CHECK_LIB(iberty, xmalloc)
740 AC_CHECK_LIB(bfd, bfd_init)
742 dnl ** check for readline, for Hugs and hslibs' Readline
743 dnl ncurses supersedes termcap and curses, but for compatibility,
744 dnl we have to check for all...
745 AC_CHECK_LIB(ncurses, tputs, HaveLibTermcap=YES; LibTermcap=ncurses,
746 AC_CHECK_LIB(termcap, tputs, HaveLibTermcap=YES; LibTermcap=termcap,
747 AC_CHECK_LIB(curses, tputs, HaveLibTermcap=YES; LibTermcap=curses,
748 HaveLibTermcap=NO; LibTermcap=not-installed)))
750 if test $HaveLibTermcap = YES ; then
751 LIBS="-l$LibTermcap $LIBS"
752 AC_CHECK_LIB(readline, readline, HaveLibReadline=YES, HaveLibReadline=NO)
755 if test $HaveLibTermcap = YES && test x"$HaveLibReadline" = xYES ; then
756 AC_DEFINE(HAVE_READLINE_LIBS,1)
757 LibsReadline="-lreadline -l$LibTermcap"
759 AC_DEFINE(HAVE_READLINE_LIBS,0)
762 AC_SUBST(LibsReadline)
764 dnl ################################################################
765 dnl Check for libraries
766 dnl ################################################################
768 FPTOOLS_CHECK_LIB_NOWARN(dl, dlopen)
769 FPTOOLS_CHECK_LIB_NOWARN(dld, shl_load)
770 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
772 dnl --------------------------------------------------
773 dnl * Miscellaneous feature tests
774 dnl --------------------------------------------------
776 dnl ** can we get alloca?
779 dnl ** determine whether or not const works
782 dnl ** determine whether ANSI-function prototypes work?
785 dnl ** are we big endian?
787 # Allay users' general fear of warnings of any kind.
788 errprint((fptools configure script wizard sez: "don't worry, the above warning is harmless (to us.)")
791 dnl ** check for leading underscores in symbol names
794 dnl ** how is the end of text section signalled?
795 FPTOOLS_END_TEXT_SECTION
797 dnl ** how is the end of data section signalled?
798 FPTOOLS_END_DATA_SECTION
800 dnl ** code before data?
801 FPTOOLS_CODE_BEFORE_DATA
803 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )
806 echo '************************************************'
807 echo '*** NOW DO: gmake boot followed by gmake all'
808 echo '*** (where gmake == GNU make)'
809 echo '************************************************'