1 dnl $Id: aclocal.m4,v 1.55 2000/07/13 09:17:57 michaelw Exp $
3 dnl Extra autoconf macros for the Glasgow fptools
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.
10 dnl Is timezone around? (in a header file)
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>
19 # include <sys/time.h>
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)
32 dnl Has timezone the type time_t or long (HP-UX 10.20 apparently
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>
42 # include <sys/time.h>
48 extern time_t timezone;
50 [int i;], fptools_cv_type_timezone=time_t, fptools_cv_type_timezone=long)])
51 AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $fptools_cv_type_timezone)
54 dnl *** Is altzone available? ***
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>
63 # include <sys/time.h>
69 fptools_cv_altzone=yes, fptools_cv_altzone=no)])
70 if test "$fptools_cv_altzone" = yes; then
71 AC_DEFINE(HAVE_ALTZONE)
76 dnl *** Does libc contain GNU regex? ***
78 AC_DEFUN(FPTOOLS_REGEX_IN_LIBC,
79 [AC_CACHE_CHECK([for GNU regex in libc], fptools_cv_have_regex,
80 [AC_TRY_LINK([#if HAVE_UNISTD_H
84 ],[ struct re_pattern_buffer patbuf; re_compile_pattern("",0,&patbuf); ],
85 fptools_cv_have_regex=yes, fptools_cv_have_regex=no)])
86 if test "$fptools_cv_have_regex" = yes; then
95 dnl ** check for leading underscores in symbol names
97 dnl Test for determining whether symbol names have a leading
100 dnl We assume that they _haven't_ if anything goes wrong.
102 dnl Some nlist implementations seem to try to be compatible by ignoring
103 dnl a leading underscore sometimes (eg. FreeBSD). We therefore have
104 dnl to work around this by checking for *no* leading underscore first.
107 AC_DEFUN(FPTOOLS_UNDERSCORE,
108 [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl
109 AC_CACHE_CHECK([leading underscore in symbol names], fptools_cv_lead_uscore,
112 dnl Hack!: nlist() under Digital UNIX insist on there being an _,
113 dnl but symbol table listings shows none. What is going on here?!?
115 dnl Another hack: cygwin doesn't come with nlist.h , so we hardwire
116 dnl the underscoredness of that "platform"
117 changequote(<<, >>)dnl
119 case $HostPlatform in
120 alpha-dec-osf*) fptools_cv_lead_uscore='no';;
121 *cygwin32) fptools_cv_lead_uscore='yes';;
122 *mingw32) fptools_cv_lead_uscore='yes';;
125 AC_TRY_RUN([#ifdef HAVE_NLIST_H
127 changequote(<<, >>)dnl
129 struct nlist xYzzY1[] = {{"xYzzY1", 0},{0}};
130 struct nlist xYzzY2[] = {{"_xYzzY2", 0},{0}};
138 if(nlist(argv[0], xYzzY1) == 0 && xYzzY1[0].n_value != 0)
140 if(nlist(argv[0], xYzzY2) == 0 && xYzzY2[0].n_value != 0)
145 }], fptools_cv_lead_uscore=yes, fptools_cv_lead_uscore=no, fptools_cv_lead_uscore=NO)
148 LeadingUnderscore=`echo $fptools_cv_lead_uscore | sed 'y/yesno/YESNO/'`
149 AC_SUBST(LeadingUnderscore)
150 case $LeadingUnderscore in
151 YES) AC_DEFINE(LEADING_UNDERSCORE);;
156 dnl Check for Happy and version. If we're building GHC, then we need
157 dnl at least Happy version 1.6. If there's no installed Happy, we look
158 dnl for a happy source tree and point the build system at that instead.
160 dnl ToDo: when we reset HappyCmd to the source tree, autoconf doesn't
161 dnl seems to insert it in the cache file. sigh.
163 AC_DEFUN(FPTOOLS_HAPPY,
164 [AC_PATH_PROG(HappyCmd,happy)
165 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
166 [if test x"$HappyCmd" != x; then
167 fptools_cv_happy_version="`$HappyCmd -v |
169 grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
170 elif test -d $srcdir/happy; then
171 HappyCmd=$hardtop/happy/src/happy-inplace;
172 fptools_cv_happy_version=`grep '^ProjectVersion[ ]*=' $srcdir/happy/mk/version.mk | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`;
173 echo -n "using happy from the source tree... ";
175 fptools_cv_happy_version="";
178 if expr "$fptools_cv_happy_version" "<" 1.6 > /dev/null 2>&1; then
179 if test -d $srcdir/ghc; then
181 echo "Happy version 1.6 or later is required to compile GHC."
186 HappyVersion=$fptools_cv_happy_version;
187 AC_SUBST(HappyVersion)
191 dnl What's the best way of doing context diffs?
193 dnl (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
195 AC_DEFUN(FPTOOLS_PROG_DIFF,
196 [AC_CACHE_CHECK([for ok way to do context diffs], fptools_cv_context_diffs,
197 [echo foo > conftest1
199 if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then
200 fptools_cv_context_diffs='diff -C 1'
202 if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then
203 fptools_cv_context_diffs='diff -c1'
205 echo "Can't figure out how to do context diffs."
206 echo "Neither \`diff -C 1' nor \`diff -c1' works."
210 rm -f conftest1 conftest2
212 ContextDiffCmd=$fptools_cv_context_diffs
213 AC_SUBST(ContextDiffCmd)
217 dnl Finding the Right Yacc
219 AC_DEFUN(FPTOOLS_PROG_YACCY,
221 if test "$YACC" = "yacc"; then
222 AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc,
223 [AC_CHECK_PROG(WhatCmd, what, what, :)
224 $WhatCmd $YACC > conftest.out
225 if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then
226 echo "I don't trust your $YaccCmd; it looks like an old Sun yacc"
227 if test -f /usr/lang/yacc; then
228 echo "I'm going to use /usr/lang/yacc instead"
229 ac_cv_prog_yacc=/usr/lang/yacc
231 echo "I'm assuming the worst...no parser generator at all"
234 elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then
235 echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc"
236 echo "I'm assuming the worst...no parser generator at all"
239 ac_cv_prog_yacc=$YACC
244 ac_cv_prog_yacc=$YACC
246 YaccCmd=$ac_cv_prog_yacc
250 dnl *** Checking for ar and its arguments + whether we need ranlib.
252 dnl ArCmd and RANLIB are AC_SUBST'ed
254 AC_DEFUN(FPTOOLS_PROG_AR_AND_RANLIB,
255 [AC_PATH_PROG(ArCmd,ar)
256 if test -z "$ArCmd"; then
257 echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
260 if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
263 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
266 elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
269 elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
272 elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
276 echo "I can't figure out how to use your $ArCmd"
280 test -n "$ArCmd" && test -n "$verbose" && echo " setting ArCmd to $ArCmd"
282 if test -z "$NeedRanLib"; then
284 test -n "$verbose" && echo " setting RANLIB to $RANLIB"
292 dnl AC_SHEBANG_PERL - can we she-bang perl?
294 AC_DEFUN(FPTOOLS_SHEBANG_PERL,
295 [AC_CACHE_CHECK([if your perl works in shell scripts], fptools_cv_shebang_perl,
300 (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null)
301 if test $? -ne 69; then
302 fptools_cv_shebang_perl=yes
304 fptools_cv_shebang_perl=no
310 dnl Extra testing of the result AC_PROG_CC, testing the gcc version no.
311 dnl *Must* be called after AC_PROG_CC
313 AC_DEFUN(FPTOOLS_HAVE_GCC,
314 [AC_CACHE_CHECK([whether you have an ok gcc], fptools_cv_have_gcc,
315 [if test -z "$GCC"; then
317 echo "You would be better off with gcc"
318 echo "Perhaps it is already installed, but not in your PATH?"
319 fptools_cv_have_gcc='no'
322 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' `"
324 if test `eval $cmd_string 2>/dev/null` != "1"; then
326 echo "I'm not sure if your version of gcc will work,"
327 echo "but it's worth a shot, eh?"
329 fptools_cv_have_gcc='yes'
332 HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
336 dnl Small feature test for perl version. Assumes PerlCmd
337 dnl contains path to perl binary
339 AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION,
340 [$PerlCmd -v >conftest.out 2>&1
341 if grep "version 5" conftest.out >/dev/null 2>&1; then
344 if grep "version 6" conftest.out >/dev/null 2>&1; then
347 echo "Your version of perl probably won't work."
354 dnl FPTOOLS_GHC_VERSION(version)
355 dnl FPTOOLS_GHC_VERSION(major, minor [, patchlevel])
356 dnl FPTOOLS_GHC_VERSION(version, major, minor, patchlevel)
358 dnl Test for version of installed ghc. Uses $GHC.
359 dnl [original version pinched from c2hs]
361 AC_DEFUN(FPTOOLS_GHC_VERSION,
362 [define([FPTOOLS_CV_GHC_VERSION], [fptools_cv_ghc_version])dnl
363 AC_CACHE_CHECK([version of ghc], FPTOOLS_CV_GHC_VERSION, [dnl
364 ${GHC-ghc} --version > conftestghc 2>&1
365 cat conftestghc >&AC_FD_CC
366 dnl `Useless Use Of cat' award...
367 changequote(<<, >>)dnl
368 FPTOOLS_CV_GHC_VERSION=`cat conftestghc | sed -n -e 's/, patchlevel *\([0-9]\)/.\1/;s/.* version \([0-9.]\+\).*/\1/p'`
371 if test "[$]FPTOOLS_CV_GHC_VERSION" = ""
373 FPTOOLS_CV_GHC_VERSION='unknown'
375 changequote(<<, >>)dnl
376 FPTOOLS_CV_GHC_VERSION<<_major>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^\([0-9]\).*/\1/'`
377 FPTOOLS_CV_GHC_VERSION<<_minor>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^[0-9]\.\([0-9]*\).*/\1/'`
378 FPTOOLS_CV_GHC_VERSION<<_pl>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -n -e 's/^[0-9]\.[0-9]*\.\([0-9]*\)/\1/p'`
380 if test "[$]FPTOOLS_CV_GHC_VERSION[_pl]" = ""
382 FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor]"
383 FPTOOLS_CV_GHC_VERSION[_pl]="0"
385 FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor].[$]FPTOOLS_CV_GHC_VERSION[_pl]"
388 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]"
390 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
391 [$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
393 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
394 [$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
395 [$3]="[$]FPTOOLS_CV_GHC_VERSION[_pl]"
397 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]"
398 [$2]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
399 [$3]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
400 [$4]="[$]FPTOOLS_CV_GHC_VERSION[_pl]"
401 ], [AC_MSG_ERROR([wrong number of arguments to [$0]])])dnl
402 undefine([FPTOOLS_CV_GHC_VERSION])dnl
406 dnl ** figure out the alignment restriction of a type
407 dnl (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE
408 dnl so we can't call REQUIRE)
410 dnl FPTOOLS_CHECK_ALIGNMENT(TYPE)
411 AC_DEFUN(FPTOOLS_CHECK_ALIGNMENT,
412 [changequote(<<, >>)dnl
413 dnl The name to #define.
414 define(<<AC_TYPE_NAME>>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl
415 dnl The cache variable name.
416 define(<<AC_CV_NAME>>, translit(ac_cv_alignment_$1, [ *], [_p]))dnl
417 dnl The name of the corresponding size.
418 define(<<AC_CV_SIZEOF_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
420 AC_MSG_CHECKING(alignment of $1)
421 AC_CACHE_VAL(AC_CV_NAME,
428 #define offsetof(ty,field) ((size_t)((char *)&((ty *)0)->field - (char *)(ty *)0))
433 FILE *f=fopen("conftestval", "w");
435 fprintf(f, "%d\n", offsetof(struct { char c; $1 ty;},ty));
438 AC_CV_NAME=`cat conftestval`,
439 AC_CV_NAME=$AC_CV_SIZEOF_NAME,
440 AC_CV_NAME=$AC_CV_SIZEOF_NAME)])
441 AC_MSG_RESULT($AC_CV_NAME)
442 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
443 AC_PROVIDE($AC_TYPE_NAME)
444 undefine([AC_TYPE_NAME])dnl
445 undefine([AC_CV_NAME])dnl
446 undefine([AC_CV_SIZEOF_NAME])dnl
449 dnl ** Map an arithmetic C type to a Haskell type.
450 dnl Based on autconf's AC_CHECK_SIZEOF.
452 dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE, [, VALUE-FOR-CROSS-COMPILATION])
453 AC_DEFUN(FPTOOLS_CHECK_HTYPE,
454 [changequote(<<, >>)dnl
455 dnl The name to #define.
456 define(<<AC_TYPE_NAME>>, translit(htype_$1, [a-z *], [A-Z_P]))dnl
457 dnl The cache variable name.
458 define(<<AC_CV_NAME>>, translit(fptools_cv_htype_$1, [ *], [_p]))dnl
460 AC_MSG_CHECKING(Haskell type for $1)
461 AC_CACHE_VAL(AC_CV_NAME,
462 [AC_TRY_RUN([#include <stdio.h>
474 FILE *f=fopen("conftestval", "w");
476 if (((testing)((int)((testing)1.4))) == ((testing)1.4)) {
478 ((testing)(-1) < (testing)0) ? "Int" : "Word",
482 (sizeof(testing) > sizeof(double)) ? "LDouble" :
483 (sizeof(testing) == sizeof(double)) ? "Double" : "Float");
487 }], AC_CV_NAME=`cat conftestval`,
488 ifelse([$2], , AC_CV_NAME=NotReallyAType, AC_CV_NAME=$2),
489 ifelse([$3], , AC_CV_NAME=NotReallyATypeCross, AC_CV_NAME=$3))]) dnl
490 AC_MSG_RESULT($AC_CV_NAME)
491 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
492 undefine([AC_TYPE_NAME])dnl
493 undefine([AC_CV_NAME])dnl
496 dnl ** figure out whether C compiler supports 'long long's
497 dnl (Closely based on Andreas Zeller's macro for testing
498 dnl for this under C++)
500 dnl If the C compiler supports `long long' types,
501 dnl define `HAVE_LONG_LONG'.
503 AC_DEFUN(FPTOOLS_C_LONG_LONG,
505 AC_REQUIRE([AC_PROG_CC])
506 AC_MSG_CHECKING(whether ${CC} supports long long types)
507 AC_CACHE_VAL(fptools_cv_have_long_long,
511 AC_TRY_COMPILE(,[long long a;],
512 fptools_cv_have_long_long=yes,
513 fptools_cv_have_long_long=no)
516 AC_MSG_RESULT($fptools_cv_have_long_long)
517 if test "$fptools_cv_have_long_long" = yes; then
518 AC_DEFINE(HAVE_LONG_LONG)
522 dnl *** Can we open files in binary mode? ***
524 AC_DEFUN(FPTOOLS_O_BINARY,
526 AC_REQUIRE([AC_PROG_CC])
527 AC_MSG_CHECKING(whether we can open files in binary mode)
528 AC_CACHE_VAL(fptools_cv_have_o_binary,
537 fptools_cv_have_o_binary=yes,
538 fptools_cv_have_o_binary=no)
541 AC_MSG_RESULT($fptools_cv_have_o_binary)
542 if test "$fptools_cv_have_o_binary" = yes; then
543 AC_DEFINE(HAVE_O_BINARY)
547 dnl *** Which one comes first, .text or .data? ***
549 AC_DEFUN(FPTOOLS_CODE_BEFORE_DATA,
550 [AC_CACHE_CHECK([if code section appears before data], fptools_cv_code_bef_data,
552 int f() { return 1; }
554 int main() { return ((char*)&f > (char*)&i); }
557 fptools_cv_code_bef_data=yes, fptools_cv_code_bef_data=no,false)])
558 if test "$fptools_cv_code_bef_data" = yes; then
559 AC_DEFINE(CODE_BEFORE_DATA)
563 dnl *** Helper function **
565 AC_DEFUN(FPTOOLS_IN_SCOPE,AC_TRY_LINK([extern char* $1;],[return (int)&$2], $3=yes, $3=no))
567 dnl *** What's the end-of-text-section marker called? ***
569 AC_DEFUN(FPTOOLS_END_TEXT_SECTION,
570 [AC_MSG_CHECKING([for end of text section marker])
572 for i in data_start _data_start etext _etext __etext; do
573 FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_text)
574 if test "$fptools_end_of_text" = yes; then
575 AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, $i))
576 AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, $i))
581 if test "$not_done" = 1; then
582 FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_end_of_text);
583 if test "$fptools_end_of_text" = yes; then
584 AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, etext))
585 AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, etext asm("etext")))
587 AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, dunno_what_it_is)
588 AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, dunno_what_it_is)
591 AC_MSG_RESULT([$]fptools_cv_end_of_text)
594 dnl *** What's the end-of-data-section marker called? ***
596 AC_DEFUN(FPTOOLS_END_DATA_SECTION,
597 [AC_MSG_CHECKING([for end of data section marker])
599 for i in end _end __end; do
600 FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_data)
601 if test "$fptools_end_of_data" = yes; then
602 AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, $i)])
603 AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, $i)])
608 if test "$not_done" = 1; then
609 FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_end_of_data);
610 if test "$fptools_end_of_data" = yes; then
611 AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, end asm("end"))])
612 AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, end)])
614 AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, dunno_what_it_is)])
615 AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, dunno_what_it_is)])
618 AC_MSG_RESULT([$]fptools_cv_end_of_data)
623 dnl Based on AC_TRY_LINK - run iftrue if links cleanly with no warning
625 dnl FPTOOLS_TRY_LINK_NOWARN(flags,main?,iftrue,iffalse)
627 AC_DEFUN(FPTOOLS_TRY_LINK_NOWARN,
631 cat > conftest.$ac_ext <<EOF
632 dnl This sometimes fails to find confdefs.h, for some reason.
633 dnl [#]line __oline__ "[$]0"
634 [#]line __oline__ "configure"
635 #include "confdefs.h"
637 int t() { return 0; }
639 if AC_TRY_EVAL(ac_link); then
644 ifelse([$4], , , [else
654 dnl Loosely based on AC_CHECK_LIB in acgeneral.m4 in autoconf distribution
656 dnl FPTOOLS_CHECK_FLAG_NOWARN(NAME, FLAG, CODE, iftrue, iffalse)
658 AC_DEFUN(FPTOOLS_CHECK_FLAG_NOWARN,
659 [AC_MSG_CHECKING([for $1])
660 AC_CACHE_VAL(ac_cv_flag_$1,
661 [FPTOOLS_TRY_LINK_NOWARN("$2", [main() { $3; exit(0); } ],
662 eval "ac_cv_flag_$1=yes",
663 eval "ac_cv_flag_$1=no"
666 if eval "test \"`echo '$ac_cv_flag_'$1`\" = yes"; then
676 dnl FPTOOLS_CHECK_LIB_NOWARN(LIBRARY, FUNCTION)
678 AC_DEFUN(FPTOOLS_CHECK_LIB_NOWARN,
679 [FPTOOLS_CHECK_FLAG_NOWARN([function_$2],[],[extern char $2(); $2();],
681 ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
683 AC_DEFINE_UNQUOTED($ac_tr_lib)
685 [FPTOOLS_CHECK_FLAG_NOWARN([library_$1],[-l$1],[extern char $2(); $2();],
687 ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
689 AC_DEFINE_UNQUOTED($ac_tr_lib)
695 dnl check for prototypes
697 AC_DEFUN(AC_C_PROTOTYPES,
698 [AC_CACHE_CHECK([prototypes], ac_cv_prototypes,
707 ac_cv_prototypes=yes,
708 ac_cv_prototypes=no)])
709 if test "$ac_cv_prototypes" = yes; then
710 AC_DEFINE(HAVE_PROTOTYPES)
714 dnl ** Check which CATALOG file we have to use with DocBook SGML.
716 dnl FPTOOLS_DOCBOOK_CATALOG(VARIABLE, JADE, STYLESHEET, CATALOGS-TO-CHECK-FOR)
718 dnl If any of the catalogs given in CATALOGS-TO-CHECK-FOR works on this
719 dnl platform, let VARIABLE refer to this catalog; otherwise, VARIABLE
720 dnl is set to "no". JADE is the jade executable and STYLESHEET
721 dnl a DocBook style sheet.
723 AC_DEFUN(FPTOOLS_DOCBOOK_CATALOG,
724 [AC_CACHE_CHECK([for DocBook CATALOG], fptools_cv_sgml_catalog,
726 cat > conftest.sgml << EOF
727 <!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
731 <Author><OtherName>Test</OtherName></Author>
732 <Address>Test</Address>
733 <PubDate>Test</PubDate>
735 <Sect1><Title>Test</Title>
742 fptools_cv_sgml_catalog=no
743 for fptools_catalog in $4; do
744 ac_try="$2 -t rtf -d $3#print -c $fptools_catalog conftest.sgml"
745 if AC_TRY_EVAL(ac_try); then
746 fptools_cv_sgml_catalog=[$]fptools_catalog
752 if test $fptools_cv_sgml_catalog != "no"; then
753 $1=$fptools_cv_sgml_catalog