[project @ 1999-12-07 14:46:31 by chak]
[ghc-hetmet.git] / configure.in
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)
4 dnl
5 #
6 # (c) The AQUA Project, Glasgow University, 1994-1998
7 #
8 # Configure script template for the Glasgow functional programming tools
9 #
10 # Process with 'autoconf' to get a working configure script.
11 #
12 # For the generated configure script, do "./configure --help" to
13 # see what flags are available. (Better yet, read the documentation!)
14 #
15
16 # First off, a distrib sanity check..
17 AC_INIT(mk/config.mk.in)
18
19 dnl * Declare subdirectories that have a private configure script
20 dnl
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)
24
25 # -------------------------------------------------------------------------
26 # Prepare to generate the following header files
27 #
28 #
29 AC_CONFIG_HEADER(mk/config.h)
30
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.."
34     exit 1
35 fi
36
37 #
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.)
40 #
41 hardtop=`pwd`
42 hardtop=`echo $hardtop | sed 's|^/tmp_mnt.*\(/local/.*\)$|\1|' | sed 's|^/tmp_mnt/|/|' | sed 's|^/grasp_tmp|/local/grasp_tmp|' | sed 's|^//\(.\)/|\1:/|' `
43
44 echo ''
45 echo "*** The top of your build tree is: $hardtop"
46 AC_SUBST(hardtop)
47
48 dnl--------------------------------------------------------------------
49 dnl * Choose host(/target/build) platform
50 dnl--------------------------------------------------------------------
51
52 dnl Guess host/target/build platform(s) if necessary.
53 AC_CANONICAL_SYSTEM
54
55 # "$host" defaults to "$target"
56 if test "x$host" = xNONE ; then
57     host=$target
58 fi
59
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
64
65 if test x"$TargetPlatform" != x"$HostPlatform" ; then
66     echo "GHC configuration does not support differing host/target (i.e., cross-compiling)"
67     exit 1
68 fi
69
70 exeext=''
71 #
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)
75 # separately.
76 case $HostPlatform in
77 alpha-dec-osf[[12]]*)
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'
82         HostArch_CPP='alpha'
83         HostVendor_CPP='dec'
84         HostOS_CPP='osf1'
85         ;;
86 alpha-dec-osf[[34]]*)
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'
91         HostArch_CPP='alpha'
92         HostVendor_CPP='dec'
93         HostOS_CPP='osf3'
94         ;;
95 hppa1.1-hp-hpux*)
96         HostPlatform=hppa1.1-hp-hpux  # canonicalise for our purposes (hack)
97         TargetPlatform=hppa1.1-hp-hpux
98         BuildPlatform=hppa1.1-hp-hpux
99         HostPlatform_CPP='hppa1_1_hp_hpux'
100         HostArch_CPP='hppa1_1'
101         HostVendor_CPP='hp'
102         HostOS_CPP='hpux'
103         ;;
104 i[[3456]]86-*-linuxaout*)
105         HostPlatform=i386-unknown-linuxaout   # hack again
106         TargetPlatform=i386-unknown-linuxaout
107         BuildPlatform=i386-unknown-linuxaout
108         HostPlatform_CPP='i386_unknown_linuxaout'
109         HostArch_CPP='i386'
110         HostVendor_CPP='unknown'
111         HostOS_CPP='linuxaout'
112         ;;
113 i[[3456]]86-*-linux*)
114         HostPlatform=i386-unknown-linux # hack again
115         TargetPlatform=i386-unknown-linux
116         BuildPlatform=i386-unknown-linux
117         HostPlatform_CPP='i386_unknown_linux'
118         HostArch_CPP='i386'
119         HostVendor_CPP='unknown'
120         HostOS_CPP='linux'
121         ;;
122 i[[3456]]86-*-freebsd3*) # FreeBSD 3.0+ uses ELF
123         HostPlatform=i386-unknown-freebsd3 # hack again
124         TargetPlatform=i386-unknown-freebsd3
125         BuildPlatform=i386-unknown-freebsd3
126         HostPlatform_CPP='i386_unknown_freebsd3'
127         HostArch_CPP='i386'
128         HostVendor_CPP='unknown'
129         HostOS_CPP='freebsd3'
130         ;;
131 i[[3456]]86-*-freebsd2*) # Older FreeBSDs are a.out
132         HostPlatform=i386-unknown-freebsd2 # hack again
133         TargetPlatform=i386-unknown-freebsd2
134         BuildPlatform=i386-unknown-freebsd2
135         HostPlatform_CPP='i386_unknown_freebsd2'
136         HostArch_CPP='i386'
137         HostVendor_CPP='unknown'
138         HostOS_CPP='freebsd2'
139         ;;
140 i[[3456]]86-*-netbsd*)
141         HostPlatform=i386-unknown-netbsd # hack again
142         TargetPlatform=i386-unknown-netbsd
143         BuildPlatform=i386-unknown-netbsd
144         HostPlatform_CPP='i386_unknown_netbsd'
145         HostArch_CPP='i386'
146         HostVendor_CPP='unknown'
147         HostOS_CPP='netbsd'
148         ;;
149 i[[3456]]86-*-solaris2*)
150         HostPlatform=i386-unknown-solaris2 # hack again
151         TargetPlatform=i386-unknown-solaris2
152         BuildPlatform=i386-unknown-solaris2
153         HostPlatform_CPP='i386_unknown_solaris2'
154         HostArch_CPP='i386'
155         HostVendor_CPP='unknown'
156         HostOS_CPP='solaris2'
157         ;;
158 i[[3456]]86-*-cygwin32*)
159         HostPlatform=i386-unknown-cygwin32 # hack again
160         TargetPlatform=i386-unknown-cygwin32
161         BuildPlatform=i386-unknown-cygwin32
162         HostPlatform_CPP='i386_unknown_cygwin32'
163         HostArch_CPP='i386'
164         HostVendor_CPP='unknown'
165         HostOS_CPP='cygwin32'
166         exeext='.exe'
167         ;;
168 i[[3456]]86-*-mingw32*)
169         HostPlatform=i386-unknown-mingw32 # hack again
170         TargetPlatform=i386-unknown-mingw32
171         BuildPlatform=i386-unknown-mingw32
172         HostPlatform_CPP='i386_unknown_mingw32'
173         HostArch_CPP='i386'
174         HostVendor_CPP='unknown'
175         HostOS_CPP='mingw32'
176         exeext='.exe'
177         # We assume you're using mingw32 via the gcc that comes
178         # with cygwin, and not the native port, so let's augment
179         # the gcc command-line used here with -mno-cygwin to
180         # arrange for good things to happen.
181         CFLAGS="-mno-cygwin $CFLAGS"
182         ;;
183 m68k-next-nextstep2)
184         HostPlatform_CPP='m68k_next_nextstep2'
185         HostArch_CPP='m68k'
186         HostVendor_CPP='next'
187         HostOS_CPP='nextstep2'
188         ;;
189 m68k-next-nextstep3)
190         HostPlatform_CPP='m68k_next_nextstep3'
191         HostArch_CPP='m68k'
192         HostVendor_CPP='next'
193         HostOS_CPP='nextstep3'
194         ;;
195 i[[3456]]86-next-nextstep3)
196         HostPlatform=i386-next-nextstep3 # hack again
197         TargetPlatform=i386-next-nextstep3
198         BuildPlatform=i386-next-nextstep3
199         HostPlatform_CPP='i386_next_nextstep3'
200         HostArch_CPP='i386'
201         HostVendor_CPP='next'
202         HostOS_CPP='nextstep3'
203         ;;
204 m68k-sun-sunos4*)
205         HostPlatform=m68k-sun-sunos4
206         TargetPlatform=m68k-sun-sunos4 #hack
207         BuildPlatform=m68k-sun-sunos4 #hack
208         HostPlatform_CPP='m68k_sun_sunos4'
209         HostArch_CPP='m68k'
210         HostVendor_CPP='sun'
211         HostOS_CPP='sunos4'
212         ;;
213 mips-dec-ultrix*)
214         HostPlatform_CPP='mips_dec_ultrix'
215         HostArch_CPP='mipsel'   # NB a little different
216         HostVendor_CPP='dec'
217         HostOS_CPP='ultrix'
218         ;;
219 mips-sgi-irix*)
220         HostPlatform=mips-sgi-irix
221         TargetPlatform=mips-sgi-irix #hack
222         BuildPlatform=mips-sgi-irix #hack
223         HostPlatform_CPP='mips_sgi_irix'
224         HostArch_CPP='mipseb'   # NB a little different
225         HostVendor_CPP='sgi'
226         HostOS_CPP='irix'
227         ;;
228 rs6000-ibm-aix*)
229         HostPlatform=rs6000-ibm-aix
230         TargetPlatform=rs6000-ibm-aix #hack
231         BuildPlatform=rs6000-ibm-aix #hack
232         HostPlatform_CPP='rs6000_ibm_aix'
233         HostArch_CPP='rs6000'
234         HostVendor_CPP='ibm'
235         HostOS_CPP='aix'
236         ;;
237 powerpc-ibm-aix*)
238         HostPlatform=powerpc-ibm-aix
239         TargetPlatform=powerpc-ibm-aix #hack
240         BuildPlatform=powerpc-ibm-aix #hack
241         HostPlatform_CPP='powerpc_ibm_aix'
242         HostArch_CPP='powerpc'
243         HostVendor_CPP='ibm'
244         HostOS_CPP='aix'
245         ;;
246 sparc-sun-sunos4*)
247         HostPlatform=sparc-sun-sunos4
248         TargetPlatform=sparc-sun-sunos4 #hack
249         BuildPlatform=sparc-sun-sunos4 #hack
250         HostPlatform_CPP='sparc_sun_sunos4'
251         HostArch_CPP='sparc'
252         HostVendor_CPP='sun'
253         HostOS_CPP='sunos4'
254         ;;
255 sparc-sun-solaris2*)
256         HostPlatform=sparc-sun-solaris2
257         TargetPlatform=sparc-sun-solaris2 #hack
258         BuildPlatform=sparc-sun-solaris2 #hack
259         HostPlatform_CPP='sparc_sun_solaris2'
260         HostArch_CPP='sparc'
261         HostVendor_CPP='sun'
262         HostOS_CPP='solaris2'
263         ;;
264 *)
265         echo "Unrecognised platform: $HostPlatform"
266         exit 1
267         ;;
268 esac
269 echo "Canonicalised to: $HostPlatform"
270 test  x"$HostPlatform" != x"$TargetPlatform" && echo "Target platform set to $TargetPlatform"
271 test  x"$BuildPlatform" != x"$HostPlatform"  && echo "Build platform set to $BuildPlatform"
272
273 BuildPlatform_CPP=$HostPlatform_CPP
274 TargetPlatform_CPP=$HostPlatform_CPP
275 BuildArch_CPP=$HostArch_CPP
276 TargetArch_CPP=$HostArch_CPP
277 BuildOS_CPP=$HostOS_CPP
278 HostOS_Full=$host_os
279 TargetOS_CPP=$HostOS_CPP
280 BuildVendor_CPP=$HostVendor_CPP
281 TargetVendor_CPP=$HostVendor_CPP
282
283 dnl Cannot afford all these SUBSTs (because of braindead seds w/ 99 cmd limits)
284 dnl AC_SUBST(BuildPlatform)
285
286 AC_SUBST(HostPlatform)
287 AC_SUBST(TargetPlatform)
288 AC_SUBST(HostPlatform_CPP)
289 dnl AC_SUBST(BuildPlatform_CPP)
290 dnl AC_SUBST(TargetPlatform_CPP)
291
292 AC_SUBST(HostArch_CPP)
293 dnl AC_SUBST(BuildArch_CPP)
294 dnl AC_SUBST(TargetArch_CPP)
295
296 AC_SUBST(HostOS_CPP)
297 AC_SUBST(HostOS_Full)
298 dnl AC_SUBST(BuildOS_CPP)
299 dnl AC_SUBST(TargetOS_CPP)
300
301 AC_SUBST(HostVendor_CPP)
302 dnl AC_SUBST(BuildVendor_CPP)
303 dnl AC_SUBST(TargetVendor_CPP)
304
305 AC_SUBST(exeext)
306
307 dnl --------------------------------------------------------------
308 dnl * Project specific configuration options
309 dnl --------------------------------------------------------------
310 dnl What follows is a bunch of options that can either be configured
311 dnl through command line options to the configure script or by
312 dnl supplying defns in the build tree's mk/build.mk. Having the option to
313 dnl use either is considered a Feature.
314
315 dnl ** What command to use to compile compiler sources ?
316 dnl --------------------------------------------------------------
317 AC_ARG_WITH(hc,
318 [  --with-hc=<haskell compiler>
319         Use a command different from 'ghc' to compile up Haskell code.
320         (no claims currently made that this will work with a compiler other than a
321          recent version of GHC, but you could always try...)
322 ],
323 [WithHc="$withval"],
324 [WithHc="ghc"]
325 )
326 AC_SUBST(WithHc)
327
328 dnl ** Which gcc to use?
329 dnl --------------------------------------------------------------
330 AC_ARG_WITH(gcc,
331 [  --with-gcc=<gcc command>
332         Use a different command instead of 'gcc' for the GNU C compiler.
333 ],
334 [WhatGccIsCalled="$withval"],
335 [WhatGccIsCalled="gcc"]
336 )
337 AC_SUBST(WhatGccIsCalled)
338
339 dnl ** Booting from .hc files?
340 dnl --------------------------------------------------------------
341 AC_ARG_ENABLE(hc-boot,
342 [  --enable-hc-boot
343         Boot the Glasgow Haskell Compiler from intermediate .hc files.
344         (This option is mostly of interest to porters.)
345 ],
346 [BootingFromHc=YES],
347 [BootingFromHc=NO]
348 )
349 AC_SUBST(BootingFromHc)
350
351
352 dnl ** Enable the construction of Win32 DLLs?
353 dnl --------------------------------------------------------------
354 AC_ARG_ENABLE(win32-dlls,
355 [  --enable-win32-dlls
356         If on a Win32 platform running mingw32/cygwin, enable the
357         construction of DLLs containing ghc-compiled code.
358 ],
359 [
360 case $HostOS_CPP in
361 cygwin32) ;;
362 mingw32)  ;;
363 *)    echo "Unrecognised win32 platform: $HostPlatform"
364       exit 1
365       ;;
366 esac
367 EnableWin32DLLs=YES
368 ],
369 [EnableWin32DLLs=NO]
370 )
371 AC_SUBST(EnableWin32DLLs)
372 if test x"$EnableWin32DLLs" = "xYES" ; then
373  AC_DEFINE(HAVE_WIN32_DLL_SUPPORT)
374 fi
375
376 dnl --------------------------------------------------------------
377 dnl End of configure script option section
378 dnl --------------------------------------------------------------
379
380
381 dnl --------------------------------------------------------------
382 dnl * General configuration checks
383 dnl --------------------------------------------------------------
384
385 dnl ** does #! work?
386 AC_SYS_INTERPRETER()
387
388 dnl ** look for `perl', but watch out for version 4.035
389 AC_PATH_PROG(PerlCmd,perl)
390 if test -z "$PerlCmd"; then
391    echo "You must install perl before you can continue"
392    echo "Perhaps it is already installed, but not in your PATH?"
393    exit 1
394 else
395 FPTOOLS_CHECK_PERL_VERSION
396 fi
397
398 dnl ** does #! path/to/perl work? (sometimes it's too long...)
399 FPTOOLS_SHEBANG_PERL
400
401
402 dnl ** look for GCC and find out which version
403 dnl     Figure out which C compiler to use.  Gcc is preferred.
404 dnl     If gcc, make sure it's at least 2.1
405 dnl
406 AC_PROG_CC
407 FPTOOLS_HAVE_GCC
408
409 dnl ** figure out how to invoke cpp directly (gcc -E is no good)
410 AC_PROG_CPP
411
412 dnl ** figure out how to do context diffs
413 FPTOOLS_PROG_DIFF
414
415
416 dnl ** look for a decent parser generator (bison preferred)
417 dnl (FPTOOLS_PROG_YACCY is AC_PROG_YACC, but with some extra testing 
418 dnl  on the suitability of the 'yacc' returned.)
419 FPTOOLS_PROG_YACCY
420
421 dnl ** Find lex command (lex or flex) and library (-ll or -lfl)
422 dnl     ( not that we care about the latter, see mk/config.mk.in )
423 AC_PROG_LEX
424
425
426 dnl ** figure out how to do a BSD-ish install
427 AC_PROG_INSTALL
428
429 dnl If you can run configure, you certainly have /bin/sh
430 AC_DEFINE(HAVE_BIN_SH)
431
432 dnl ** how to invoke `ar' and `ranlib'
433 FPTOOLS_PROG_AR_AND_RANLIB
434
435
436 dnl ** Check to see whether ln -s works
437 AC_PROG_LN_S
438
439
440 dnl ** Find the path to sed
441 AC_PATH_PROG(SedCmd,sed)
442
443
444 dnl ** check for time command
445 AC_PATH_PROG(TimeCmd,time)
446
447
448 dnl ** check for tar
449 dnl   if GNU tar is named gtar, look for it first.
450 AC_PATH_PROGS(TarCmd,gtar tar,tar)
451
452 dnl ** check for gzip/compress
453 AC_PATH_PROGS(CompressCmd,gzip compress,gzip)
454
455 compress_nm=`basename $CompressCmd`
456 if test x"$compress_nm" = xgzip; then
457   CompressCmd="$CompressCmd -d"
458   CompressSuffix="gz"
459 else
460   CompressSuffix="Z"
461 fi
462 AC_SUBST(CompressCmd)
463 AC_SUBST(CompressSuffix)
464
465 dnl ** check for installed happy binary + version
466 dnl    (don't do it if we're booting from .hc files though.)
467 if (test "$BootingFromHc" = "NO"); then
468 FPTOOLS_HAPPY
469 fi;
470
471 dnl --------------------------------------------------
472 dnl ### program checking section ends here ###
473 dnl --------------------------------------------------
474
475 dnl --------------------------------------------------
476 dnl * Platform header file and syscall feature tests
477 dnl ### checking the state of the local header files and syscalls ###
478
479 dnl ** check for full ANSI header (.h) files
480 AC_HEADER_STDC
481
482 dnl ** check for specific header (.h) files that we are interested in
483 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)
484
485 dnl ** check for DOS include files
486 AC_CHECK_HEADERS(dos.h conio.h io.h std.h) 
487
488 dnl ** check for Windows include files
489 AC_CHECK_HEADERS(windows.h)
490
491 dnl ** check if it is safe to include both <time.h> and <sys/time.h>
492 AC_HEADER_TIME
493
494 dnl dynamic loading include files
495 AC_CHECK_HEADERS(dlfcn.h dl.h) 
496
497 dnl ** check for farcalloc (in bcc)
498 AC_CHECK_HEADER(alloc.h,AC_CHECK_FUNCS(farcalloc))
499
500 dnl ** check for valloc (in sunos, solaris, mips, amiga, next, minix, ultrix)
501 AC_CHECK_HEADER(malloc.h,AC_CHECK_FUNCS(valloc))
502
503 dnl ** how do we get a timezone name, and UTC offset ?
504 AC_STRUCT_TIMEZONE
505
506 dnl ** what's the type of timezone?
507 FPTOOLS_HAVE_TIMEZONE
508 FPTOOLS_TYPE_TIMEZONE
509
510 dnl ** do we have altzone?
511 FPTOOLS_ALTZONE
512
513 dnl ** does struct stat contain st_blksize?
514 AC_STRUCT_ST_BLKSIZE
515
516 dnl ** what are the sizes of various types
517 dnl    (these must come before GHC_CHECK_ALIGNMENT)
518 AC_CHECK_SIZEOF(unsigned int,4)
519 AC_CHECK_SIZEOF(float,       4)
520 AC_CHECK_SIZEOF(double,      8)
521 AC_CHECK_SIZEOF(long,        4)
522 AC_CHECK_SIZEOF(void *,      4)
523
524 dnl ** what are alignment constraints on various types
525 FPTOOLS_CHECK_ALIGNMENT(unsigned int) dnl redundant but harmless
526 FPTOOLS_CHECK_ALIGNMENT(long)
527 FPTOOLS_CHECK_ALIGNMENT(float)
528 FPTOOLS_CHECK_ALIGNMENT(double)
529
530 dnl ** do we have long longs?
531 FPTOOLS_C_LONG_LONG
532
533 dnl ** can we open files in binary mode?
534 FPTOOLS_O_BINARY
535
536 dnl ** check for GetModuleFileName and WinExec (windows only)
537 dnl Old: AC_CHECK_FUNCS(WinExec GetModuleFileName)       dnl Windows
538 dnl Doesn't work because the linker can't see the functions if
539 dnl you omit the #include <windows.h>.  (I've no idea why not...)
540
541 FPTOOLS_TRY_LINK_NOWARN(,[
542 #if HAVE_WINDOWS_H
543 #include <windows.h>
544 #endif
545 main() { 
546   WinExec("",0);
547   exit(0);
548 }
549 ],
550 [have_winexec=1],
551 [have_winexec=0])
552 if test "$have_winexec" = "1"; then
553 AC_DEFINE(HAVE_WINEXEC)
554 fi
555
556 FPTOOLS_TRY_LINK_NOWARN(,[
557 #if HAVE_WINDOWS_H
558 #include <windows.h>
559 #endif
560 main() { 
561   char* dir;
562   GetModuleFileName((HMODULE)0,dir,0);
563   exit(0);
564 }
565 ],
566 [have_getmodulefilename=1],
567 [have_getmodulefilename=0])
568 if test "$have_getmodulefilename" = "1"; then
569 AC_DEFINE(HAVE_GETMODULEFILENAME)
570 fi
571
572 dnl ** check return type of signal handlers
573 dnl Foo: assumes we can use prototypes.
574 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
575 dnl AC_CACHE_CHECK([type of signal handlers], ac_cv_type_signal_handler,
576 dnl [AC_TRY_COMPILE([#include <sys/types.h>
577 dnl #include <signal.h>
578 dnl #ifdef signal
579 dnl #undef signal
580 dnl #endif
581 dnl void (*signal (int, void (*)(int)))(int);
582 dnl ],
583 dnl [int i;], 
584 dnl ac_cv_type_signal_handler=void_int,
585 dnl ac_cv_type_signal_handler=int_void)])
586 dnl if test "$ac_cv_type_signal_handler" = void_int; then
587 dnl AC_DEFINE(VOID_INT_SIGNALS)
588 dnl fi
589
590 dnl On BCC, signal handlers have type "int(void)", elsewhere its "void(int)".
591 AC_TYPE_SIGNAL
592 if test "$ac_cv_type_signal" = void; then
593 AC_DEFINE(VOID_INT_SIGNALS)
594 fi
595
596 dnl ** check for more functions
597 AC_CHECK_FUNCS(strcasecmp _stricmp stricmp strcmpi)
598 AC_CHECK_FUNCS(strcmp)
599 AC_CHECK_FUNCS(realpath _fullpath)  
600 AC_CHECK_FUNCS(PBHSetVolSync macsystem)  
601 AC_CHECK_FUNCS(fgetpos fsetpos fseek ftell)
602 AC_CHECK_FUNCS(vsnprintf _vsnprintf)
603 AC_CHECK_FUNCS(snprintf  _snprintf )  
604 AC_CHECK_FUNCS(popen     _popen )  
605 AC_CHECK_FUNCS(pclose    _pclose )  
606
607
608 dnl ** check for specific library functions that we are interested in
609 AC_CHECK_FUNCS(access ftime getclock getpagesize getrusage gettimeofday mktime mprotect readlink setitimer stat symlink sysconf timelocal times vadvise vfork)
610
611 dnl ** check whether this machine has gmp2 installed
612 AC_CHECK_LIB(gmp,  mpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
613   AC_CHECK_LIB(gmp2, mpz_fdiv_qr,  HaveLibGmp=YES; LibGmp=gmp2,
614     HaveLibGmp=No; LibGmp=not-installed))
615 AC_SUBST(HaveLibGmp)
616 AC_SUBST(LibGmp)
617
618 dnl ** check whether this machine has BFD and liberty installed (used for debugging)
619 dnl    the order of these tests matters: bfd needs liberty
620 AC_CHECK_LIB(iberty, xmalloc)
621 AC_CHECK_LIB(bfd,    bfd_init)
622
623 dnl ** check for readline, for Hugs
624 AC_CHECK_LIB(readline, readline,
625 [
626 AC_DEFINE(HAVE_LIBREADLINE,1)
627 HaveLibReadline=YES
628 ],
629 [
630 AC_DEFINE(HAVE_LIBREADLINE,0)
631 HaveLibReadline=NO
632 ],
633 -ltermcap)
634 AC_SUBST(HaveLibReadline)
635
636
637 dnl ################################################################
638 dnl Check for libraries
639 dnl ################################################################
640
641 FPTOOLS_CHECK_LIB_NOWARN(dl, dlopen)
642 FPTOOLS_CHECK_LIB_NOWARN(dld, shl_load)
643 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
644
645 dnl --------------------------------------------------
646 dnl * Miscellaneous feature tests
647 dnl --------------------------------------------------
648
649 dnl ** can we get alloca?
650 AC_FUNC_ALLOCA
651
652 dnl ** determine whether or not const works
653 AC_C_CONST
654
655 dnl ** determine whether ANSI-function prototypes work?
656 AC_C_PROTOTYPES          
657
658 dnl ** are we big endian?
659 AC_C_BIGENDIAN
660 # Allay users' general fear of warnings of any kind.
661 errprint((fptools configure script wizard sez: "don't worry, the above warning is harmless (to us.)")
662 )
663
664 dnl ** determine the return type of signal()
665 AC_TYPE_SIGNAL
666
667 dnl ** check for leading underscores in symbol names
668 FPTOOLS_UNDERSCORE
669
670 dnl ** how is the end of text section signalled?
671 FPTOOLS_END_TEXT_SECTION
672
673 dnl ** how is the end of data section signalled?
674 FPTOOLS_END_DATA_SECTION
675
676 dnl ** code before data?
677 FPTOOLS_CODE_BEFORE_DATA
678
679 AC_OUTPUT(mk/config.mk, echo timestamp > mk/stamp-h )
680
681 echo ''
682 echo '************************************************'
683 echo '*** NOW DO: gmake boot followed by gmake all'
684 echo '***         (where gmake == GNU make)'
685 echo '************************************************'
686 exit 0