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