1 dnl $Id: aclocal.m4,v 1.54 2000/07/11 21:25:37 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
355 dnl FPTOOLS_GHC_VERSION(version)
356 dnl FPTOOLS_GHC_VERSION(major, minor [, patchlevel])
357 dnl FPTOOLS_GHC_VERSION(version, major, minor, patchlevel)
359 dnl Test for version of installed ghc. Uses $GHC.
360 dnl [original version pinched from c2hs]
362 AC_DEFUN(FPTOOLS_GHC_VERSION,
363 [define([FPTOOLS_CV_GHC_VERSION], [fptools_cv_ghc_version])dnl
364 AC_CACHE_CHECK([version of ghc], FPTOOLS_CV_GHC_VERSION, [dnl
365 ${GHC-ghc} --version > conftestghc 2>&1
366 cat conftestghc >&AC_FD_CC
367 dnl `Useless Use Of cat' award...
368 changequote(<<, >>)dnl
369 FPTOOLS_CV_GHC_VERSION=`cat conftestghc | sed -n -e 's/.* version \([0-9.]\+\(, patchlevel [0-9]\+\)\?\)/\1/;t PL;b;:PL s/, patchlevel */./;p'`
372 if test "[$]FPTOOLS_CV_GHC_VERSION" = ""
374 FPTOOLS_CV_GHC_VERSION='unknown'
376 changequote(<<, >>)dnl
377 FPTOOLS_CV_GHC_VERSION<<_major>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^\([0-9]\).*/\1/'`
378 FPTOOLS_CV_GHC_VERSION<<_minor>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^[0-9]\.\([0-9]*\).*/\1/'`
379 FPTOOLS_CV_GHC_VERSION<<_pl>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -n -e 's/^[0-9]\.[0-9]*\.\([0-9]*\)/\1/p'`
381 if test "[$]FPTOOLS_CV_GHC_VERSION[_pl]" = ""
383 FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor]"
384 FPTOOLS_CV_GHC_VERSION[_pl]="0"
386 FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor].[$]FPTOOLS_CV_GHC_VERSION[_pl]"
389 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]"
391 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
392 [$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
394 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
395 [$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
396 [$3]="[$]FPTOOLS_CV_GHC_VERSION[_pl]"
398 [$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]"
399 [$2]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
400 [$3]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
401 [$4]="[$]FPTOOLS_CV_GHC_VERSION[_pl]"
402 ], [AC_MSG_ERROR([wrong number of arguments to $0])])dnl
403 undefine(FPTOOLS_CV_GHC_VERSION)dnl
407 dnl ** figure out the alignment restriction of a type
408 dnl (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE
409 dnl so we can't call REQUIRE)
411 dnl FPTOOLS_CHECK_ALIGNMENT(TYPE)
412 AC_DEFUN(FPTOOLS_CHECK_ALIGNMENT,
413 [changequote(<<, >>)dnl
414 dnl The name to #define.
415 define(<<AC_TYPE_NAME>>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl
416 dnl The cache variable name.
417 define(<<AC_CV_NAME>>, translit(ac_cv_alignment_$1, [ *], [_p]))dnl
418 dnl The name of the corresponding size.
419 define(<<AC_CV_SIZEOF_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
421 AC_MSG_CHECKING(alignment of $1)
422 AC_CACHE_VAL(AC_CV_NAME,
429 #define offsetof(ty,field) ((size_t)((char *)&((ty *)0)->field - (char *)(ty *)0))
434 FILE *f=fopen("conftestval", "w");
436 fprintf(f, "%d\n", offsetof(struct { char c; $1 ty;},ty));
439 AC_CV_NAME=`cat conftestval`,
440 AC_CV_NAME=$AC_CV_SIZEOF_NAME,
441 AC_CV_NAME=$AC_CV_SIZEOF_NAME)])
442 AC_MSG_RESULT($AC_CV_NAME)
443 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
444 AC_PROVIDE($AC_TYPE_NAME)
445 undefine([AC_TYPE_NAME])dnl
446 undefine([AC_CV_NAME])dnl
447 undefine([AC_CV_SIZEOF_NAME])dnl
450 dnl ** Map an arithmetic C type to a Haskell type.
451 dnl Based on autconf's AC_CHECK_SIZEOF.
453 dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE, [, VALUE-FOR-CROSS-COMPILATION])
454 AC_DEFUN(FPTOOLS_CHECK_HTYPE,
455 [changequote(<<, >>)dnl
456 dnl The name to #define.
457 define(<<AC_TYPE_NAME>>, translit(htype_$1, [a-z *], [A-Z_P]))dnl
458 dnl The cache variable name.
459 define(<<AC_CV_NAME>>, translit(fptools_cv_htype_$1, [ *], [_p]))dnl
461 AC_MSG_CHECKING(Haskell type for $1)
462 AC_CACHE_VAL(AC_CV_NAME,
463 [AC_TRY_RUN([#include <stdio.h>
475 FILE *f=fopen("conftestval", "w");
477 if (((testing)((int)((testing)1.4))) == ((testing)1.4)) {
479 ((testing)(-1) < (testing)0) ? "Int" : "Word",
483 (sizeof(testing) > sizeof(double)) ? "LDouble" :
484 (sizeof(testing) == sizeof(double)) ? "Double" : "Float");
488 }], AC_CV_NAME=`cat conftestval`,
489 ifelse([$2], , AC_CV_NAME=NotReallyAType, AC_CV_NAME=$2),
490 ifelse([$3], , AC_CV_NAME=NotReallyATypeCross, AC_CV_NAME=$3))]) dnl
491 AC_MSG_RESULT($AC_CV_NAME)
492 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
493 undefine([AC_TYPE_NAME])dnl
494 undefine([AC_CV_NAME])dnl
497 dnl ** figure out whether C compiler supports 'long long's
498 dnl (Closely based on Andreas Zeller's macro for testing
499 dnl for this under C++)
501 dnl If the C compiler supports `long long' types,
502 dnl define `HAVE_LONG_LONG'.
504 AC_DEFUN(FPTOOLS_C_LONG_LONG,
506 AC_REQUIRE([AC_PROG_CC])
507 AC_MSG_CHECKING(whether ${CC} supports long long types)
508 AC_CACHE_VAL(fptools_cv_have_long_long,
512 AC_TRY_COMPILE(,[long long a;],
513 fptools_cv_have_long_long=yes,
514 fptools_cv_have_long_long=no)
517 AC_MSG_RESULT($fptools_cv_have_long_long)
518 if test "$fptools_cv_have_long_long" = yes; then
519 AC_DEFINE(HAVE_LONG_LONG)
523 dnl *** Can we open files in binary mode? ***
525 AC_DEFUN(FPTOOLS_O_BINARY,
527 AC_REQUIRE([AC_PROG_CC])
528 AC_MSG_CHECKING(whether we can open files in binary mode)
529 AC_CACHE_VAL(fptools_cv_have_o_binary,
538 fptools_cv_have_o_binary=yes,
539 fptools_cv_have_o_binary=no)
542 AC_MSG_RESULT($fptools_cv_have_o_binary)
543 if test "$fptools_cv_have_o_binary" = yes; then
544 AC_DEFINE(HAVE_O_BINARY)
548 dnl *** Which one comes first, .text or .data? ***
550 AC_DEFUN(FPTOOLS_CODE_BEFORE_DATA,
551 [AC_CACHE_CHECK([if code section appears before data], fptools_cv_code_bef_data,
553 int f() { return 1; }
555 int main() { return ((char*)&f > (char*)&i); }
558 fptools_cv_code_bef_data=yes, fptools_cv_code_bef_data=no,false)])
559 if test "$fptools_cv_code_bef_data" = yes; then
560 AC_DEFINE(CODE_BEFORE_DATA)
564 dnl *** Helper function **
566 AC_DEFUN(FPTOOLS_IN_SCOPE,AC_TRY_LINK([extern char* $1;],[return (int)&$2], $3=yes, $3=no))
568 dnl *** What's the end-of-text-section marker called? ***
570 AC_DEFUN(FPTOOLS_END_TEXT_SECTION,
571 [AC_MSG_CHECKING([for end of text section marker])
573 for i in data_start _data_start etext _etext __etext; do
574 FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_text)
575 if test "$fptools_end_of_text" = yes; then
576 AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, $i))
577 AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, $i))
582 if test "$not_done" = 1; then
583 FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_end_of_text);
584 if test "$fptools_end_of_text" = yes; then
585 AC_CACHE_VAL([fptools_cv_end_of_text], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, etext))
586 AC_CACHE_VAL([fptools_cv_end_of_text_decl], AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, etext asm("etext")))
588 AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER_DECL, dunno_what_it_is)
589 AC_DEFINE_UNQUOTED(TEXT_SECTION_END_MARKER, dunno_what_it_is)
592 AC_MSG_RESULT([$]fptools_cv_end_of_text)
595 dnl *** What's the end-of-data-section marker called? ***
597 AC_DEFUN(FPTOOLS_END_DATA_SECTION,
598 [AC_MSG_CHECKING([for end of data section marker])
600 for i in end _end __end; do
601 FPTOOLS_IN_SCOPE($i,$i,fptools_end_of_data)
602 if test "$fptools_end_of_data" = yes; then
603 AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, $i)])
604 AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, $i)])
609 if test "$not_done" = 1; then
610 FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_end_of_data);
611 if test "$fptools_end_of_data" = yes; then
612 AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, end asm("end"))])
613 AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, end)])
615 AC_CACHE_VAL([fptools_cv_end_of_data_decl], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER_DECL, dunno_what_it_is)])
616 AC_CACHE_VAL([fptools_cv_end_of_data], [AC_DEFINE_UNQUOTED(DATA_SECTION_END_MARKER, dunno_what_it_is)])
619 AC_MSG_RESULT([$]fptools_cv_end_of_data)
624 dnl Based on AC_TRY_LINK - run iftrue if links cleanly with no warning
626 dnl FPTOOLS_TRY_LINK_NOWARN(flags,main?,iftrue,iffalse)
628 AC_DEFUN(FPTOOLS_TRY_LINK_NOWARN,
632 cat > conftest.$ac_ext <<EOF
633 dnl This sometimes fails to find confdefs.h, for some reason.
634 dnl [#]line __oline__ "[$]0"
635 [#]line __oline__ "configure"
636 #include "confdefs.h"
638 int t() { return 0; }
640 if AC_TRY_EVAL(ac_link); then
645 ifelse([$4], , , [else
655 dnl Loosely based on AC_CHECK_LIB in acgeneral.m4 in autoconf distribution
657 dnl FPTOOLS_CHECK_FLAG_NOWARN(NAME, FLAG, CODE, iftrue, iffalse)
659 AC_DEFUN(FPTOOLS_CHECK_FLAG_NOWARN,
660 [AC_MSG_CHECKING([for $1])
661 AC_CACHE_VAL(ac_cv_flag_$1,
662 [FPTOOLS_TRY_LINK_NOWARN("$2", [main() { $3; exit(0); } ],
663 eval "ac_cv_flag_$1=yes",
664 eval "ac_cv_flag_$1=no"
667 if eval "test \"`echo '$ac_cv_flag_'$1`\" = yes"; then
677 dnl FPTOOLS_CHECK_LIB_NOWARN(LIBRARY, FUNCTION)
679 AC_DEFUN(FPTOOLS_CHECK_LIB_NOWARN,
680 [FPTOOLS_CHECK_FLAG_NOWARN([function_$2],[],[extern char $2(); $2();],
682 ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
684 AC_DEFINE_UNQUOTED($ac_tr_lib)
686 [FPTOOLS_CHECK_FLAG_NOWARN([library_$1],[-l$1],[extern char $2(); $2();],
688 ac_tr_lib=HAVE_LIB`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
690 AC_DEFINE_UNQUOTED($ac_tr_lib)
696 dnl check for prototypes
698 AC_DEFUN(AC_C_PROTOTYPES,
699 [AC_CACHE_CHECK([prototypes], ac_cv_prototypes,
708 ac_cv_prototypes=yes,
709 ac_cv_prototypes=no)])
710 if test "$ac_cv_prototypes" = yes; then
711 AC_DEFINE(HAVE_PROTOTYPES)
715 dnl ** Check which CATALOG file we have to use with DocBook SGML.
717 dnl FPTOOLS_DOCBOOK_CATALOG(VARIABLE, JADE, STYLESHEET, CATALOGS-TO-CHECK-FOR)
719 dnl If any of the catalogs given in CATALOGS-TO-CHECK-FOR works on this
720 dnl platform, let VARIABLE refer to this catalog; otherwise, VARIABLE
721 dnl is set to "no". JADE is the jade executable and STYLESHEET
722 dnl a DocBook style sheet.
724 AC_DEFUN(FPTOOLS_DOCBOOK_CATALOG,
725 [AC_CACHE_CHECK([for DocBook CATALOG], fptools_cv_sgml_catalog,
727 cat > conftest.sgml << EOF
728 <!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
732 <Author><OtherName>Test</OtherName></Author>
733 <Address>Test</Address>
734 <PubDate>Test</PubDate>
736 <Sect1><Title>Test</Title>
743 fptools_cv_sgml_catalog=no
744 for fptools_catalog in $4; do
745 ac_try="$2 -t rtf -d $3#print -c $fptools_catalog conftest.sgml"
746 if AC_TRY_EVAL(ac_try); then
747 fptools_cv_sgml_catalog=[$]fptools_catalog
753 if test $fptools_cv_sgml_catalog != "no"; then
754 $1=$fptools_cv_sgml_catalog