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