1 dnl -*-fundamental-*- *@--GLOB-HEADER--@*
3 dnl $Id: aclocal.glob,v 1.11 2001/01/20 12:03:08 mdw Exp $
5 dnl Common library of autoconf macros
7 dnl (c) 1997 Mark Wooding, except for macros and documentation where noted.
10 dnl----- Licensing notice ---------------------------------------------------
12 dnl This file is part of the Common Files Distribution (`common')
14 dnl `Common' is free software; you can redistribute it and/or modify
15 dnl it under the terms of the GNU General Public License as published by
16 dnl the Free Software Foundation; either version 2 of the License, or
17 dnl (at your option) any later version.
19 dnl `Common' is distributed in the hope that it will be useful,
20 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
21 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 dnl GNU General Public License for more details.
24 dnl You should have received a copy of the GNU General Public License
25 dnl along with `common'; if not, write to the Free Software Foundation,
26 dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 dnl----- Revision history ---------------------------------------------------
30 dnl $Log: aclocal.glob,v $
31 dnl Revision 1.11 2001/01/20 12:03:08 mdw
32 dnl Remove redundant stuff.
34 dnl Revision 1.10 2000/10/14 16:32:15 mdw
35 dnl Fixes from upstream.
37 dnl Revision 1.9 2000/08/15 21:37:49 mdw
38 dnl New initialization macro for libraries, and a new base client macro for
39 dnl finding libraries with an appropriate version.
41 dnl Revision 1.8 1999/11/26 01:23:17 mdw
42 dnl And support for MXD (not yet released).
44 dnl Revision 1.7 1999/11/11 20:03:58 mdw
45 dnl Add support for mgLib too.
47 dnl Revision 1.6 1999/11/11 17:49:33 mdw
48 dnl New macros for configuring clients of mLib and Catacomb.
50 dnl Revision 1.5 1999/07/27 18:27:37 mdw
51 dnl Fix typo in header line for mdw_DECL_ENVIRON.
53 dnl Revision 1.4 1999/07/26 23:44:32 mdw
54 dnl Reorder and tidy documentation.
56 dnl Revision 1.3 1999/07/17 10:27:44 mdw
57 dnl More useful macros added.
59 dnl Revision 1.2 1999/05/13 22:57:23 mdw
60 dnl Change `-ise' to `-ize' throughout.
62 dnl Revision 1.1.1.1 1999/05/05 19:23:47 mdw
63 dnl New import. The old CVS repository was lost in a disk disaster.
66 dnl----- Common files distribution --------------------------- *@--NOTICE--@*
68 dnl $Id: aclocal.glob,v 1.11 2001/01/20 12:03:08 mdw Exp $
70 dnl --- *@-AM_PROG_CC_STDC-@* ---
72 dnl Author: Franc,ois Pinard
74 dnl Synopsis: AM_PROG_CC_STDC
78 dnl Use: If the C compiler in not in ANSI C mode by default, try to
79 dnl add an option to output variable `CC' to make it so. This
80 dnl macro tries various options that select ANSI C on some system
81 dnl or another. It considers the compiler to be in ANSI C mode
82 dnl if it defines `__STDC__' to 1 and handles function prototypes
85 dnl If you use this macro, you should check after calling it
86 dnl whether the C compiler has been set to accept ANSI C; if not,
87 dnl the shell variable `ac_cv_prog_cc_stdc' is set to `no'. If
88 dnl you wrote your source code in ANSI C, you can make an
89 dnl un-ANSIfied copy of it by using the program `ansi2knr', which
90 dnl comes with Ghostscript.
92 dnl (documentation by Franc,ois Pinard)
94 AC_DEFUN(AM_PROG_CC_STDC,
95 [AC_REQUIRE([AC_PROG_CC])
96 AC_BEFORE([$0], [AC_C_INLINE])
97 AC_BEFORE([$0], [AC_C_CONST])
98 AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
99 AC_CACHE_VAL(am_cv_prog_cc_stdc,
100 [am_cv_prog_cc_stdc=no
102 # Don't try gcc -ansi; that turns off useful extensions and
103 # breaks some systems' header files.
105 # Ultrix and OSF/1 -std1
106 # HP-UX -Aa -D_HPUX_SOURCE
107 # SVR4 -Xc -D__EXTENSIONS__
108 for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
110 CC="$ac_save_CC $ac_arg"
112 [#if !defined(__STDC__) || __STDC__ != 1
115 /* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
117 # include <sys/types.h>
118 # include <sys/stat.h>
121 int test (int i, double x);
122 struct s1 {int (*f) (int a);};
123 struct s2 {int (*f) (double a);};],
124 [am_cv_prog_cc_stdc="$ac_arg"; break])
128 if test -z "$am_cv_prog_cc_stdc"; then
129 AC_MSG_RESULT([none needed])
131 AC_MSG_RESULT($am_cv_prog_cc_stdc)
133 case "x$am_cv_prog_cc_stdc" in
135 *) CC="$CC $am_cv_prog_cc_stdc" ;;
139 dnl----- AutoMake macros ------------------------------------- *@--IGNORE--@*
141 dnl --- *@-AM_CONDITIONAL-@* ---
145 dnl Synopsis: AM_CONDITIONAL(NAME, TEST)
147 dnl Arguments: NAME = name of the conditional
148 dnl TEST = a shell list to execute
150 dnl Use: Allows conditional sections in Makefiles.
152 AC_DEFUN(AM_CONDITIONAL,
163 dnl --- *@-AM_CYGWIN32-@* ---
165 dnl Author: Cygnus (I guess)
167 dnl Synopsis: AM_CYGWIN32
171 dnl Use: Check to see if we're running under Cygwin32, without using
172 dnl AC_CANONICAL_*. If so, set output variable EXEEXT to
173 dnl ".exe". Otherwise set it to "".
176 dnl You might think we can do this by checking for a cygwin32-specific
177 dnl cpp define. We can't, because cross-compilers that target
178 dnl cygwin32 don't use the .exe suffix. I don't know why.
179 AC_DEFUN(AM_CYGWIN32,
180 [AC_CACHE_CHECK(for Cygwin32 environment, am_cv_cygwin32,
181 [cat > conftest.$ac_ext << 'EOF'
186 if AC_TRY_EVAL(ac_link) && test -s conftest.exe; then
193 test "$am_cv_cygwin32" = yes && EXEEXT=.exe
196 dnl --- *@-AM_WITH_DMALLOC-@* ---
198 dnl Author: Franc,ois Pinard
200 dnl Synopsis: AM_WITH_DMALLOC
204 dnl Use: Links with `-dmalloc' if told to by the user.
206 ## ----------------------------------- ##
207 ## Check if --with-dmalloc was given. ##
208 ## From Franc,ois Pinard ##
209 ## ----------------------------------- ##
213 AC_DEFUN(AM_WITH_DMALLOC,
214 [AC_MSG_CHECKING(if malloc debugging is wanted)
216 [ --with-dmalloc use dmalloc, as in
217 ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz],
218 [if test "$withval" = yes; then
220 AC_DEFINE(WITH_DMALLOC)
221 LIBS="$LIBS -ldmalloc"
222 LDFLAGS="$LDFLAGS -g"
225 fi], [AC_MSG_RESULT(no)])
228 dnl --- *@-AM_FUNC_ERROR_AT_LINE-@* ---
230 dnl Author: Jim Meyering
232 dnl Synopsis: AM_FUNC_ERROR_AT_LINE
236 dnl Use: Use this if you use the GNU error.[ch].
238 dnl FIXME: Migrate into libit
240 AC_DEFUN(AM_FUNC_ERROR_AT_LINE,
241 [AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
242 [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
243 am_cv_lib_error_at_line=yes,
244 am_cv_lib_error_at_line=no)])
245 if test $am_cv_lib_error_at_line = no; then
246 LIBOBJS="$LIBOBJS error.o"
251 dnl --- *@-AM_INIT_GUILE_MODULE-@* ---
255 dnl Synopsis: AM_INIT_GUILE_MODULE(MODNAME)
257 dnl Arguments: MODNAME = value to initialize `module' variable with
259 dnl Use: This macro will automatically get the guile version from the
260 dnl top-level srcdir, and will initialize automake. It also
261 dnl defines the `module' variable.
263 AC_DEFUN([AM_INIT_GUILE_MODULE],[
264 . $srcdir/../GUILE-VERSION
265 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
266 AC_CONFIG_AUX_DIR(..)
270 dnl --- *@-AM_CONFIG_HEADER-@* ---
274 dnl Synopsis: AM_CONFIG_HEADER(HEADER ...)
276 dnl Arguments: HEADER = a header spec, as for AC_CONFIG_HEADER
278 dnl Use: Like AC_CONFIG_HEADER, but automatically create stamp file.
280 AC_DEFUN(AM_CONFIG_HEADER,
282 AC_CONFIG_HEADER([$1])
283 dnl When config.status generates a header, we must update the stamp-h file.
284 dnl This file resides in the same directory as the config header
285 dnl that is generated. We must strip everything past the first ":",
286 dnl and everything past the last "/".
287 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
288 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
289 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/
290 \)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
292 for am_file in <<$1>>; do
293 case " <<$>>CONFIG_HEADERS " in
294 *" <<$>>am_file "*<<)>>
295 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
298 am_indx=`expr "<<$>>am_indx" + 1`
302 dnl --- *@-AM_INIT_AUTOMAKE-@*
306 dnl Synopsis: AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
308 dnl Arguments: PACKAGE = package name
309 dnl VERSION = version number
310 dnl NO-DEFINE = if set, don't define package and version number
312 dnl Use: Do all the work for Automake. This macro actually does too
313 dnl much -- some checks are only needed if your package does
314 dnl certain things. But this isn't really a big deal.
318 AC_DEFUN(AM_INIT_AUTOMAKE,
319 [AC_REQUIRE([AC_PROG_INSTALL])
324 dnl test to see if srcdir already configured
325 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
326 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
329 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
330 AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
331 AC_REQUIRE([AM_SANITY_CHECK])
332 AC_REQUIRE([AC_ARG_PROGRAM])
333 dnl FIXME This is truly gross.
334 missing_dir=`cd $ac_aux_dir && pwd`
335 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
336 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
337 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
338 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
339 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
340 AC_REQUIRE([AC_PROG_MAKE_SET])])
342 dnl --- *@-AM_PROG_LEX-@* ---
344 dnl Author: Alexandre Oliva
346 dnl Synopsis: AM_PROG_LEX
350 dnl Use: Replacement for AC_PROG_LEX and AC_DECL_YYTEXT
353 dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
354 AC_DEFUN(AM_PROG_LEX,
355 [missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
356 AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
360 dnl --- *@-AM_PROG_LIBTOOL-@* ---
364 dnl Synopsis: AM_PROG_LIBTOOL
368 dnl Use: Configures `libtool' for the target architecture.
371 ## Configure libtool for the target system.
373 # serial 1 AM_PROG_LIBTOOL
374 AC_DEFUN(AM_PROG_LIBTOOL,
375 [AC_REQUIRE([AC_CANONICAL_HOST])
376 AC_REQUIRE([AC_PROG_CC])
377 AC_REQUIRE([AC_PROG_RANLIB])
379 # Always use our own libtool.
380 LIBTOOL='$(top_builddir)/libtool'
383 dnl Allow the --disable-shared flag to stop us from building shared libs.
384 AC_ARG_ENABLE(shared,
385 [ --enable-shared build shared libraries [default=yes]],
386 test "$enableval" = no && libtool_shared=" --disable-shared",
389 libtool_flags="$libtool_shared"
390 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
391 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
393 # Actually configure libtool. ac_aux_dir is where install-sh is found.
394 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LD="$LD" RANLIB="$RANLIB" \
395 $ac_aux_dir/ltconfig $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
396 || AC_MSG_ERROR([libtool configure failed])
399 dnl --- *@-AM_PATH_LISPDIR-@* ---
401 dnl Author: Ulrich Drepper
403 dnl Synopsis: AM_PATH_LISPDIR
407 dnl Use: Sets the variable `lispdir' to point to a place to install
408 dnl Emacs lisp files.
410 ## ------------------------
411 ## Emacs LISP file handling
412 ## From Ulrich Drepper
413 ## ------------------------
417 AC_DEFUN(AM_PATH_LISPDIR,
418 [# If set to t, that means we are running in a shell under Emacs.
419 # If you have an Emacs named "t", then use the full path.
420 test "$EMACS" = t && EMACS=
421 AC_PATH_PROG(EMACS, emacs xemacs, no)
422 if test $EMACS != "no"; then
423 AC_MSG_CHECKING([where .elc files should go])
424 dnl Set default value
425 lispdir="\$(datadir)/emacs/site-lisp"
426 if test "x$prefix" = "xNONE"; then
427 if test -d $ac_default_prefix/share/emacs/site-lisp; then
428 lispdir="\$(prefix)/share/emacs/site-lisp"
430 if test -d $ac_default_prefix/lib/emacs/site-lisp; then
431 lispdir="\$(prefix)/lib/emacs/site-lisp"
435 if test -d $prefix/share/emacs/site-lisp; then
436 lispdir="\$(prefix)/share/emacs/site-lisp"
438 if test -d $prefix/lib/emacs/site-lisp; then
439 lispdir="\$(prefix)/lib/emacs/site-lisp"
443 AC_MSG_RESULT($lispdir)
447 dnl --- *@-AM_MAINTAINTER_MODE-@* ---
449 dnl Author: Jim Meyering
451 dnl Synopsis: jm_MAINTAINER_MODE
455 dnl Use: Provides an option `--enable-maintainer-mode' which turns
456 dnl on rules which might normally be commented out. The
457 dnl substitution variable `MAINT' is set to be a comment when
458 dnl this option is disabled, which it is by default.
462 AC_DEFUN(AM_MAINTAINER_MODE,
463 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
464 dnl maintainer-mode is disabled by default
465 AC_ARG_ENABLE(maintainer-mode,
466 [ --enable-maintainer-mode enable make rules and dependencies not useful
467 (and sometimes confusing) to the casual installer],
468 USE_MAINTAINER_MODE=$enableval,
469 USE_MAINTAINER_MODE=no)
470 AC_MSG_RESULT($USE_MAINTAINER_MODE)
471 if test $USE_MAINTAINER_MODE = yes; then
480 dnl --- *@-AM_MISSING_PROG-@* ---
484 dnl Synopsis: AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
486 dnl Arguments: NAME = variable to set to the file's location
487 dnl PROGRAM = name of program to find
488 dnl DIRECTORY = directory to look in
490 dnl Use: Fakes existence of a useful GNU maintainer tool.
492 AC_DEFUN(AM_MISSING_PROG,
493 [AC_MSG_CHECKING(for working $2)
494 # Run test in a subshell; some versions of sh will print an error if
495 # an executable is not found, even if stderr is redirected.
496 # Redirect stdin to placate older versions of autoconf. Sigh.
497 if ($2 --version) < /dev/null > /dev/null 2>&1; then
502 AC_MSG_RESULT(missing)
506 dnl --- *@-AM_FUNC_MKTIME-@* ---
508 dnl Author: Jim Meyering
510 dnl Synopsis: AM_FUNC_MKTIME
514 dnl Use: Checks for a working mktime function.
516 AC_DEFUN(AM_FUNC_MKTIME,
517 [AC_REQUIRE([AC_HEADER_TIME])dnl
518 AC_CHECK_HEADERS(sys/time.h)
519 AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime,
521 changequote(<<, >>)dnl
522 <</* Test program from Paul Eggert (eggert@twinsun.com)
523 and Tony Leneis (tony@plaza.ds.adp.com). */
524 #if TIME_WITH_SYS_TIME
525 # include <sys/time.h>
529 # include <sys/time.h>
535 static time_t time_t_max;
537 /* Values we'll use to set the TZ environment variable. */
538 static const char *const tz_strings[] = {
539 NULL, "GMT0", "JST-9", "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
541 #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
547 if (mktime (localtime (&now)) != now)
549 now = time_t_max - now;
550 if (mktime (localtime (&now)) != now)
560 for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
563 delta = time_t_max / 997; /* a suitable prime number */
564 for (i = 0; i < N_STRINGS; i++)
567 putenv (tz_strings[i]);
569 for (t = 0; t <= time_t_max - delta; t += delta)
571 mktime_test ((time_t) 60 * 60);
572 mktime_test ((time_t) 60 * 60 * 24);
578 am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no,
579 dnl When crosscompiling, assume mktime is missing or broken.
580 am_cv_func_working_mktime=no)
582 if test $am_cv_func_working_mktime = no; then
583 LIBOBJS="$LIBOBJS mktime.o"
587 dnl --- *@-AM_FUNC_OBSTACK-@* ---
589 dnl Author: Jim Meyering
591 dnl Synopsis: AM_FUNC_OBSTACK
595 dnl Use: Checks for GNU obstacks.
597 AC_DEFUN(AM_FUNC_OBSTACK,
598 [AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
599 [AC_TRY_LINK([#include "obstack.h"],
600 [struct obstack *mem;obstack_free(mem,(char *) 0)],
601 am_cv_func_obstack=yes,
602 am_cv_func_obstack=no)])
603 if test $am_cv_func_obstack = yes; then
604 AC_DEFINE(HAVE_OBSTACK)
606 LIBOBJS="$LIBOBJS obstack.o"
610 dnl --- *@-AC_C_PROTOTYPES-@* ---
612 dnl Author: Franc,ois Pinard
614 dnl Synopsis: AC_C_PROTOTYPES
618 dnl Use: If the C compiler understands ANSI C, define `PROTOTYPES',
619 dnl and clear the `U' and `ANSI2KNR' variables. Otherwise,
620 dnl set `U' to be `_' and `ANSI2KNR' to be `./ansi2knr'.
624 AC_DEFUN(fp_C_PROTOTYPES,
625 [AC_REQUIRE([AM_PROG_CC_STDC])
626 AC_MSG_CHECKING([for function prototypes])
627 if test "$ac_cv_prog_cc_stdc" != no; then
629 AC_DEFINE(PROTOTYPES)
633 U=_ ANSI2KNR=./ansi2knr
636 AC_SUBST(ANSI2KNR)dnl
639 dnl --- *@-AM_PATH_GTK-@* ---
641 dnl Author: Owen Taylor
643 dnl Synopsis: AM_PATH_GTK(MIN-VERSION, [ACTION-IF-FOUND], [ACTION-IF-NOT])
645 dnl Arguments: MIN-VERSION = minimum version of GTK required
646 dnl ACTION-IF-FOUND = executed if GTK found OK
647 dnl ACTION-IF-NOT-FOUND = what to do if GTK not available
649 dnl Use: Sets up compilation environment suitably for GTK programming.
651 # Configure paths for GTK+
652 # Owen Taylor 97-11-3
654 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
655 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
657 AC_DEFUN(AM_PATH_GTK,
659 dnl Get the cflags and libraries from the gtk-config script
661 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
662 gtk_config_prefix="$withval", gtk_config_prefix="")
663 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
664 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
665 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
666 , enable_gtktest=yes)
668 if test x$gtk_config_exec_prefix != x ; then
669 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
670 if test x${GTK_CONFIG+set} != xset ; then
671 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
674 if test x$gtk_config_prefix != x ; then
675 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
676 if test x${GTK_CONFIG+set} != xset ; then
677 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
681 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
682 min_gtk_version=ifelse([$1], ,0.99.7,$1)
683 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
685 if test "$GTK_CONFIG" = "no" ; then
688 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
689 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
690 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
691 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
692 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
693 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
694 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
695 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
696 if test "x$enable_gtktest" = "xyes" ; then
697 ac_save_CFLAGS="$CFLAGS"
699 CFLAGS="$CFLAGS $GTK_CFLAGS"
700 LIBS="$LIBS $GTK_LIBS"
702 dnl Now check if the installed GTK is sufficiently new. (Also sanity
703 dnl checks the results of gtk-config to some extent
713 int major, minor, micro;
716 system ("touch conf.gtktest");
718 /* HP/UX 9 (%@#!) writes to sscanf strings */
719 tmp_version = g_strdup("$min_gtk_version");
720 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
721 printf("%s, bad version string\n", "$min_gtk_version");
725 if ((gtk_major_version != $gtk_config_major_version) ||
726 (gtk_minor_version != $gtk_config_minor_version) ||
727 (gtk_micro_version != $gtk_config_micro_version))
729 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
730 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
731 gtk_major_version, gtk_minor_version, gtk_micro_version);
732 printf ("*** was found! If gtk-config was correct, then it is best\n");
733 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
734 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
735 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
736 printf("*** required on your system.\n");
737 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
738 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
739 printf("*** before re-running configure\n");
743 if ((gtk_major_version > major) ||
744 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
745 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
751 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
752 gtk_major_version, gtk_minor_version, gtk_micro_version);
753 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
754 major, minor, micro);
755 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
757 printf("*** If you have already installed a sufficiently new version, this error\n");
758 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
759 printf("*** being found. The easiest way to fix this is to remove the old version\n");
760 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
761 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
762 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
763 printf("*** so that the correct libraries are found at run-time))\n");
768 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
769 CFLAGS="$ac_save_CFLAGS"
773 if test "x$no_gtk" = x ; then
775 ifelse([$2], , :, [$2])
778 if test "$GTK_CONFIG" = "no" ; then
779 echo "*** The gtk-config script installed by GTK could not be found"
780 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
781 echo "*** your path, or set the GTK_CONFIG environment variable to the"
782 echo "*** full path to gtk-config."
784 if test -f conf.gtktest ; then
787 echo "*** Could not run GTK test program, checking why..."
788 CFLAGS="$CFLAGS $GTK_CFLAGS"
789 LIBS="$LIBS $GTK_LIBS"
793 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
794 [ echo "*** The test program compiled, but did not run. This usually means"
795 echo "*** that the run-time linker is not finding GTK or finding the wrong"
796 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
797 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
798 echo "*** to the installed location Also, make sure you have run ldconfig if that"
799 echo "*** is required on your system"
801 echo "*** If you have an old version installed, it is best to remove it, although"
802 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
804 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
805 echo "*** came with the system with the command"
807 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
808 [ echo "*** The test program failed to compile or link. See the file config.log for the"
809 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
810 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
811 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
812 CFLAGS="$ac_save_CFLAGS"
818 ifelse([$3], , :, [$3])
825 dnl --- *@-AC_TYPE_PTRDIFF_T-@* ---
827 dnl Author: Ulrich Drepper
829 dnl Synopsis: AC_TYPE_PTRDIFF_T
833 dnl Use: Sets HAVE_PTRDIFF_T if the type exists.
835 AC_DEFUN(AM_TYPE_PTRDIFF_T,
836 [AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
837 [AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
838 am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
839 if test $am_cv_type_ptrdiff_t = yes; then
840 AC_DEFINE(HAVE_PTRDIFF_T)
844 dnl --- *@-AM_WITH_REGEX-@* ---
846 dnl Author: Unknown (possibly Franc,ois Pinard)
848 dnl Synopsis: AM_WITH_REGEX
853 dnl The idea is to distribute rx.[hc] and regex.[hc] together,
854 dnl for a while. The WITH_REGEX symbol (which should also be
855 dnl documented in acconfig.h) is used to decide which of regex.h
856 dnl or rx.h should be included in the application. If
857 dnl `./configure --with-regex' is given (the default), the
858 dnl package will use gawk's regex. If `./configure
859 dnl --without-regex', a check is made to see if rx is already
860 dnl installed, as with newer Linux'es. If not found, the package
861 dnl will use the rx from the distribution. If found, the package
862 dnl will use the system's rx which, on Linux at least, will
863 dnl result in a smaller executable file.
865 AC_DEFUN(AM_WITH_REGEX,
866 [AC_MSG_CHECKING(which of GNU rx or gawk's regex is wanted)
868 [ --without-regex use GNU rx in lieu of gawk's regex for matching],
869 [test "$withval" = yes && am_with_regex=1],
871 if test -n "$am_with_regex"; then
873 AC_DEFINE(WITH_REGEX)
874 AC_CACHE_CHECK([for GNU regex in libc], am_cv_gnu_regex,
875 AC_TRY_LINK([], [extern int re_max_failures; re_max_failures = 1],
876 am_cv_gnu_regex=yes, am_cv_gnu_regex=no))
877 if test $am_cv_gnu_regex = no; then
878 LIBOBJS="$LIBOBJS regex.o"
882 AC_CHECK_FUNC(re_rx_search, , [LIBOBJS="$LIBOBJS rx.o"])
887 dnl --- *@-AM_SANITY_CHECK-@*
891 dnl Synopsis: AM_SANITY_CHECK
895 dnl Use: Check for build environment sanity.
897 AC_DEFUN(AM_SANITY_CHECK,
898 [AC_MSG_CHECKING([whether build environment is sane])
901 echo timestamp > conftestfile
902 # Do `set' in a subshell so we don't clobber the current shell's
903 # arguments. Must try -L first in case configure is actually a
904 # symlink; some systems play weird games with the mod time of symlinks
905 # (eg FreeBSD returns the mod time of the symlink's containing
908 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
909 if test "$@" = "X"; then
911 set X `ls -t $srcdir/configure conftestfile`
913 test "[$]2" = conftestfile
919 AC_MSG_ERROR([newly created file is older than distributed files!
920 Check your system clock])
925 dnl --- *@-AM_FUNC_STRDOD-@* ---
927 dnl Author: Jim Meyering
929 dnl Synopsis: AM_FUNC_STRTOD
933 dnl Use: Checks for a working strtod function.
935 ## Copyright (C) 1996 Free Software Foundation, Inc.
937 ## This program is free software; you can redistribute it and/or modify
938 ## it under the terms of the GNU General Public License as published by
939 ## the Free Software Foundation; either version 2, or (at your option)
940 ## any later version.
942 ## This program is distributed in the hope that it will be useful,
943 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
944 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
945 ## GNU General Public License for more details.
947 ## You should have received a copy of the GNU General Public License
948 ## along with this program; if not, write to the Free Software
949 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
952 ## From Jim Meyering.
956 ## @defmac AC_FUNC_STRTOD
957 ## @maindex FUNC_STRTOD
959 ## If the @code{strtod} function is not available, or does not work
960 ## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
961 ## variable @code{LIBOBJS}.
964 AC_DEFUN(AM_FUNC_STRTOD,
965 [AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
972 /* Some versions of Linux strtod mis-parse strings with leading '+'. */
973 char *string = " +69";
976 value = strtod (string, &term);
977 if (value != 69 || term != (string + 4))
982 /* Under Solaris 2.4, strtod returns the wrong value for the
983 terminating character under some conditions. */
984 char *string = "NaN";
986 strtod (string, &term);
987 if (term != string && *(term - 1) == 0)
992 ], am_cv_func_strtod=yes, am_cv_func_strtod=no, am_cv_func_strtod=no)])
993 test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
995 am_cv_func_strtod_needs_libm=no
996 if test $am_cv_func_strtod = no; then
998 if test $ac_cv_func_pow = no; then
999 AC_CHECK_LIB(m, pow, [am_cv_func_strtod_needs_libm=yes],
1000 [AC_MSG_WARN(can't find library containing definition of pow)])
1005 dnl --- *@-AM_SYS_POSIX_TERMIOS-@* ---
1007 dnl Author: Jim Meyering
1009 dnl Synopsis: AM_SYS_POSIX_TERMIOS
1013 dnl Use: Checks for a POSIX termios.h.
1015 AC_DEFUN(AM_SYS_POSIX_TERMIOS,
1016 [AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
1017 [AC_TRY_LINK([#include <sys/types.h>
1019 #include <termios.h>],
1020 [/* SunOS 4.0.3 has termios.h but not the library calls. */
1022 am_cv_sys_posix_termios=yes,
1023 am_cv_sys_posix_termios=no)])
1026 dnl----- Macros by Mark Wooding ------------------------------ *@--IGNORE--@*
1028 dnl --- *@-mdw_REQUIRE-@* ---
1030 dnl Author: Mark Wooding
1032 dnl Synopsis: mdw_REQUIRE(MACRO, ARGS...)
1034 dnl Arguments: MACRO = name of a macro which should have been called
1035 dnl ARGS = arguments to pass
1037 dnl Use: Like `AC_REQUIRE', only it handles arguments.
1039 AC_DEFUN(mdw_REQUIRE,
1040 [ifdef([AC_PROVIDE_$1], ,
1041 [AC_DIVERT_PUSH(builtin(eval, AC_DIVERSION_CURRENT - 1))dnl
1046 dnl --- *@-mdw_CURSES-@* ---
1048 dnl Author: Mark Wooding
1050 dnl Synopsis: mdw_CURSES
1054 dnl Use: Searches for a `curses' library (one of `ncurses' or
1055 dnl `curses') using mdw_CHECK_MANYLIBS. If one is found, the
1056 dnl preprocessor macro HAVE_CURSES is defined, and a search is
1057 dnl made for a `curses' header file (one of <ncurses.h>,
1058 dnl <ncurses/ncurses.h> or <curses.h>) using AC_CHECK_HEADERS
1059 dnl and the appropriate preprocessor symbol is defined.
1060 dnl Finally, a check is made for the function `wresize' using
1063 AC_DEFUN(mdw_CURSES,
1064 [mdw_CHECK_MANYLIBS(newwin, ncurses curses, AC_DEFINE(HAVE_CURSES))
1065 if test $mdw_cv_lib_newwin != no; then
1066 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h curses.h], [break])
1067 if test "$ac_cv_header_ncurses_h" = "no" &&
1068 test "$ac_cv_header_ncurses_ncurses_h" = "no" &&
1069 test "$ac_cv_header_curses_h" = "no"; then
1070 AC_MSG_WARN([couldn't find a \`curses' header. Assuming \`curses.h'.])
1071 AC_DEFINE(HAVE_CURSES_H)
1073 AC_CHECK_FUNCS(wresize)
1076 dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
1078 dnl Author: Mark Wooding
1080 dnl Synopsis: mdw_TYPE_SSIZE_T
1084 dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
1085 dnl it defaults to `int'.
1087 AC_DEFUN(mdw_TYPE_SSIZE_T,
1088 [AC_REQUIRE([AC_HEADER_STDC])
1089 AC_CACHE_CHECK(for ssize_t, mdw_cv_ssize_t,
1090 [AC_EGREP_CPP(ssize_t,
1091 [#include <sys/types.h>
1099 [mdw_cv_ssize_t=yes], [mdw_cv_ssize_t=no])])
1100 if test $mdw_cv_ssize_t = no; then
1101 AC_DEFINE(ssize_t, int)
1104 dnl --- *@-mdw_DECL_ENVIRON-@* ---
1106 dnl Author: Mark Wooding
1108 dnl Synopsis: mdw_DECL_ENVIRON
1112 dnl Use: Searches for a declaration of the global `environ' variable.
1113 dnl If one is found in one of the `usual' places, DECL_ENVIRON
1114 dnl is defined as a preprocessor symbol.
1116 AC_DEFUN(mdw_DECL_ENVIRON,
1117 [AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
1118 [AC_EGREP_CPP(environ,
1119 [#include <sys/types.h>
1126 #endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
1127 if test $mdw_cv_environ = yes; then
1128 AC_DEFINE(DECL_ENVIRON)
1131 dnl --- *@-mdw_CHECK_MANYLIBS-@* ---
1133 dnl Author: Mark Wooding
1135 dnl Synopsis: mdw_CHECK_MANYLIBS(FUNC, LIBS, [IF-FOUND], [IF-NOT-FOUND],
1136 dnl [INCLUDES], [ARGS])
1138 dnl Arguments: FUNC = a function to try to find
1139 dnl LIBS = a whitespace-separated list of libraries to search
1140 dnl IF-FOUND = what to do when the function is found
1141 dnl IF-NOT-FOUND = what to do when the function isn't found
1142 dnl INCLUDES = other include files to add
1143 dnl ARGS = arguments to pass the function
1145 dnl Use: Searches for a library which defines FUNC. It first tries
1146 dnl without any libraries; then it tries each library specified
1147 dnl in LIBS in turn. If it finds a match, it adds the
1148 dnl appropriate library to `LIBS'.
1150 dnl This is particularly handy under DIREIX: if you link with
1151 dnl `-lnsl' then you get non-NIS-aware versions of getpwnam and
1152 dnl so on, which is clearly a Bad Thing.
1154 AC_DEFUN(mdw_CHECK_MANYLIBS,
1155 [AC_CACHE_CHECK([for library containing $1], [mdw_cv_lib_$1],
1156 [mdw_save_LIBS="$LIBS"
1158 AC_TRY_LINK([$5], [$1($6)], [mdw_cv_lib_$1="none required"])
1159 test "$mdw_cv_lib_$1" = "no" && for i in $2; do
1160 LIBS="-l$i $mdw_save_LIBS"
1161 AC_TRY_LINK([$5], [$1($6)],
1162 [mdw_cv_lib_$1="-l$i"
1165 LIBS="$mdw_save_LIBS"])
1166 if test "$mdw_cv_lib_$1" != "no"; then
1167 test "$mdw_cv_lib_$1" = "none required" || LIBS="$mdw_cv_lib_$1 $LIBS"
1173 dnl --- *@-mdw__PERL_VERSION-@* ---
1175 dnl AC_DEFUN relies on `[', `]' being quotes, so I have to drop down a level.
1178 define(mdw__PERL_VERSION, <<$1 -e 'exit ($] < $2);' >&5 2>&5>>)
1181 dnl --- *@-mdw_PROG_PERL-@* ---
1183 dnl Author: Mark Wooding
1185 dnl Synopsis: mdw_PROG_PERL(VERSION, [IF-FOUND], [IF-NOT-FOUND])
1187 dnl Arguments: VERSION = version number of Perl required
1188 dnl IF-FOUND = what to do if it's found
1189 dnl IF-NOT-FOUND = what to do if it isn't
1191 dnl Use: Attempts to find a working version of Perl with a late
1192 dnl enough version number. It supplies an option `--with-perl'
1193 dnl to allow the user to provide a Perl interpreter. If one
1194 dnl isn't provided explicitly, it searches for `perl' and `perl5'
1195 dnl in the current PATH, asking them whether they have a late
1196 dnl enough version number. The path of the working Perl is
1197 dnl put into the `PERL' environment variable; `AC_SUBST' is used
1198 dnl to substitute its value into Perl scripts. If there is no
1199 dnl Perl to be found, the value of `PERL' is set to be `none'.
1201 AC_DEFUN(mdw_PROG_PERL,
1202 [AC_ARG_WITH([perl],
1203 [ --with-perl=PERL specify path to Perl version $1 or newer],
1205 if test -z "$PERL"; then
1206 [AC_CACHE_CHECK([for Perl version $1 or later], mdw_cv_prog_perl,
1207 [mdw_cv_prog_perl="none"
1208 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
1209 case $p in /*) ;; *) p=`pwd`/$p ;; esac
1210 if mdw__PERL_VERSION(["$p/perl"], $1); then
1211 mdw_cv_prog_perl="$p/perl"
1214 if mdw__PERL_VERSION(["$p/perl5"], $1); then
1215 mdw_cv_prog_perl="$p/perl5"
1219 PERL="$mdw_cv_prog_perl"])
1223 if test "$PERL" = "none"; then :
1229 dnl --- *@-mdw_CHECK_PERL-@* ---
1231 dnl Author: Mark Wooding
1233 dnl Synopsis: mdw_CHECK_PERL(VERSION)
1235 dnl Arguments: VERSION = version number of Perl required
1237 dnl Use: Verifies that the Perl interpreter in the `PERL' shell
1238 dnl variable actually works and is of the right version. If it's
1239 dnl not, an error is raised and configuration is aborted.
1241 AC_DEFUN(mdw_CHECK_PERL,
1242 [mdw_REQUIRE([mdw_PROG_PERL], [$1])
1243 AC_MSG_CHECKING([whether Perl ($PERL) works])
1244 if test "$PERL" != "none" && mdw__PERL_VERSION("$PERL", $1); then
1245 AC_MSG_RESULT([yes])
1248 AC_MSG_ERROR([Perl version $1 or newer not found.
1249 If you have a recent enough Perl, and I just failed to find it, try using
1250 the --with-perl=PERL option to give me an explicit pathname.])
1253 dnl --- *@-mdw_PERLLIB_CHECK-@* ---
1255 dnl Author: Mark Wooding
1257 dnl Synopsis: mdw_PERLLIB_CHECK(LIBRARY)
1259 dnl Arguments: LIBRARY = name of a Perl library to check for
1261 dnl Use: Ensures that a Perl script can `use LIBRARY;'. If it can,
1262 dnl all's well and good; if it can't, `LIBRARY.pm' is added to
1263 dnl the variable `NEEDED_PERLLIBS' and a line which adds
1264 dnl `pkgdatadir' to Perl's `@INC' array is placed in the
1265 dnl variable `INC_PERLLIBS'; `AC_SUBST' is called for both of
1266 dnl these variables. It's expected that `NEEDED_PERLLIBS' will
1267 dnl be used in the `Makefile.in' to decide which versions from
1268 dnl the distribution need installing.
1270 dnl This macro isn't terribly useful in the general case. It
1271 dnl Also implicitly assumes that `$PERL' is Perl 5 or later.
1273 AC_DEFUN(mdw__PERLLIB_INIT,
1274 [AC_SUBST(INC_PERLLIBS)dnl
1275 AC_SUBST(NEEDED_PERLLIBS)dnl
1278 AC_DEFUN(mdw_PERLLIB_CHECK,
1279 [AC_REQUIRE([mdw__PERLLIB_INIT])
1280 mdw_REQUIRE([mdw_CHECK_PERL], 5)
1281 AC_CACHE_CHECK([for Perl library $1], mdw_cv_perllib_$1,
1282 [if $PERL -e 'use $1;' >&5 2>&5; then
1283 mdw_cv_perllib_$1="yes"
1285 mdw_cv_perllib_$1="no"
1288 if test "$mdw_cv_perllib_$1" = "no"; then
1289 NEEDED_PERLLIBS="$NEEDED_PERLLIBS $1.pm"
1291 # --- Deal with autoconf lossage ---
1293 # It doesn't want to define `prefix' until rather later on, so I have
1296 if test -z "$INC_PERLLIBS"; then
1297 mdw_old_prefix="$prefix"
1298 test "$prefix" = "NONE" && prefix="$ac_default_prefix";
1299 INC_PERLLIBS="BEGIN { push @INC, \"`eval echo $datadir/$PACKAGE`\"; }"
1300 prefix="$mdw_old_prefix";
1304 dnl --- *@-mdw_GCC_FLAGS-@* ---
1306 dnl Author: Mark Wooding
1308 dnl Synopsis: mdw_GCC_FLAGS([FLAGS], [CFLAGS], [C++FLAGS])
1310 dnl Arguments: FLAGS = GCC compiler flags to add (default is
1311 dnl `-pedantic -Wall')
1312 dnl CFLAGS = GCC C compiler flags to add (default is empty)
1313 dnl C++FLAGS = GCC C++ compiler flags to add (default is
1314 dnl `-fhandle-exceptions').
1316 dnl Use: If the C compiler is GCC, add the compiler flags.
1318 AC_DEFUN(mdw_GCC_FLAGS,
1319 [if test "$GCC" = "yes"; then
1320 CFLAGS="$CFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1321 CFLAGS="$CFLAGS ifelse([$2], [], [], [$2])"
1323 if test "$GXX" = "yes"; then
1324 CXXFLAGS="$CXXFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1325 CXXFLAGS="$CXXFLAGS ifelse([$3], [], [-fhandle-exceptions], [$3])"
1328 dnl *@-mdw_INIT_LIB-@*
1330 dnl Author: Mark Wooding
1332 dnl Synopsis: mdw_INIT_LIB(LIB, NAME, VERSION, [PACKAGE])
1334 dnl Arguments: LIB = the name of the library (and the package)
1335 dnl NAME = a presentable version of the library's name
1336 dnl VERSION = version of the library
1337 dnl PACKAGE = package name to pass on to AM_INIT_AUTOMAKE
1339 dnl Use: Sets up various useful variables. This macro calls
1340 dnl AM_INIT_AUTOMAKE, which might be considered useful. It also
1341 dnl provides variables for the use of `lib-config.in'.
1343 AC_DEFUN([mdw_INIT_LIB],
1344 [AM_INIT_AUTOMAKE(ifelse([$4], [], [$1], [$4]), [$3])
1345 LIBRARY="$1" AC_SUBST(LIBRARY)
1346 LIBNAME="$2" AC_SUBST(LIBNAME)])
1348 dnl *@-mdw_LIB_CONFIG-@*
1350 dnl Author: Mark Wooding
1352 dnl Synopsis: mdw_LIB_CONFIG(LIB, NAME, VERSION, IF-FOUND, IF-NOT-FOUND)
1354 dnl Arguments: LIB = the name of the library (and its configuration program)
1355 dnl NAME = a presentable version of the library's name
1356 dnl VERSION = version of library required
1357 dnl IF-FOUND = what to do if found
1358 dnl IF-NOT-FOUND = what to do if not found
1360 dnl Use: Configures a library client program, using a configuration
1361 dnl script provided by the library maintainer.
1363 dnl The default version is 1.0.0pre0; the default action is to
1364 dnl add everything to the CFLAGS and LIBS variables, and complain
1365 dnl if the library couldn't be found.
1367 dnl The variable LIB_VERSION contains the version number of
1368 dnl the library; LIB_CFLAGS is the C compiler flags required
1369 dnl and LIB_LIBS is the linker flags.
1371 AC_DEFUN([mdw_LIB_CONFIG],
1372 [pushdef([upname], translit([$1], [a-z], [A-Z]))dnl
1373 AC_MSG_CHECKING([for $2 library])
1374 if $1-config --check $3 >/dev/null 2>&1; then
1375 upname[]_VERSION=`$1-config --version`
1376 upname[]_CFLAGS=`$1-config --cflags`
1377 upname[]_LIBS=`$1-config --libs`
1378 AC_SUBST(upname[]_VERSION)
1379 AC_SUBST(upname[]_CFLAGS)
1380 AC_SUBST(upname[]_LIBS)
1382 [CFLAGS="$CFLAGS $upname[]_CFLAGS"
1383 LIBS="$upname[]_LIBS $LIBS"],
1385 AC_MSG_RESULT([$upname[]_VERSION])
1388 AC_MSG_ERROR([$2 library not found or too old.]),
1390 AC_MSG_RESULT([not found])
1395 dnl Author: Mark Wooding
1397 dnl Synopsis: mdw_MLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1399 dnl Arguments: VERSION = version of library required
1400 dnl IF-FOUND = what to do if found
1401 dnl IF-NOT-FOUND = what to do if not found
1403 dnl Use: Configures an mLib client program.
1405 AC_DEFUN([mdw_MLIB], [mdw_LIB_CONFIG(mLib, mLib, $@)])
1409 dnl Author: Mark Wooding
1411 dnl Synopsis: mdw_MGLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1413 dnl Arguments: VERSION = version of library required
1414 dnl IF-FOUND = what to do if found
1415 dnl IF-NOT-FOUND = what to do if not found
1417 dnl Use: Configures an mgLib client program.
1419 AC_DEFUN([mdw_MGLIB],
1420 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1421 mdw_LIB_CONFIG(mgLib, mgLib, $@)])
1423 dnl *@-mdw_CATACOMB-@*
1425 dnl Author: Mark Wooding
1427 dnl Synopsis: mdw_CATACOMB([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1429 dnl Arguments: VERSION = version of Catacomb required
1430 dnl IF-FOUND = what to do if found
1431 dnl IF-NOT-FOUND = what to do if not found
1433 dnl Use: Configures the program as a Catacomb client.
1435 AC_DEFUN([mdw_CATACOMB],
1436 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1437 mdw_LIB_CONFIG(catacomb, Catacomb, $@)])
1441 dnl Author: Mark Wooding
1443 dnl Synopsis: mdw_PK([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1445 dnl Arguments: VERSION = version of PK required
1446 dnl IF-FOUND = what to do if found
1447 dnl IF-NOT-FOUND = what to do if not found
1449 dnl Use: Configures the program as a PK client.
1452 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1453 mdw_LIB_CONFIG(pk, PK, $@)])
1455 dnl --- *@-mdw_OPT_NDEBUG-@* ---
1457 dnl Author: Mark Wooding
1459 dnl Synopsis: mdw_OPT_NDEBUG
1463 dnl Use: Turns off the `NDEBUG' flag if the user wants to do
1466 AC_DEFUN(mdw_OPT_NDEBUG,
1467 [AC_ARG_ENABLE(debugging,
1468 [ --enable-debugging spews vast swathes of useless information],
1469 [if test "$enableval" = "no"; then
1470 AC_DEFINE(NDEBUG, 1)
1472 [AC_DEFINE(NDEBUG, 1)])])
1474 dnl --- *@-mdw_OPT_EFENCE-@* ---
1476 dnl Author: Mark Wooding
1478 dnl Synopsis: mdw_OPT_EFENCE
1482 dnl Use: Links with the Electric Fence library.
1484 AC_DEFUN(mdw_OPT_EFENCE,
1485 [AC_ARG_WITH(electric-fence,
1486 [ --with-electric-fence link programs with Electric Fence],
1487 [if test "$withval" = "yes"; then
1488 AC_CHECK_LIB(efence, malloc)
1491 dnl --- *@-mdw_OPT_mLib_DEBUG-@* ---
1493 dnl Author: Mark Wooding
1495 dnl Synopsis: mdw_OPT_mLib_DEBUG(PROGRAM)
1499 dnl Use: Provides options for mLib debugging. In particular, the
1500 dnl following are defined:
1502 dnl --enable-tracing turns off the NTRACE variable
1503 dnl --enable-track turns on malloc tracking
1504 dnl --enable-blame-PROGRAM tracks malloc contexts in PROGRAM
1506 dnl There must be a separate `blame' option, so that the various
1507 dnl blame options work properly.
1509 AC_DEFUN(mdw_OPT_mLib_DEBUG,
1513 AC_ARG_ENABLE(tracing,
1514 [ --enable-tracing enable output of tracing information],
1515 [if test "$enableval" = "no"; then
1516 AC_DEFINE(NTRACE, 1)
1518 [AC_DEFINE(NTRACE, 1)])
1520 AC_ARG_ENABLE(track,
1521 [ --enable-track enable tracking of malloc and free],
1522 [AC_DEFINE(TRACK_ENABLE, 1)])
1524 AC_ARG_ENABLE(blame-$1,
1526 track malloc contexts while in $1],
1527 [AC_DEFINE(TRACK_BLAME, 1)])])
1529 dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*