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