Reorder and tidy documentation.
[cfd] / aclocal.glob
CommitLineData
b91e2391 1dnl -*-fundamental-*- *@--GLOB-HEADER--@*
2dnl
a80cb8cc 3dnl $Id: aclocal.glob,v 1.4 1999/07/26 23:44:32 mdw Exp $
b91e2391 4dnl
5dnl Common library of autoconf macros
6dnl
7dnl (c) 1997 Mark Wooding, except for macros and documentation where noted.
8dnl
9
10dnl----- Licensing notice ---------------------------------------------------
11dnl
12dnl This file is part of the Common Files Distribution (`common')
13dnl
14dnl `Common' is free software; you can redistribute it and/or modify
15dnl it under the terms of the GNU General Public License as published by
16dnl the Free Software Foundation; either version 2 of the License, or
17dnl (at your option) any later version.
18dnl
19dnl `Common' is distributed in the hope that it will be useful,
20dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
21dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22dnl GNU General Public License for more details.
23dnl
24dnl You should have received a copy of the GNU General Public License
25dnl along with `common'; if not, write to the Free Software Foundation,
26dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27
28dnl----- Revision history ---------------------------------------------------
29dnl
30dnl $Log: aclocal.glob,v $
a80cb8cc 31dnl Revision 1.4 1999/07/26 23:44:32 mdw
32dnl Reorder and tidy documentation.
33dnl
aaa99339 34dnl Revision 1.3 1999/07/17 10:27:44 mdw
35dnl More useful macros added.
36dnl
5b59e227 37dnl Revision 1.2 1999/05/13 22:57:23 mdw
38dnl Change `-ise' to `-ize' throughout.
39dnl
40dnl Revision 1.1.1.1 1999/05/05 19:23:47 mdw
41dnl New import. The old CVS repository was lost in a disk disaster.
b91e2391 42dnl
43
44dnl----- Common files distribution --------------------------- *@--NOTICE--@*
45dnl
a80cb8cc 46dnl $Id: aclocal.glob,v 1.4 1999/07/26 23:44:32 mdw Exp $
b91e2391 47
48dnl --- *@-AC_PROG_CC_STDC-@* ---
49dnl
50dnl Author: Franc,ois Pinard
51dnl
52dnl Synopsis: AC_PROG_CC_STDC
53dnl
54dnl Arguments: ---
55dnl
56dnl Use: If the C compiler in not in ANSI C mode by default, try to
57dnl add an option to output variable `CC' to make it so. This
58dnl macro tries various options that select ANSI C on some system
59dnl or another. It considers the compiler to be in ANSI C mode
60dnl if it defines `__STDC__' to 1 and handles function prototypes
61dnl correctly.
62dnl
63dnl If you use this macro, you should check after calling it
64dnl whether the C compiler has been set to accept ANSI C; if not,
65dnl the shell variable `ac_cv_prog_cc_stdc' is set to `no'. If
66dnl you wrote your source code in ANSI C, you can make an
67dnl un-ANSIfied copy of it by using the program `ansi2knr', which
68dnl comes with Ghostscript.
69dnl
70dnl (documentation by Franc,ois Pinard)
71
72AC_DEFUN(AM_PROG_CC_STDC,
73[AC_REQUIRE([AC_PROG_CC])
74AC_BEFORE([$0], [AC_C_INLINE])
75AC_BEFORE([$0], [AC_C_CONST])
76AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
77AC_CACHE_VAL(am_cv_prog_cc_stdc,
78[am_cv_prog_cc_stdc=no
79ac_save_CC="$CC"
80# Don't try gcc -ansi; that turns off useful extensions and
81# breaks some systems' header files.
82# AIX -qlanglvl=ansi
83# Ultrix and OSF/1 -std1
84# HP-UX -Aa -D_HPUX_SOURCE
85# SVR4 -Xc -D__EXTENSIONS__
86for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
87do
88 CC="$ac_save_CC $ac_arg"
89 AC_TRY_COMPILE(
90[#if !defined(__STDC__) || __STDC__ != 1
91choke me
92#endif
93/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
94#ifdef _SEQUENT_
95# include <sys/types.h>
96# include <sys/stat.h>
97#endif
98], [
99int test (int i, double x);
100struct s1 {int (*f) (int a);};
101struct s2 {int (*f) (double a);};],
102[am_cv_prog_cc_stdc="$ac_arg"; break])
103done
104CC="$ac_save_CC"
105])
106if test -z "$am_cv_prog_cc_stdc"; then
107 AC_MSG_RESULT([none needed])
108else
109 AC_MSG_RESULT($am_cv_prog_cc_stdc)
110fi
111case "x$am_cv_prog_cc_stdc" in
112 x|xno) ;;
113 *) CC="$CC $am_cv_prog_cc_stdc" ;;
114esac
115])
116
117dnl----- AutoMake macros ------------------------------------- *@--IGNORE--@*
118
119dnl --- *@-AM_CONDITIONAL-@* ---
120dnl
121dnl Author: Unknown
122dnl
123dnl Synopsis: AM_CONDITIONAL(NAME, TEST)
124dnl
125dnl Arguments: NAME = name of the conditional
126dnl TEST = a shell list to execute
127dnl
128dnl Use: Allows conditional sections in Makefiles.
129
130AC_DEFUN(AM_CONDITIONAL,
131[AC_SUBST($1_TRUE)
132AC_SUBST($1_FALSE)
133if $2; then
134 $1_TRUE=
135 $1_FALSE='#'
136else
137 $1_TRUE='#'
138 $1_FALSE=
139fi])
140
141dnl --- *@-AM_CYGWIN32-@* ---
142dnl
143dnl Author: Cygnus (I guess)
144dnl
145dnl Synopsis: AM_CYGWIN32
146dnl
147dnl Arguments: ---
148dnl
149dnl Use: Check to see if we're running under Cygwin32, without using
150dnl AC_CANONICAL_*. If so, set output variable EXEEXT to
151dnl ".exe". Otherwise set it to "".
152
153dnl AM_CYGWIN32()
154dnl You might think we can do this by checking for a cygwin32-specific
155dnl cpp define. We can't, because cross-compilers that target
156dnl cygwin32 don't use the .exe suffix. I don't know why.
157AC_DEFUN(AM_CYGWIN32,
158[AC_CACHE_CHECK(for Cygwin32 environment, am_cv_cygwin32,
159[cat > conftest.$ac_ext << 'EOF'
160int main () {
161/* Nothing. */
162return 0; }
163EOF
164if AC_TRY_EVAL(ac_link) && test -s conftest.exe; then
165 am_cv_cygwin32=yes
166else
167 am_cv_cygwin32=no
168fi
169rm -f conftest*])
170EXEEXT=
171test "$am_cv_cygwin32" = yes && EXEEXT=.exe
172AC_SUBST(EXEEXT)])
173
174dnl --- *@-AM_WITH_DMALLOC-@* ---
175dnl
176dnl Author: Franc,ois Pinard
177dnl
178dnl Synopsis: AM_WITH_DMALLOC
179dnl
180dnl Arguments: ---
181dnl
182dnl Use: Links with `-dmalloc' if told to by the user.
183
184## ----------------------------------- ##
185## Check if --with-dmalloc was given. ##
186## From Franc,ois Pinard ##
187## ----------------------------------- ##
188
189# serial 1
190
191AC_DEFUN(AM_WITH_DMALLOC,
192[AC_MSG_CHECKING(if malloc debugging is wanted)
193AC_ARG_WITH(dmalloc,
194[ --with-dmalloc use dmalloc, as in
195 ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz],
196[if test "$withval" = yes; then
197 AC_MSG_RESULT(yes)
198 AC_DEFINE(WITH_DMALLOC)
199 LIBS="$LIBS -ldmalloc"
200 LDFLAGS="$LDFLAGS -g"
201else
202 AC_MSG_RESULT(no)
203fi], [AC_MSG_RESULT(no)])
204])
205
206dnl --- *@-AM_FUNC_ERROR_AT_LINE-@* ---
207dnl
208dnl Author: Jim Meyering
209dnl
210dnl Synopsis: AM_FUNC_ERROR_AT_LINE
211dnl
212dnl Arguments: ---
213dnl
214dnl Use: Use this if you use the GNU error.[ch].
215
216dnl FIXME: Migrate into libit
217
218AC_DEFUN(AM_FUNC_ERROR_AT_LINE,
219[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
220 [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
221 am_cv_lib_error_at_line=yes,
222 am_cv_lib_error_at_line=no)])
223 if test $am_cv_lib_error_at_line = no; then
224 LIBOBJS="$LIBOBJS error.o"
225 fi
226 AC_SUBST(LIBOBJS)dnl
227])
228
229dnl --- *@-AM_INIT_GUILE_MODULE-@* ---
230dnl
231dnl Author: Unknown
232dnl
233dnl Synopsis: AM_INIT_GUILE_MODULE(MODNAME)
234dnl
5b59e227 235dnl Arguments: MODNAME = value to initialize `module' variable with
b91e2391 236dnl
237dnl Use: This macro will automatically get the guile version from the
238dnl top-level srcdir, and will initialize automake. It also
239dnl defines the `module' variable.
240
241AC_DEFUN([AM_INIT_GUILE_MODULE],[
242. $srcdir/../GUILE-VERSION
243AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
244AC_CONFIG_AUX_DIR(..)
245module=[$1]
246AC_SUBST(module)])
247
248dnl --- *@-AM_CONFIG_HEADER-@* ---
249dnl
250dnl Author: Unknown
251dnl
252dnl Synopsis: AM_CONFIG_HEADER(HEADER ...)
253dnl
254dnl Arguments: HEADER = a header spec, as for AC_CONFIG_HEADER
255dnl
256dnl Use: Like AC_CONFIG_HEADER, but automatically create stamp file.
257
258AC_DEFUN(AM_CONFIG_HEADER,
259[AC_PREREQ([2.12])
260AC_CONFIG_HEADER([$1])
261dnl When config.status generates a header, we must update the stamp-h file.
262dnl This file resides in the same directory as the config header
263dnl that is generated. We must strip everything past the first ":",
264dnl and everything past the last "/".
265AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
266ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
267<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/
268\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
269<<am_indx=1
270for am_file in <<$1>>; do
271 case " <<$>>CONFIG_HEADERS " in
272 *" <<$>>am_file "*<<)>>
273 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
274 ;;
275 esac
276 am_indx=`expr "<<$>>am_indx" + 1`
277done<<>>dnl>>)
278changequote([,]))])
279
280dnl --- *@-AM_INIT_AUTOMAKE-@*
281dnl
282dnl Author: Unknown
283dnl
284dnl Synopsis: AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
285dnl
286dnl Arguments: PACKAGE = package name
287dnl VERSION = version number
288dnl NO-DEFINE = if set, don't define package and version number
289dnl
290dnl Use: Do all the work for Automake. This macro actually does too
291dnl much -- some checks are only needed if your package does
292dnl certain things. But this isn't really a big deal.
293
294# serial 1
295
296AC_DEFUN(AM_INIT_AUTOMAKE,
297[AC_REQUIRE([AM_PROG_INSTALL])
298PACKAGE=[$1]
299AC_SUBST(PACKAGE)
300VERSION=[$2]
301AC_SUBST(VERSION)
302dnl test to see if srcdir already configured
303if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
304 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
305fi
306ifelse([$3],,
307AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
308AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
309AM_SANITY_CHECK
310AC_ARG_PROGRAM
311dnl FIXME This is truly gross.
312missing_dir=`cd $ac_aux_dir && pwd`
313AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
314AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
315AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
316AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
317AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
318AC_PROG_MAKE_SET])
319
320dnl --- *@-AM_PROG_INSTALL-@* ---
321dnl
322dnl Author: Franc,ois Pinard
323dnl
324dnl Synopsis: AM_PROG_INSTALL
325dnl
326dnl Arguments: ---
327dnl
328dnl Use: Calls `AC_PROG_INSTALL' to find an installer. Then it sets
329dnl `INSTALL_SCRIPT' to a suitable value if necessary.
330
331# serial 1
332
333AC_DEFUN(AM_PROG_INSTALL,
334[AC_PROG_INSTALL
335test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755'
336AC_SUBST(INSTALL_SCRIPT)dnl
337])
338
339dnl --- *@-AM_PROG_LEX-@* ---
340dnl
341dnl Author: Alexandre Oliva
342dnl
343dnl Synopsis: AM_PROG_LEX
344dnl
345dnl Arguments: ---
346dnl
347dnl Use: Replacement for AC_PROG_LEX and AC_DECL_YYTEXT
348
349dnl AM_PROG_LEX
350dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
351AC_DEFUN(AM_PROG_LEX,
352[missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
353AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
354AC_PROG_LEX
355AC_DECL_YYTEXT])
356
357dnl --- *@-AM_PROG_LIBTOOL-@* ---
358dnl
359dnl Author: Unknown
360dnl
361dnl Synopsis: AM_PROG_LIBTOOL
362dnl
363dnl Arguments: ---
364dnl
365dnl Use: Configures `libtool' for the target architecture.
366
367##
368## Configure libtool for the target system.
369##
370# serial 1 AM_PROG_LIBTOOL
371AC_DEFUN(AM_PROG_LIBTOOL,
372[AC_REQUIRE([AC_CANONICAL_HOST])
373AC_REQUIRE([AC_PROG_CC])
374AC_REQUIRE([AC_PROG_RANLIB])
375
376# Always use our own libtool.
377LIBTOOL='$(top_builddir)/libtool'
378AC_SUBST(LIBTOOL)
379
380dnl Allow the --disable-shared flag to stop us from building shared libs.
381AC_ARG_ENABLE(shared,
382[ --enable-shared build shared libraries [default=yes]],
383test "$enableval" = no && libtool_shared=" --disable-shared",
384libtool_shared=)
385
386libtool_flags="$libtool_shared"
387test "$silent" = yes && libtool_flags="$libtool_flags --silent"
388test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
389
390# Actually configure libtool. ac_aux_dir is where install-sh is found.
391CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LD="$LD" RANLIB="$RANLIB" \
392$ac_aux_dir/ltconfig $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
393|| AC_MSG_ERROR([libtool configure failed])
394])
395
396dnl --- *@-AM_PATH_LISPDIR-@* ---
397dnl
398dnl Author: Ulrich Drepper
399dnl
400dnl Synopsis: AM_PATH_LISPDIR
401dnl
402dnl Arguments: ---
403dnl
404dnl Use: Sets the variable `lispdir' to point to a place to install
405dnl Emacs lisp files.
406
407## ------------------------
408## Emacs LISP file handling
409## From Ulrich Drepper
410## ------------------------
411
412# serial 1
413
414AC_DEFUN(AM_PATH_LISPDIR,
415 [# If set to t, that means we are running in a shell under Emacs.
416 # If you have an Emacs named "t", then use the full path.
417 test "$EMACS" = t && EMACS=
418 AC_PATH_PROG(EMACS, emacs xemacs, no)
419 if test $EMACS != "no"; then
420 AC_MSG_CHECKING([where .elc files should go])
421 dnl Set default value
422 lispdir="\$(datadir)/emacs/site-lisp"
423 if test "x$prefix" = "xNONE"; then
424 if test -d $ac_default_prefix/share/emacs/site-lisp; then
425 lispdir="\$(prefix)/share/emacs/site-lisp"
426 else
427 if test -d $ac_default_prefix/lib/emacs/site-lisp; then
428 lispdir="\$(prefix)/lib/emacs/site-lisp"
429 fi
430 fi
431 else
432 if test -d $prefix/share/emacs/site-lisp; then
433 lispdir="\$(prefix)/share/emacs/site-lisp"
434 else
435 if test -d $prefix/lib/emacs/site-lisp; then
436 lispdir="\$(prefix)/lib/emacs/site-lisp"
437 fi
438 fi
439 fi
440 AC_MSG_RESULT($lispdir)
441 fi
442 AC_SUBST(lispdir)])
443
444dnl --- *@-AM_MAINTAINTER_MODE-@* ---
445dnl
446dnl Author: Jim Meyering
447dnl
448dnl Synopsis: jm_MAINTAINER_MODE
449dnl
450dnl Arguments: ---
451dnl
452dnl Use: Provides an option `--enable-maintainer-mode' which turns
453dnl on rules which might normally be commented out. The
454dnl substitution variable `MAINT' is set to be a comment when
455dnl this option is disabled, which it is by default.
456
457# serial 1
458
459AC_DEFUN(AM_MAINTAINER_MODE,
460[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
461 dnl maintainer-mode is disabled by default
462 AC_ARG_ENABLE(maintainer-mode,
463[ --enable-maintainer-mode enable make rules and dependencies not useful
464 (and sometimes confusing) to the casual installer],
465 USE_MAINTAINER_MODE=$enableval,
466 USE_MAINTAINER_MODE=no)
467 AC_MSG_RESULT($USE_MAINTAINER_MODE)
468 if test $USE_MAINTAINER_MODE = yes; then
469 MAINT=
470 else
471 MAINT='#M#'
472 fi
473 AC_SUBST(MAINT)dnl
474]
475)
476
477dnl --- *@-AM_MISSING_PROG-@* ---
478dnl
479dnl Author: Unknown
480dnl
481dnl Synopsis: AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
482dnl
483dnl Arguments: NAME = variable to set to the file's location
484dnl PROGRAM = name of program to find
485dnl DIRECTORY = directory to look in
486dnl
487dnl Use: Fakes existence of a useful GNU maintainer tool.
488
489AC_DEFUN(AM_MISSING_PROG,
490[AC_MSG_CHECKING(for working $2)
491# Run test in a subshell; some versions of sh will print an error if
492# an executable is not found, even if stderr is redirected.
493# Redirect stdin to placate older versions of autoconf. Sigh.
494if ($2 --version) < /dev/null > /dev/null 2>&1; then
495 $1=$2
496 AC_MSG_RESULT(found)
497else
498 $1="$3/missing $2"
499 AC_MSG_RESULT(missing)
500fi
501AC_SUBST($1)])
502
503dnl --- *@-AM_FUNC_MKTIME-@* ---
504dnl
505dnl Author: Jim Meyering
506dnl
507dnl Synopsis: AM_FUNC_MKTIME
508dnl
509dnl Arguments: ---
510dnl
511dnl Use: Checks for a working mktime function.
512
513AC_DEFUN(AM_FUNC_MKTIME,
514[AC_REQUIRE([AC_HEADER_TIME])dnl
515 AC_CHECK_HEADERS(sys/time.h)
516 AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime,
517 [AC_TRY_RUN(
518changequote(<<, >>)dnl
519<</* Test program from Paul Eggert (eggert@twinsun.com)
520 and Tony Leneis (tony@plaza.ds.adp.com). */
521#if TIME_WITH_SYS_TIME
522# include <sys/time.h>
523# include <time.h>
524#else
525# if HAVE_SYS_TIME_H
526# include <sys/time.h>
527# else
528# include <time.h>
529# endif
530#endif
531
532static time_t time_t_max;
533
534/* Values we'll use to set the TZ environment variable. */
535static const char *const tz_strings[] = {
536 NULL, "GMT0", "JST-9", "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
537};
538#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
539
540static void
541mktime_test (now)
542 time_t now;
543{
544 if (mktime (localtime (&now)) != now)
545 exit (1);
546 now = time_t_max - now;
547 if (mktime (localtime (&now)) != now)
548 exit (1);
549}
550
551int
552main ()
553{
554 time_t t, delta;
555 int i;
556
557 for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
558 continue;
559 time_t_max--;
560 delta = time_t_max / 997; /* a suitable prime number */
561 for (i = 0; i < N_STRINGS; i++)
562 {
563 if (tz_strings[i])
564 putenv (tz_strings[i]);
565
566 for (t = 0; t <= time_t_max - delta; t += delta)
567 mktime_test (t);
568 mktime_test ((time_t) 60 * 60);
569 mktime_test ((time_t) 60 * 60 * 24);
570 }
571 exit (0);
572}
573 >>,
574changequote([, ])dnl
575 am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no,
576 dnl When crosscompiling, assume mktime is missing or broken.
577 am_cv_func_working_mktime=no)
578 ])
579 if test $am_cv_func_working_mktime = no; then
580 LIBOBJS="$LIBOBJS mktime.o"
581 fi
582])
583
584dnl --- *@-AM_FUNC_OBSTACK-@* ---
585dnl
586dnl Author: Jim Meyering
587dnl
588dnl Synopsis: AM_FUNC_OBSTACK
589dnl
590dnl Arguments: ---
591dnl
592dnl Use: Checks for GNU obstacks.
593
594AC_DEFUN(AM_FUNC_OBSTACK,
595[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
596 [AC_TRY_LINK([#include "obstack.h"],
597 [struct obstack *mem;obstack_free(mem,(char *) 0)],
598 am_cv_func_obstack=yes,
599 am_cv_func_obstack=no)])
600 if test $am_cv_func_obstack = yes; then
601 AC_DEFINE(HAVE_OBSTACK)
602 else
603 LIBOBJS="$LIBOBJS obstack.o"
604 fi
605])
606
607dnl --- *@-AC_C_PROTOTYPES-@* ---
608dnl
609dnl Author: Franc,ois Pinard
610dnl
611dnl Synopsis: AC_C_PROTOTYPES
612dnl
613dnl Arguments: ---
614dnl
615dnl Use: If the C compiler understands ANSI C, define `PROTOTYPES',
616dnl and clear the `U' and `ANSI2KNR' variables. Otherwise,
617dnl set `U' to be `_' and `ANSI2KNR' to be `./ansi2knr'.
618
619# serial 1
620
621AC_DEFUN(fp_C_PROTOTYPES,
622[AC_REQUIRE([fp_PROG_CC_STDC])
623AC_MSG_CHECKING([for function prototypes])
624if test "$ac_cv_prog_cc_stdc" != no; then
625 AC_MSG_RESULT(yes)
626 AC_DEFINE(PROTOTYPES)
627 U= ANSI2KNR=
628else
629 AC_MSG_RESULT(no)
630 U=_ ANSI2KNR=./ansi2knr
631fi
632AC_SUBST(U)dnl
633AC_SUBST(ANSI2KNR)dnl
634])
635
636dnl --- *@-AM_PATH_GTK-@* ---
637dnl
638dnl Author: Owen Taylor
639dnl
640dnl Synopsis: AM_PATH_GTK(MIN-VERSION, [ACTION-IF-FOUND], [ACTION-IF-NOT])
641dnl
642dnl Arguments: MIN-VERSION = minimum version of GTK required
643dnl ACTION-IF-FOUND = executed if GTK found OK
644dnl ACTION-IF-NOT-FOUND = what to do if GTK not available
645dnl
646dnl Use: Sets up compilation environment suitably for GTK programming.
647
648# Configure paths for GTK+
649# Owen Taylor 97-11-3
650
651dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
652dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
653dnl
654AC_DEFUN(AM_PATH_GTK,
655[dnl
656dnl Get the cflags and libraries from the gtk-config script
657dnl
658AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
659 gtk_config_prefix="$withval", gtk_config_prefix="")
660AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
661 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
662AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
663 , enable_gtktest=yes)
664
665 if test x$gtk_config_exec_prefix != x ; then
666 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
667 if test x${GTK_CONFIG+set} != xset ; then
668 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
669 fi
670 fi
671 if test x$gtk_config_prefix != x ; then
672 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
673 if test x${GTK_CONFIG+set} != xset ; then
674 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
675 fi
676 fi
677
678 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
679 min_gtk_version=ifelse([$1], ,0.99.7,$1)
680 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
681 no_gtk=""
682 if test "$GTK_CONFIG" = "no" ; then
683 no_gtk=yes
684 else
685 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
686 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
687 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
688 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
689 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
690 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
691 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
692 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
693 if test "x$enable_gtktest" = "xyes" ; then
694 ac_save_CFLAGS="$CFLAGS"
695 ac_save_LIBS="$LIBS"
696 CFLAGS="$CFLAGS $GTK_CFLAGS"
697 LIBS="$LIBS $GTK_LIBS"
698dnl
699dnl Now check if the installed GTK is sufficiently new. (Also sanity
700dnl checks the results of gtk-config to some extent
701dnl
702 rm -f conf.gtktest
703 AC_TRY_RUN([
704#include <gtk/gtk.h>
705#include <stdio.h>
706
707int
708main ()
709{
710 int major, minor, micro;
711 char *tmp_version;
712
713 system ("touch conf.gtktest");
714
715 /* HP/UX 9 (%@#!) writes to sscanf strings */
716 tmp_version = g_strdup("$min_gtk_version");
717 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
718 printf("%s, bad version string\n", "$min_gtk_version");
719 exit(1);
720 }
721
722 if ((gtk_major_version != $gtk_config_major_version) ||
723 (gtk_minor_version != $gtk_config_minor_version) ||
724 (gtk_micro_version != $gtk_config_micro_version))
725 {
726 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
727 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
728 gtk_major_version, gtk_minor_version, gtk_micro_version);
729 printf ("*** was found! If gtk-config was correct, then it is best\n");
730 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
731 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
732 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
733 printf("*** required on your system.\n");
734 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
735 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
736 printf("*** before re-running configure\n");
737 }
738 else
739 {
740 if ((gtk_major_version > major) ||
741 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
742 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
743 {
744 return 0;
745 }
746 else
747 {
748 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
749 gtk_major_version, gtk_minor_version, gtk_micro_version);
750 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
751 major, minor, micro);
752 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
753 printf("***\n");
754 printf("*** If you have already installed a sufficiently new version, this error\n");
755 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
756 printf("*** being found. The easiest way to fix this is to remove the old version\n");
757 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
758 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
759 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
760 printf("*** so that the correct libraries are found at run-time))\n");
761 }
762 }
763 return 1;
764}
765],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
766 CFLAGS="$ac_save_CFLAGS"
767 LIBS="$ac_save_LIBS"
768 fi
769 fi
770 if test "x$no_gtk" = x ; then
771 AC_MSG_RESULT(yes)
772 ifelse([$2], , :, [$2])
773 else
774 AC_MSG_RESULT(no)
775 if test "$GTK_CONFIG" = "no" ; then
776 echo "*** The gtk-config script installed by GTK could not be found"
777 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
778 echo "*** your path, or set the GTK_CONFIG environment variable to the"
779 echo "*** full path to gtk-config."
780 else
781 if test -f conf.gtktest ; then
782 :
783 else
784 echo "*** Could not run GTK test program, checking why..."
785 CFLAGS="$CFLAGS $GTK_CFLAGS"
786 LIBS="$LIBS $GTK_LIBS"
787 AC_TRY_LINK([
788#include <gtk/gtk.h>
789#include <stdio.h>
790], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
791 [ echo "*** The test program compiled, but did not run. This usually means"
792 echo "*** that the run-time linker is not finding GTK or finding the wrong"
793 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
794 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
795 echo "*** to the installed location Also, make sure you have run ldconfig if that"
796 echo "*** is required on your system"
797 echo "***"
798 echo "*** If you have an old version installed, it is best to remove it, although"
799 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
800 echo "***"
801 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
802 echo "*** came with the system with the command"
803 echo "***"
804 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
805 [ echo "*** The test program failed to compile or link. See the file config.log for the"
806 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
807 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
808 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
809 CFLAGS="$ac_save_CFLAGS"
810 LIBS="$ac_save_LIBS"
811 fi
812 fi
813 GTK_CFLAGS=""
814 GTK_LIBS=""
815 ifelse([$3], , :, [$3])
816 fi
817 AC_SUBST(GTK_CFLAGS)
818 AC_SUBST(GTK_LIBS)
819 rm -f conf.gtktest
820])
821
822dnl --- *@-AC_TYPE_PTRDIFF_T-@* ---
823dnl
824dnl Author: Ulrich Drepper
825dnl
826dnl Synopsis: AC_TYPE_PTRDIFF_T
827dnl
828dnl Arguments: ---
829dnl
830dnl Use: Sets HAVE_PTRDIFF_T if the type exists.
831
832AC_DEFUN(AM_TYPE_PTRDIFF_T,
833 [AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
834 [AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
835 am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
836 if test $am_cv_type_ptrdiff_t = yes; then
837 AC_DEFINE(HAVE_PTRDIFF_T)
838 fi
839])
840
841dnl --- *@-AM_WITH_REGEX-@* ---
842dnl
843dnl Author: Unknown (possibly Franc,ois Pinard)
844dnl
845dnl Synopsis: AM_WITH_REGEX
846dnl
847dnl Arguments: ---
848dnl
849dnl Use:
850dnl The idea is to distribute rx.[hc] and regex.[hc] together,
851dnl for a while. The WITH_REGEX symbol (which should also be
852dnl documented in acconfig.h) is used to decide which of regex.h
853dnl or rx.h should be included in the application. If
854dnl `./configure --with-regex' is given (the default), the
855dnl package will use gawk's regex. If `./configure
856dnl --without-regex', a check is made to see if rx is already
857dnl installed, as with newer Linux'es. If not found, the package
858dnl will use the rx from the distribution. If found, the package
859dnl will use the system's rx which, on Linux at least, will
860dnl result in a smaller executable file.
861
862AC_DEFUN(AM_WITH_REGEX,
863[AC_MSG_CHECKING(which of GNU rx or gawk's regex is wanted)
864AC_ARG_WITH(regex,
865[ --without-regex use GNU rx in lieu of gawk's regex for matching],
866[test "$withval" = yes && am_with_regex=1],
867[am_with_regex=1])
868if test -n "$am_with_regex"; then
869 AC_MSG_RESULT(regex)
870 AC_DEFINE(WITH_REGEX)
871 AC_CACHE_CHECK([for GNU regex in libc], am_cv_gnu_regex,
872 AC_TRY_LINK([], [extern int re_max_failures; re_max_failures = 1],
873 am_cv_gnu_regex=yes, am_cv_gnu_regex=no))
874 if test $am_cv_gnu_regex = no; then
875 LIBOBJS="$LIBOBJS regex.o"
876 fi
877else
878 AC_MSG_RESULT(rx)
879 AC_CHECK_FUNC(re_rx_search, , [LIBOBJS="$LIBOBJS rx.o"])
880fi
881AC_SUBST(LIBOBJS)dnl
882])
883
884dnl --- *@-AM_SANITY_CHECK-@*
885dnl
886dnl Author: Unknown
887dnl
888dnl Synopsis: AM_SANITY_CHECK
889dnl
890dnl Arguments: ---
891dnl
892dnl Use: Check for build environment sanity.
893
894AC_DEFUN(AM_SANITY_CHECK,
895[AC_MSG_CHECKING([whether build environment is sane])
896# Just in case
897sleep 1
898echo timestamp > conftestfile
899# Do `set' in a subshell so we don't clobber the current shell's
900# arguments. Must try -L first in case configure is actually a
901# symlink; some systems play weird games with the mod time of symlinks
902# (eg FreeBSD returns the mod time of the symlink's containing
903# directory).
904if (
905 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
906 if test "$@" = "X"; then
907 # -L didn't work.
908 set X `ls -t $srcdir/configure conftestfile`
909 fi
910 test "[$]2" = conftestfile
911 )
912then
913 # Ok.
914 :
915else
916 AC_MSG_ERROR([newly created file is older than distributed files!
917Check your system clock])
918fi
919rm -f conftest*
920AC_MSG_RESULT(yes)])
921
922dnl --- *@-AM_FUNC_STRDOD-@* ---
923dnl
924dnl Author: Jim Meyering
925dnl
926dnl Synopsis: AM_FUNC_STRTOD
927dnl
928dnl Arguments: ---
929dnl
930dnl Use: Checks for a working strtod function.
931
932## Copyright (C) 1996 Free Software Foundation, Inc.
933
934## This program is free software; you can redistribute it and/or modify
935## it under the terms of the GNU General Public License as published by
936## the Free Software Foundation; either version 2, or (at your option)
937## any later version.
938
939## This program is distributed in the hope that it will be useful,
940## but WITHOUT ANY WARRANTY; without even the implied warranty of
941## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
942## GNU General Public License for more details.
943
944## You should have received a copy of the GNU General Public License
945## along with this program; if not, write to the Free Software
946## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
947## 02111-1307, USA.
948
949## From Jim Meyering.
950
951## serial 1
952
953## @defmac AC_FUNC_STRTOD
954## @maindex FUNC_STRTOD
955## @ovindex LIBOBJS
956## If the @code{strtod} function is not available, or does not work
957## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
958## variable @code{LIBOBJS}.
959## @end defmac
960
961AC_DEFUN(AM_FUNC_STRTOD,
962[AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
963[AC_TRY_RUN([
964double strtod ();
965int
966main()
967{
968 {
969 /* Some versions of Linux strtod mis-parse strings with leading '+'. */
970 char *string = " +69";
971 char *term;
972 double value;
973 value = strtod (string, &term);
974 if (value != 69 || term != (string + 4))
975 exit (1);
976 }
977
978 {
979 /* Under Solaris 2.4, strtod returns the wrong value for the
980 terminating character under some conditions. */
981
982## @defmac AC_FUNC_STRTOD
983## @maindex FUNC_STRTOD
984## @ovindex LIBOBJS
985## If the @code{strtod} function is not available, or does not work
986## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
987## variable @code{LIBOBJS}.
988## @end defmac
989
990AC_DEFUN(AM_FUNC_STRTOD,
991[AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
992[AC_TRY_RUN([
993double strtod ();
994int
995main()
996{
997 {
998 /* Some versions of Linux strtod mis-parse strings with leading '+'. */
999 char *string = " +69";
1000 char *term;
1001 double value;
1002 value = strtod (string, &term);
1003 if (value != 69 || term != (string + 4))
1004 exit (1);
1005 }
1006
1007 {
1008 /* Under Solaris 2.4, strtod returns the wrong value for the
1009 terminating character under some conditions. */
1010 char *string = "NaN";
1011 char *term;
1012 strtod (string, &term);
1013 if (term != string && *(term - 1) == 0)
1014 exit (1);
1015 }
1016 exit (0);
1017}
1018], am_cv_func_strtod=yes, am_cv_func_strtod=no, am_cv_func_strtod=no)])
1019test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
1020AC_SUBST(LIBOBJS)dnl
1021am_cv_func_strtod_needs_libm=no
1022if test $am_cv_func_strtod = no; then
1023 AC_CHECK_FUNCS(pow)
1024 if test $ac_cv_func_pow = no; then
1025 AC_CHECK_LIB(m, pow, [am_cv_func_strtod_needs_libm=yes],
1026 [AC_MSG_WARN(can't find library containing definition of pow)])
1027 fi
1028fi
1029])
1030
1031dnl --- *@-AM_SYS_POSIX_TERMIOS-@* ---
1032dnl
1033dnl Author: Jim Meyering
1034dnl
1035dnl Synopsis: AM_SYS_POSIX_TERMIOS
1036dnl
1037dnl Arguments: ---
1038dnl
1039dnl Use: Checks for a POSIX termios.h.
1040
1041AC_DEFUN(AM_SYS_POSIX_TERMIOS,
1042[AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
1043 [AC_TRY_LINK([#include <sys/types.h>
1044#include <unistd.h>
1045#include <termios.h>],
1046 [/* SunOS 4.0.3 has termios.h but not the library calls. */
1047 tcgetattr(0, 0);],
1048 am_cv_sys_posix_termios=yes,
1049 am_cv_sys_posix_termios=no)])
1050])
1051
1052dnl----- Macros by Mark Wooding ------------------------------ *@--IGNORE--@*
1053
a80cb8cc 1054dnl --- *@-mdw_REQUIRE-@* ---
aaa99339 1055dnl
1056dnl Author: Mark Wooding
1057dnl
a80cb8cc 1058dnl Synopsis: mdw_REQUIRE(MACRO, ARGS...)
aaa99339 1059dnl
a80cb8cc 1060dnl Arguments: MACRO = name of a macro which should have been called
1061dnl ARGS = arguments to pass
aaa99339 1062dnl
a80cb8cc 1063dnl Use: Like `AC_REQUIRE', only it handles arguments.
aaa99339 1064
a80cb8cc 1065AC_DEFUN(mdw_REQUIRE,
1066[ifdef([AC_PROVIDED_$1], ,
1067[AC_DIVERT_PUSH(builtin(eval, AC_DIVERSION_CURRENT - 1))dnl
1068indir($@)
1069AC_DIVERT_POP()dnl
1070])])
aaa99339 1071
1072dnl --- *@-mdw_CURSES-@* ---
1073dnl
1074dnl Author: Mark Wooding
1075dnl
1076dnl Synopsis: mdw_CURSES
1077dnl
1078dnl Arguments: ---
1079dnl
a80cb8cc 1080dnl Use: Searches for a `curses' library (one of `ncurses' or
1081dnl `curses') using mdw_CHECK_MANYLIBS. If one is found, the
1082dnl preprocessor macro HAVE_CURSES is defined, and a search is
1083dnl made for a `curses' header file (one of <ncurses.h>,
1084dnl <ncurses/ncurses.h> or <curses.h>) using AC_CHECK_HEADERS
1085dnl and the appropriate preprocessor symbol is defined.
1086dnl Finally, a check is made for the function `wresize' using
1087dnl AC_CHECK_FUNCS.
aaa99339 1088
1089AC_DEFUN(mdw_CURSES,
1090[mdw_CHECK_MANYLIBS(newwin, ncurses curses, AC_DEFINE(HAVE_CURSES))
1091if test $mdw_cv_lib_newwin != no; then
1092AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h curses.h], [break])
1093if test "$ac_cv_header_ncurses_h" = "no" &&
1094 test "$ac_cv_header_ncurses_ncurses_h" = "no" &&
1095 test "$ac_cv_header_curses_h" = "no"; then
1096 AC_MSG_WARN([couldn't find a \`curses' header. Assuming \`curses.h'.])
1097 AC_DEFINE(HAVE_CURSES_H)
1098fi
1099AC_CHECK_FUNCS(wresize)
1100fi])
1101
1102dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
1103dnl
1104dnl Author: Mark Wooding
1105dnl
1106dnl Synopsis: mdw_TYPE_SSIZE_T
1107dnl
1108dnl Arguments: ---
1109dnl
a80cb8cc 1110dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
1111dnl it defaults to `int'.
aaa99339 1112
1113AC_DEFUN(mdw_TYPE_SSIZE_T,
a80cb8cc 1114[AC_REQUIRE([AC_HEADER_STDC])
1115AC_CACHE_CHECK(for ssize_t, mdw_cv_ssize_t,
aaa99339 1116[AC_EGREP_CPP(ssize_t,
1117[#include <sys/types.h>
1118#if HAVE_UNISTD_H
1119#include <unistd.h>
1120#endif
1121#if STDC_HEADERS
1122#include <stdlib.h>
1123#include <stddef.h>
1124#endif],
a80cb8cc 1125[mdw_cv_ssize_t=yes], [mdw_cv_ssize_t=no])])
1126if test $mdw_cv_ssize_t = no; then
aaa99339 1127 AC_DEFINE(ssize_t, int)
1128fi])
1129
a80cb8cc 1130dnl --- *@-mdw-DECL_ENVIRON-@* ---
b91e2391 1131dnl
1132dnl Author: Mark Wooding
1133dnl
a80cb8cc 1134dnl Synopsis: mdw_DECL_ENVIRON
b91e2391 1135dnl
a80cb8cc 1136dnl Arguments: ---
b91e2391 1137dnl
a80cb8cc 1138dnl Use: Searches for a declaration of the global `environ' variable.
1139dnl If one is found in one of the `usual' places, DECL_ENVIRON
1140dnl is defined as a preprocessor symbol.
b91e2391 1141
a80cb8cc 1142AC_DEFUN(mdw_DECL_ENVIRON,
1143[AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
1144[AC_EGREP_CPP(environ,
1145[#include <sys/types.h>
1146#if HAVE_UNISTD_H
1147#include <unistd.h>
1148#endif
1149#if STDC_HEADERS
1150#include <stdlib.h>
1151#include <stddef.h>
1152#endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
1153if test $mdw_cv_environ = yes; then
1154 AC_DEFINE(DECL_ENVIRON)
1155fi])
b91e2391 1156
1157dnl --- *@-mdw_CHECK_MANYLIBS-@* ---
1158dnl
1159dnl Author: Mark Wooding
1160dnl
1161dnl Synopsis: mdw_CHECK_MANYLIBS(FUNC, LIBS, [IF-FOUND], [IF-NOT-FOUND])
1162dnl
1163dnl Arguments: FUNC = a function to try to find
1164dnl LIBS = a whitespace-separated list of libraries to search
1165dnl IF-FOUND = what to do when the function is found
1166dnl IF-NOT-FOUND = what to do when the function isn't found
1167dnl
1168dnl Use: Searches for a library which defines FUNC. It first tries
1169dnl without any libraries; then it tries each library specified
1170dnl in LIBS in turn. If it finds a match, it adds the
1171dnl appropriate library to `LIBS'.
1172dnl
1173dnl This is particularly handy under DIREIX: if you link with
1174dnl `-lnsl' then you get non-NIS-aware versions of getpwnam and
1175dnl so on, which is clearly a Bad Thing.
1176
1177AC_DEFUN(mdw_CHECK_MANYLIBS,
1178[AC_CACHE_CHECK([for library containing $1], [mdw_cv_lib_$1],
1179[mdw_save_LIBS="$LIBS"
1180mdw_cv_lib_$1="no"
1181AC_TRY_LINK(,[$1()], [mdw_cv_lib_$1="none required"])
1182test "$mdw_cv_lib_$1" = "no" && for i in $2; do
1183LIBS="-l$i $mdw_save_LIBS"
1184AC_TRY_LINK(,[$1()],
1185[mdw_cv_lib_$1="-l$i"
1186break])
1187done
1188LIBS="$mdw_save_LIBS"])
1189if test "$mdw_cv_lib_$1" != "no"; then
1190 test "$mdw_cv_lib_$1" = "none required" || LIBS="$mdw_cv_lib_$1 $LIBS"
1191 $3
1192else :
1193 $4
1194fi])
1195
1196dnl --- *@-mdw__PERL_VERSION-@* ---
1197dnl
1198dnl AC_DEFUN relies on `[', `]' being quotes, so I have to drop down a level.
1199
1200changequote(<<, >>)
1201define(mdw__PERL_VERSION, <<$1 -e 'exit ($] < $2);' >&5 2>&5>>)
1202changequote([, ])
1203
1204dnl --- *@-mdw_PROG_PERL-@* ---
1205dnl
1206dnl Author: Mark Wooding
1207dnl
1208dnl Synopsis: mdw_PROG_PERL(VERSION, [IF-FOUND], [IF-NOT-FOUND])
1209dnl
1210dnl Arguments: VERSION = version number of Perl required
1211dnl IF-FOUND = what to do if it's found
1212dnl IF-NOT-FOUND = what to do if it isn't
1213dnl
1214dnl Use: Attempts to find a working version of Perl with a late
1215dnl enough version number. It supplies an option `--with-perl'
1216dnl to allow the user to provide a Perl interpreter. If one
1217dnl isn't provided explicitly, it searches for `perl' and `perl5'
1218dnl in the current PATH, asking them whether they have a late
1219dnl enough version number. The path of the working Perl is
1220dnl put into the `PERL' environment variable; `AC_SUBST' is used
1221dnl to substitute its value into Perl scripts. If there is no
1222dnl Perl to be found, the value of `PERL' is set to be `none'.
1223
1224AC_DEFUN(mdw_PROG_PERL,
1225[AC_ARG_WITH([perl],
1226[ --with-perl=PERL specify path to Perl version $1 or newer],
1227[PERL="$withval"],
1228if test -z "$PERL"; then
1229[AC_CACHE_CHECK([for Perl version $1 or later], mdw_cv_prog_perl,
1230[mdw_cv_prog_perl="none"
1231for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
1232 case $p in /*) ;; *) p=`pwd`/$p ;; esac
1233 if mdw__PERL_VERSION(["$p/perl"], $1); then
1234 mdw_cv_prog_perl="$p/perl"
1235 break
1236 fi
1237 if mdw__PERL_VERSION(["$p/perl5"], $1); then
1238 mdw_cv_prog_perl="$p/perl5"
1239 break
1240 fi
1241done])
1242PERL="$mdw_cv_prog_perl"])
1243fi
1244
1245AC_SUBST(PERL)dnl
1246if test "$PERL" = "none"; then :
1247 $3
1248else :
1249 $2
1250fi])
1251
1252dnl --- *@-mdw_CHECK_PERL-@* ---
1253dnl
1254dnl Author: Mark Wooding
1255dnl
1256dnl Synopsis: mdw_CHECK_PERL(VERSION)
1257dnl
1258dnl Arguments: VERSION = version number of Perl required
1259dnl
1260dnl Use: Verifies that the Perl interpreter in the `PERL' shell
1261dnl variable actually works and is of the right version. If it's
1262dnl not, an error is raised and configuration is aborted.
1263
1264AC_DEFUN(mdw_CHECK_PERL,
1265[mdw_REQUIRE([mdw_PROG_PERL], [$1])
1266AC_MSG_CHECKING([whether Perl ($PERL) works])
1267if test "$PERL" != "none" && mdw__PERL_VERSION("$PERL", $1); then
1268 AC_MSG_RESULT([yes])
1269else
1270 AC_MSG_RESULT([no])
1271 AC_MSG_ERROR([Perl version $1 or newer not found.
1272If you have a recent enough Perl, and I just failed to find it, try using
1273the --with-perl=PERL option to give me an explicit pathname.])
1274fi])
1275
1276dnl --- *@-mdw_PERLLIB_CHECK-@* ---
1277dnl
1278dnl Author: Mark Wooding
1279dnl
1280dnl Synopsis: mdw_PERLLIB_CHECK(LIBRARY)
1281dnl
1282dnl Arguments: LIBRARY = name of a Perl library to check for
1283dnl
1284dnl Use: Ensures that a Perl script can `use LIBRARY;'. If it can,
1285dnl all's well and good; if it can't, `LIBRARY.pm' is added to
1286dnl the variable `NEEDED_PERLLIBS' and a line which adds
1287dnl `pkgdatadir' to Perl's `@INC' array is placed in the
1288dnl variable `INC_PERLLIBS'; `AC_SUBST' is called for both of
1289dnl these variables. It's expected that `NEEDED_PERLLIBS' will
1290dnl be used in the `Makefile.in' to decide which versions from
1291dnl the distribution need installing.
1292dnl
1293dnl This macro isn't terribly useful in the general case. It
1294dnl Also implicitly assumes that `$PERL' is Perl 5 or later.
1295
1296AC_DEFUN(mdw__PERLLIB_INIT,
1297[AC_SUBST(INC_PERLLIBS)dnl
1298AC_SUBST(NEEDED_PERLLIBS)dnl
1299])
1300
1301AC_DEFUN(mdw_PERLLIB_CHECK,
1302[AC_REQUIRE([mdw__PERLLIB_INIT])
1303mdw_REQUIRE([mdw_CHECK_PERL], 5)
1304AC_CACHE_CHECK([for Perl library $1], mdw_cv_perllib_$1,
1305[if $PERL -e 'use $1;' >&5 2>&5; then
1306 mdw_cv_perllib_$1="yes"
1307else
1308 mdw_cv_perllib_$1="no"
1309fi])
1310
1311if test "$mdw_cv_perllib_$1" = "no"; then
1312 NEEDED_PERLLIBS="$NEEDED_PERLLIBS $1.pm"
1313
1314 # --- Deal with autoconf lossage ---
1315 #
1316 # It doesn't want to define `prefix' until rather later on, so I have
1317 # to bodge it here.
1318
1319 if test -z "$INC_PERLLIBS"; then
1320 mdw_old_prefix="$prefix"
1321 test "$prefix" = "NONE" && prefix="$ac_default_prefix";
1322 INC_PERLLIBS="BEGIN { push @INC, \"`eval echo $datadir/$PACKAGE`\"; }"
1323 prefix="$mdw_old_prefix";
1324 fi
1325fi])
1326
1327dnl --- *@-mdw_GCC_FLAGS-@* ---
1328dnl
1329dnl Author: Mark Wooding
1330dnl
1331dnl Synopsis: mdw_GCC_FLAGS([FLAGS], [CFLAGS], [C++FLAGS])
1332dnl
1333dnl Arguments: FLAGS = GCC compiler flags to add (default is
1334dnl `-pedantic -Wall')
1335dnl CFLAGS = GCC C compiler flags to add (default is empty)
1336dnl C++FLAGS = GCC C++ compiler flags to add (default is
1337dnl `-fhandle-exceptions').
1338dnl
1339dnl Use: If the C compiler is GCC, add the compiler flags.
1340
1341AC_DEFUN(mdw_GCC_FLAGS,
1342[if test "$GCC" = "yes"; then
1343 CFLAGS="$CFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1344 CFLAGS="$CFLAGS ifelse([$2], [], [], [$2])"
1345fi
1346if test "$GXX" = "yes"; then
1347 CXXFLAGS="$CXXFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1348 CXXFLAGS="$CXXFLAGS ifelse([$3], [], [-fhandle-exceptions], [$3])"
1349fi])
1350
1351dnl --- *@-mdw_OPT_NDEBUG-@* ---
1352dnl
1353dnl Author: Mark Wooding
1354dnl
1355dnl Synopsis: mdw_OPT_NDEBUG
1356dnl
1357dnl Arguments: ---
1358dnl
1359dnl Use: Turns off the `NDEBUG' flag if the user wants to do
1360dnl debugging.
1361
1362AC_DEFUN(mdw_OPT_NDEBUG,
1363[AC_ARG_ENABLE(debugging,
1364[ --enable-debugging spews vast swathes of useless information],
1365[if test "$enableval" = "no"; then
1366 AC_DEFINE(NDEBUG, 1)
1367fi],
1368[AC_DEFINE(NDEBUG, 1)])])
1369
1370dnl --- *@-mdw_OPT_EFENCE-@* ---
1371dnl
1372dnl Author: Mark Wooding
1373dnl
1374dnl Synopsis: mdw_OPT_EFENCE
1375dnl
1376dnl Arguments: ---
1377dnl
1378dnl Use: Links with the Electric Fence library.
1379
1380AC_DEFUN(mdw_OPT_EFENCE,
1381[AC_ARG_WITH(electric-fence,
1382[ --with-electric-fence link programs with Electric Fence],
1383[if test "$withval" = "yes"; then
1384 AC_CHECK_LIB(efence, malloc)
1385fi])])
1386
1387dnl --- *@-mdw_OPT_mLib_DEBUG-@* ---
1388dnl
1389dnl Author: Mark Wooding
1390dnl
1391dnl Synopsis: mdw_OPT_mLib_DEBUG(PROGRAM)
1392dnl
1393dnl Arguments: ---
1394dnl
1395dnl Use: Provides options for mLib debugging. In particular, the
1396dnl following are defined:
1397dnl
1398dnl --enable-tracing turns off the NTRACE variable
1399dnl --enable-track turns on malloc tracking
1400dnl --enable-blame-PROGRAM tracks malloc contexts in PROGRAM
1401dnl
1402dnl There must be a separate `blame' option, so that the various
1403dnl blame options work properly.
1404
1405AC_DEFUN(mdw_OPT_mLib_DEBUG,
1406[mdw_OPT_NDEBUG
1407mdw_OPT_EFENCE
1408
1409AC_ARG_ENABLE(tracing,
1410[ --enable-tracing enable output of tracing information],
1411[if test "$enableval" = "no"; then
1412 AC_DEFINE(NTRACE, 1)
1413fi],
1414[AC_DEFINE(NTRACE, 1)])
1415
1416AC_ARG_ENABLE(track,
1417[ --enable-track enable tracking of malloc and free],
1418[AC_DEFINE(TRACK_ENABLE, 1)])
1419
1420AC_ARG_ENABLE(blame-$1,
1421[ --enable-blame-$1
1422 track malloc contexts while in $1],
1423[AC_DEFINE(TRACK_BLAME, 1)])])
1424
1425dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*