[project @ 1999-01-26 09:59:18 by sof]
[ghc-hetmet.git] / aclocal.m4
1 dnl $Id: aclocal.m4,v 1.37 1999/01/26 09:59:18 sof Exp $
2 dnl 
3 dnl Extra autoconf macros for the Glasgow fptools
4 dnl
5 dnl To be a good autoconf citizen, names of local macros have
6 dnl prefixed with FPTOOLS_ to ensure we don't clash
7 dnl with any pre-supplied autoconf ones.
8
9 dnl
10 dnl Has timezone the type time_t or long (HP-UX 10.20 apparently
11 dnl has `long'..)
12 dnl 
13 AC_DEFUN(FPTOOLS_TYPE_TIMEZONE,
14 [AC_CACHE_CHECK([type of timezone], fptools_cv_type_timezone,
15 [AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME
16 # include <sys/time.h>
17 # include <time.h>
18 #else
19 # if HAVE_SYS_TIME_H
20 #  include <sys/time.h>
21 # else
22 #  include <time.h>
23 # endif
24 #endif
25
26 extern time_t timezone;
27 ],
28 [int i;], fptools_cv_type_timezone=time_t, fptools_cv_type_timezone=long)])
29 AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $fptools_cv_type_timezone)
30 ])
31
32 dnl *** Is altzone available? ***
33 dnl 
34 AC_DEFUN(FPTOOLS_ALTZONE,
35 [AC_CACHE_CHECK([altzone], fptools_cv_altzone,
36 [AC_TRY_LINK([#if TIME_WITH_SYS_TIME
37 # include <sys/time.h>
38 # include <time.h>
39 #else
40 # if HAVE_SYS_TIME_H
41 #  include <sys/time.h>
42 # else
43 #  include <time.h>
44 # endif
45 #endif
46 ], [return altzone;], 
47 fptools_cv_altzone=yes, fptools_cv_altzone=no)])
48 if test "$fptools_cv_altzone" = yes; then
49   AC_DEFINE(HAVE_ALTZONE)
50 fi
51 ])
52
53
54 dnl ** check for leading underscores in symbol names
55 dnl 
56 dnl Test for determining whether symbol names have a leading
57 dnl underscore.
58 dnl 
59 dnl We assume that they _haven't_ if anything goes wrong.
60 dnl
61 dnl Some nlist implementations seem to try to be compatible by ignoring
62 dnl a leading underscore sometimes (eg. FreeBSD).  We therefore have
63 dnl to work around this by checking for *no* leading underscore first.
64 dnl Sigh.  --SDM
65 dnl
66 AC_DEFUN(FPTOOLS_UNDERSCORE,
67 [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl
68 AC_CACHE_CHECK([leading underscore in symbol names], fptools_cv_lead_uscore,
69
70 dnl
71 dnl Hack!: nlist() under Digital UNIX insist on there being an _,
72 dnl but symbol table listings shows none. What is going on here?!?
73 dnl
74 dnl Another hack: cygwin doesn't come with nlist.h , so we hardwire
75 dnl the underscoredness of that "platform"
76 changequote(<<, >>)dnl
77 <<
78 case $HostPlatform in
79 alpha-dec-osf*) fptools_cv_lead_uscore='no';;
80 *cygwin32) fptools_cv_lead_uscore='yes';;
81 *mingw32) fptools_cv_lead_uscore='yes';;
82 *) >>
83 changequote([, ])dnl
84 AC_TRY_RUN([#ifdef HAVE_NLIST_H
85 #include <nlist.h>
86 changequote(<<, >>)dnl
87 <<
88 struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
89 struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
90 #endif
91
92 main(argc, argv)
93 int argc;
94 char **argv;
95 {
96 #ifdef HAVE_NLIST_H
97     if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
98         exit(1);
99     if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0)
100         exit(0);>>
101 changequote([, ])dnl
102 #endif
103     exit(1);
104 }], fptools_cv_lead_uscore=yes, fptools_cv_lead_uscore=no, fptools_cv_lead_uscore=NO)
105 ;;
106 esac);
107 LeadingUnderscore=`echo $fptools_cv_lead_uscore | sed 'y/yesno/YESNO/'`
108 AC_SUBST(LeadingUnderscore)
109 case $LeadingUnderscore in
110 YES) AC_DEFINE(LEADING_UNDERSCORE);;
111 esac
112 ])
113
114 dnl
115 dnl Check for Happy and version.
116 dnl
117 AC_DEFUN(FPTOOLS_HAPPY,
118 [AC_PATH_PROG(HappyCmd,happy)
119 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
120 [if test x"$HappyCmd" != x; then
121    fptools_cv_happy_version="`$HappyCmd -v |
122 changequote(, )dnl
123                           grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
124 changequote([, ])dnl
125 else
126    fptools_cv_happy_version="";
127 fi;
128 if expr "$fptools_cv_happy_version" "<" 1.4 > /dev/null 2>&1; then
129    echo
130    echo "Happy version 1.4 or later is required to compile GHC."
131    exit 1;
132 fi;
133 ])
134 HappyVersion=$ac_cv_happy_version;
135 AC_SUBST(HappyVersion)
136 ])
137
138 dnl
139 dnl What's the best way of doing context diffs?
140 dnl
141 dnl (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
142 dnl
143 AC_DEFUN(FPTOOLS_PROG_DIFF,
144 [AC_CACHE_CHECK([for ok way to do context diffs], fptools_cv_context_diffs,
145 [echo foo > conftest1
146 echo foo > conftest2
147 if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then
148     fptools_cv_context_diffs='diff -C 1'
149 else
150     if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then
151         fptools_cv_context_diffs='diff -c1'
152     else
153         echo "Can't figure out how to do context diffs."
154         echo "Neither \`diff -C 1' nor \`diff -c1' works."
155         exit 1
156     fi
157 fi
158 rm -f conftest1 conftest2
159 ])
160 ContextDiffCmd=$fptools_cv_context_diffs
161 AC_SUBST(ContextDiffCmd)
162 ])
163
164 dnl
165 dnl Finding the Right Yacc
166 dnl
167 AC_DEFUN(FPTOOLS_PROG_YACCY,
168 [AC_PROG_YACC
169 if test "$YACC" = "yacc"; then
170    AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc,
171    [AC_CHECK_PROG(WhatCmd, what, what, :)
172     $WhatCmd $YACC > conftest.out
173     if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then
174         echo "I don't trust your $YaccCmd; it looks like an old Sun yacc"
175         if test -f /usr/lang/yacc; then
176            echo "I'm going to use /usr/lang/yacc instead"
177            ac_cv_prog_yacc=/usr/lang/yacc
178         else
179            echo "I'm assuming the worst...no parser generator at all"
180            ac_cv_prog_yacc=:
181         fi
182     elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then
183         echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc"
184         echo "I'm assuming the worst...no parser generator at all"
185         ac_cv_prog_yacc=:
186     else
187         ac_cv_prog_yacc=$YACC
188     fi
189     rm -fr conftest*
190 ])
191 else
192     ac_cv_prog_yacc=$YACC
193 fi
194 YaccCmd=$ac_cv_prog_yacc
195 AC_SUBST(YaccCmd)
196 ])
197
198 dnl *** Checking for ar and its arguments + whether we need ranlib.
199 dnl
200 dnl ArCmd and RANLIB are AC_SUBST'ed
201 dnl 
202 AC_DEFUN(FPTOOLS_PROG_AR_AND_RANLIB,
203 [AC_PATH_PROG(ArCmd,ar)
204 if test -z "$ArCmd"; then
205     echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
206     exit 1;
207 fi
208 if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
209     ArCmd="$ArCmd clqs"
210     NeedRanLib=''
211 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
212     ArCmd="$ArCmd cqs"
213     NeedRanLib=''
214 elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
215     ArCmd="$ArCmd clq"
216     NeedRanLib='YES'
217 elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
218     ArCmd="$ArCmd cq"
219     NeedRanLib='YES'
220 elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
221     ArCmd="$ArCmd cq"
222     NeedRanLib='YES'
223 else
224     echo "I can't figure out how to use your $ArCmd"
225     exit 1
226 fi
227 rm -rf conftest*
228 test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
229 AC_SUBST(ArCmd)
230 if test -z "$NeedRanLib"; then
231     RANLIB=':'
232     test -n "$verbose" && echo "        setting RANLIB to $RANLIB"
233     AC_SUBST(RANLIB)
234 else
235     AC_PROG_RANLIB
236 fi
237 ])
238
239 dnl
240 dnl AC_SHEBANG_PERL - can we she-bang perl?
241 dnl
242 AC_DEFUN(FPTOOLS_SHEBANG_PERL,
243 [AC_CACHE_CHECK([if your perl works in shell scripts], fptools_cv_shebang_perl,
244 [echo "#!$PerlCmd"'
245 exit $1;
246 ' > conftest
247 chmod u+x conftest
248 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
249 if test $? -ne 69; then
250    fptools_cv_shebang_perl=yes
251 else
252    fptools_cv_shebang_perl=no
253 fi
254 rm -f conftest
255 ])])
256
257 dnl
258 dnl Extra testing of the result AC_PROG_CC, testing the gcc version no.
259 dnl *Must* be called after AC_PROG_CC
260 dnl
261 AC_DEFUN(FPTOOLS_HAVE_GCC,
262 [AC_CACHE_CHECK([whether you have an ok gcc], fptools_cv_have_gcc,
263 [if test -z "$GCC"; then
264     echo ''
265     echo "You would be better off with gcc"
266     echo "Perhaps it is already installed, but not in your PATH?"
267     fptools_cv_have_gcc='no'
268 else
269 changequote(, )dnl
270     cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \1 \\\* 10 + \2/g' `"
271 changequote([, ])dnl
272     if test `eval $cmd_string 2>/dev/null` != "1"; then
273         echo ''
274         echo "I'm not sure if your version of gcc will work,"
275         echo "but it's worth a shot, eh?"
276     fi
277     fptools_cv_have_gcc='yes'
278 fi
279 ])
280 HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
281 AC_SUBST(HaveGcc)
282 ])
283
284 dnl
285 dnl FPTOOLS_PROG_GNUCPP gathers the path to the cpp that the
286 dnl gcc driver calls upon.
287 dnl
288 dnl Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional')
289 dnl
290 AC_DEFUN(FPTOOLS_PROG_GNUCPP,
291 [AC_CACHE_CHECK([how to invoke GNU cpp directly], fptools_cv_gnu_cpp,
292 [if test "$HaveGcc" = "YES"; then
293         echo > conftest.c
294         gcc -v -E conftest.c >/dev/null 2>conftest.out
295         # \x5c = backslash
296         echo 'tr/\x5c/\//; /(\S+\/)cpp/ && print "[$]{1}cpp -iprefix [$]1";' > conftest.pl
297         fptools_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`"
298         rm -fr conftest*
299  else
300         # We need to be able to invoke CPP directly, preferably
301         # with input from stdin (mkdependHS and hscpp depend on
302         # this at the moment).
303         # Take a guess at what to use, this probably won't work.
304         echo Warning: GNU cpp not found, using $CPP
305         fptools_cv_gnu_cpp = $CPP
306  fi
307 ])
308 GNUCPP=$fptools_cv_gnu_cpp
309 RAWCPP="$GNUCPP -traditional"
310 AC_SUBST(GNUCPP)
311 AC_SUBST(RAWCPP)
312 ])
313
314 dnl Small feature test for perl version. Assumes PerlCmd
315 dnl contains path to perl binary
316 dnl
317 AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION,
318 [$PerlCmd -v >conftest.out 2>&1
319 if grep "version 4" conftest.out >/dev/null 2>&1; then
320    if grep "Patch level: 35" conftest.out >/dev/null 2>&1; then
321       echo "
322 ************************************************************************
323 Uh-oh...looks like you have Perl 4.035.
324
325 Perl version 4.035 has a bug to do with recursion that will bite if
326 you run the lit2texi script, when making Info files from
327 literate files of various sorts.  Either use perl5, the last version of perl4 
328 (4.036), or an older version (e.g., perl 4.019). Failing that, don't create
329 any Info files :-)
330 ************************************************************************
331 "
332    fi
333 else
334    if grep "version 5" conftest.out >/dev/null 2>&1; then
335       :
336    else
337      echo "I'm not sure if your version of perl will work,"
338      echo "but it's worth a shot, eh?"
339    fi
340 fi
341 rm -fr conftest*
342 ])
343
344 dnl ** figure out the alignment restriction of a type
345 dnl    (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE
346 dnl     so we can't call REQUIRE)
347
348 dnl FPTOOLS_CHECK_ALIGNMENT(TYPE)
349 AC_DEFUN(FPTOOLS_CHECK_ALIGNMENT,
350 [changequote(<<, >>)dnl
351 dnl The name to #define.
352 define(<<AC_TYPE_NAME>>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl
353 dnl The cache variable name.
354 define(<<AC_CV_NAME>>, translit(ac_cv_alignment_$1, [ *], [_p]))dnl
355 dnl The name of the corresponding size.
356 define(<<AC_CV_SIZEOF_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
357 changequote([, ])dnl
358 AC_MSG_CHECKING(alignment of $1)
359 AC_CACHE_VAL(AC_CV_NAME,
360 [AC_TRY_RUN([
361 #include <stdio.h>
362 #if HAVE_STDDEF_H
363 #include <stddef.h>
364 #endif
365 #ifndef offsetof
366 #define offsetof(ty,field) ((size_t)((char *)&((ty *)0)->field - (char *)(ty *)0))
367 #endif
368 int
369 main()
370 {
371   FILE *f=fopen("conftestval", "w");
372   if (!f) exit(1);
373   fprintf(f, "%d\n", offsetof(struct { char c; $1 ty;},ty));
374   exit(0);
375 }],
376 AC_CV_NAME=`cat conftestval`,
377 AC_CV_NAME=$AC_CV_SIZEOF_NAME,
378 AC_CV_NAME=$AC_CV_SIZEOF_NAME)])
379 AC_MSG_RESULT($AC_CV_NAME)
380 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
381 AC_PROVIDE($AC_TYPE_NAME)
382 undefine([AC_TYPE_NAME])dnl
383 undefine([AC_CV_NAME])dnl
384 undefine([AC_CV_SIZEOF_NAME])dnl
385 ])
386
387 dnl ** figure out whether C compiler supports 'long long's
388 dnl    (Closely based on Andreas Zeller's macro for testing
389 dnl     for this under C++)
390 dnl
391 dnl    If the C compiler supports `long long' types,
392 dnl    define `HAVE_LONG_LONG'.
393 dnl
394 AC_DEFUN(FPTOOLS_C_LONG_LONG,
395 [
396 AC_REQUIRE([AC_PROG_CC])
397 AC_MSG_CHECKING(whether ${CC} supports long long types)
398 AC_CACHE_VAL(fptools_cv_have_long_long,
399 [
400 AC_LANG_SAVE
401 AC_LANG_C
402 AC_TRY_COMPILE(,[long long a;],
403 fptools_cv_have_long_long=yes,
404 fptools_cv_have_long_long=no)
405 AC_LANG_RESTORE
406 ])
407 AC_MSG_RESULT($fptools_cv_have_long_long)
408 if test "$fptools_cv_have_long_long" = yes; then
409 AC_DEFINE(HAVE_LONG_LONG)
410 fi
411 ])
412
413 dnl *** Can we open files in binary mode? ***
414 dnl 
415 AC_DEFUN(FPTOOLS_O_BINARY,
416 [
417 AC_REQUIRE([AC_PROG_CC])
418 AC_MSG_CHECKING(whether we can open files in binary mode)
419 AC_CACHE_VAL(fptools_cv_have_o_binary,
420 [
421 AC_LANG_SAVE
422 AC_LANG_C
423 AC_TRY_COMPILE(,
424 [#ifdef HAVE_FCNTL_H
425 #include <fcntl.h>
426 #endif
427 int x = O_BINARY;],
428 fptools_cv_have_o_binary=yes,
429 fptools_cv_have_o_binary=no)
430 AC_LANG_RESTORE
431 ])
432 AC_MSG_RESULT($fptools_cv_have_o_binary)
433 if test "$fptools_cv_have_o_binary" = yes; then
434 AC_DEFINE(HAVE_O_BINARY)
435 fi
436 ])
437
438 dnl *** Which one comes first, .text or .data? ***
439 dnl 
440 AC_DEFUN(FPTOOLS_CODE_BEFORE_DATA,
441 [AC_CACHE_CHECK([if code section appears before data], fptools_cv_code_bef_data,
442 [AC_TRY_RUN([
443 int f() { return 1; }
444 int i;
445 int main() { return ((char*)&f > (char*)&i); }
446
447 ],
448 fptools_cv_code_bef_data=yes, fptools_cv_code_bef_data=no,false)])
449 if test "$fptools_cv_code_bef_data" = yes; then
450   AC_DEFINE(CODE_BEFORE_DATA)
451 fi
452 ])
453
454 dnl *** Helper function **
455 dnl 
456 AC_DEFUN(FPTOOLS_IN_SCOPE,AC_TRY_LINK([extern char* $1;],[return (int)&$2], $3=yes, $3=no))
457
458 dnl *** What's the end-of-text-section marker called? ***
459 dnl
460 AC_DEFUN(FPTOOLS_END_TEXT_SECTION,
461 [AC_MSG_CHECKING([for end of text section marker])
462 not_done=1
463 for i in etext _etext __etext; do
464   FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_text)
465   if test "$fptools_end_of_text" = yes; then
466    AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, $i))
467    AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, $i))
468    not_done=0
469    break
470   fi
471 done
472 if test "$not_done" = 1; then
473 FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_end_of_text);
474 if test "$fptools_end_of_text" = yes; then
475   AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, etext))
476   AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, etext asm("etext")))
477 else
478   AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, dunno_what_it_is)
479   AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, dunno_what_it_is)
480 fi
481 fi
482 AC_MSG_RESULT([$]fptools_cv_end_of_text)
483 ])
484
485 dnl *** What's the end-of-data-section marker called? ***
486 dnl
487 AC_DEFUN(FPTOOLS_END_DATA_SECTION,
488 [AC_MSG_CHECKING([for end of data section marker])
489 not_done=1
490 for i in end _end __end; do
491   FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_data)
492   if test "$fptools_end_of_data" = yes; then
493    AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, $i)])
494    AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, $i)])
495    not_done=0
496    break
497   fi
498 done
499 if test "$not_done" = 1; then
500 FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_end_of_data);
501 if test "$fptools_end_of_data" = yes; then
502   AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, end asm("end"))])
503   AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, end)])
504 else
505   AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, dunno_what_it_is)])
506   AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, dunno_what_it_is)])
507 fi
508 fi
509 AC_MSG_RESULT([$]fptools_cv_end_of_data)
510 ])
511
512
513
514 dnl Based on AC_TRY_LINK - run iftrue if links cleanly with no warning
515
516 dnl FPTOOLS_TRY_LINK_NOWARN(flags,main?,iftrue,iffalse)
517
518 AC_DEFUN(FPTOOLS_TRY_LINK_NOWARN,
519 [
520 ac_save_LIBS="$LIBS"
521 LIBS=[$1];
522 cat > conftest.$ac_ext <<EOF
523 dnl This sometimes fails to find confdefs.h, for some reason.
524 dnl [#]line __oline__ "[$]0"
525 [#]line __oline__ "configure"
526 #include "confdefs.h"
527 [$2]
528 int t() { return 0; }
529 EOF
530 if AC_TRY_EVAL(ac_link); then
531   ifelse([$3], , :, [
532     LIBS="$ac_save_LIBS"
533     rm -rf conftest*
534     $3])
535   ifelse([$4], , , [else
536     LIBS="$ac_save_LIBS"
537     rm -rf conftest*
538     $4
539 ])dnl
540 fi
541 rm -f conftest*
542 ]
543 )
544
545 dnl Loosely based on AC_CHECK_LIB in acgeneral.m4 in autoconf distribution
546
547 dnl FPTOOLS_CHECK_FLAG_NOWARN(NAME, FLAG, CODE, iftrue, iffalse)
548
549 AC_DEFUN(FPTOOLS_CHECK_FLAG_NOWARN,
550 [AC_MSG_CHECKING([for $1])
551  AC_CACHE_VAL(ac_cv_flag_$1,
552    [FPTOOLS_TRY_LINK_NOWARN("$2", [main() { $3; exit(0); } ],
553      eval "ac_cv_flag_$1=yes",
554      eval "ac_cv_flag_$1=no"
555    )]
556  )
557 if eval "test \"`echo '$ac_cv_flag_'$1`\" = yes"; then
558   AC_MSG_RESULT(yes)
559   LIBS="$2 $LIBS"
560   $4
561 else
562   AC_MSG_RESULT(no)
563   $5
564 fi
565 ])
566
567 dnl FPTOOLS_CHECK_LIB_NOWARN(LIBRARY, FUNCTION)
568
569 AC_DEFUN(FPTOOLS_CHECK_LIB_NOWARN,
570 [FPTOOLS_CHECK_FLAG_NOWARN([function_$2],[],[extern char $2(); $2();],
571 [changequote(, )dnl
572   ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
573  changequote([, ])dnl
574  AC_DEFINE_UNQUOTED($ac_tr_lib)
575 ],
576 [FPTOOLS_CHECK_FLAG_NOWARN([library_$1],[-l$1],[extern char $2(); $2();],
577 [changequote(, )dnl
578   ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
579  changequote([, ])dnl
580  AC_DEFINE_UNQUOTED($ac_tr_lib)
581 ],
582 []
583 )])]
584 )
585
586 dnl check for prototypes
587 dnl
588 AC_DEFUN(AC_C_PROTOTYPES,
589 [AC_CACHE_CHECK([prototypes], ac_cv_prototypes,
590 [AC_TRY_COMPILE([
591 void foo(int);
592 void foo(i)
593 int i; { 
594 return;
595 }
596 ],
597 [int i;], 
598 ac_cv_prototypes=yes,
599 ac_cv_prototypes=no)])
600 if test "$ac_cv_prototypes" = yes; then
601 AC_DEFINE(HAVE_PROTOTYPES)
602 fi
603 ])
604
605
606 # LocalWords:  fi