1 dnl -*-fundamental-*- *@--GLOB-HEADER--@*
3 dnl $Id: aclocal.glob,v 1.9 2000/08/15 21:37:49 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.9 2000/08/15 21:37:49 mdw
32 dnl New initialization macro for libraries, and a new base client macro for
33 dnl finding libraries with an appropriate version.
35 dnl Revision 1.8 1999/11/26 01:23:17 mdw
36 dnl And support for MXD (not yet released).
38 dnl Revision 1.7 1999/11/11 20:03:58 mdw
39 dnl Add support for mgLib too.
41 dnl Revision 1.6 1999/11/11 17:49:33 mdw
42 dnl New macros for configuring clients of mLib and Catacomb.
44 dnl Revision 1.5 1999/07/27 18:27:37 mdw
45 dnl Fix typo in header line for mdw_DECL_ENVIRON.
47 dnl Revision 1.4 1999/07/26 23:44:32 mdw
48 dnl Reorder and tidy documentation.
50 dnl Revision 1.3 1999/07/17 10:27:44 mdw
51 dnl More useful macros added.
53 dnl Revision 1.2 1999/05/13 22:57:23 mdw
54 dnl Change `-ise' to `-ize' throughout.
56 dnl Revision 1.1.1.1 1999/05/05 19:23:47 mdw
57 dnl New import. The old CVS repository was lost in a disk disaster.
60 dnl----- Common files distribution --------------------------- *@--NOTICE--@*
62 dnl $Id: aclocal.glob,v 1.9 2000/08/15 21:37:49 mdw Exp $
64 dnl --- *@-AC_PROG_CC_STDC-@* ---
66 dnl Author: Franc,ois Pinard
68 dnl Synopsis: AC_PROG_CC_STDC
72 dnl Use: If the C compiler in not in ANSI C mode by default, try to
73 dnl add an option to output variable `CC' to make it so. This
74 dnl macro tries various options that select ANSI C on some system
75 dnl or another. It considers the compiler to be in ANSI C mode
76 dnl if it defines `__STDC__' to 1 and handles function prototypes
79 dnl If you use this macro, you should check after calling it
80 dnl whether the C compiler has been set to accept ANSI C; if not,
81 dnl the shell variable `ac_cv_prog_cc_stdc' is set to `no'. If
82 dnl you wrote your source code in ANSI C, you can make an
83 dnl un-ANSIfied copy of it by using the program `ansi2knr', which
84 dnl comes with Ghostscript.
86 dnl (documentation by Franc,ois Pinard)
88 AC_DEFUN(AM_PROG_CC_STDC,
89 [AC_REQUIRE([AC_PROG_CC])
90 AC_BEFORE([$0], [AC_C_INLINE])
91 AC_BEFORE([$0], [AC_C_CONST])
92 AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
93 AC_CACHE_VAL(am_cv_prog_cc_stdc,
94 [am_cv_prog_cc_stdc=no
96 # Don't try gcc -ansi; that turns off useful extensions and
97 # breaks some systems' header files.
99 # Ultrix and OSF/1 -std1
100 # HP-UX -Aa -D_HPUX_SOURCE
101 # SVR4 -Xc -D__EXTENSIONS__
102 for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
104 CC="$ac_save_CC $ac_arg"
106 [#if !defined(__STDC__) || __STDC__ != 1
109 /* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
111 # include <sys/types.h>
112 # include <sys/stat.h>
115 int test (int i, double x);
116 struct s1 {int (*f) (int a);};
117 struct s2 {int (*f) (double a);};],
118 [am_cv_prog_cc_stdc="$ac_arg"; break])
122 if test -z "$am_cv_prog_cc_stdc"; then
123 AC_MSG_RESULT([none needed])
125 AC_MSG_RESULT($am_cv_prog_cc_stdc)
127 case "x$am_cv_prog_cc_stdc" in
129 *) CC="$CC $am_cv_prog_cc_stdc" ;;
133 dnl----- AutoMake macros ------------------------------------- *@--IGNORE--@*
135 dnl --- *@-AM_CONDITIONAL-@* ---
139 dnl Synopsis: AM_CONDITIONAL(NAME, TEST)
141 dnl Arguments: NAME = name of the conditional
142 dnl TEST = a shell list to execute
144 dnl Use: Allows conditional sections in Makefiles.
146 AC_DEFUN(AM_CONDITIONAL,
157 dnl --- *@-AM_CYGWIN32-@* ---
159 dnl Author: Cygnus (I guess)
161 dnl Synopsis: AM_CYGWIN32
165 dnl Use: Check to see if we're running under Cygwin32, without using
166 dnl AC_CANONICAL_*. If so, set output variable EXEEXT to
167 dnl ".exe". Otherwise set it to "".
170 dnl You might think we can do this by checking for a cygwin32-specific
171 dnl cpp define. We can't, because cross-compilers that target
172 dnl cygwin32 don't use the .exe suffix. I don't know why.
173 AC_DEFUN(AM_CYGWIN32,
174 [AC_CACHE_CHECK(for Cygwin32 environment, am_cv_cygwin32,
175 [cat > conftest.$ac_ext << 'EOF'
180 if AC_TRY_EVAL(ac_link) && test -s conftest.exe; then
187 test "$am_cv_cygwin32" = yes && EXEEXT=.exe
190 dnl --- *@-AM_WITH_DMALLOC-@* ---
192 dnl Author: Franc,ois Pinard
194 dnl Synopsis: AM_WITH_DMALLOC
198 dnl Use: Links with `-dmalloc' if told to by the user.
200 ## ----------------------------------- ##
201 ## Check if --with-dmalloc was given. ##
202 ## From Franc,ois Pinard ##
203 ## ----------------------------------- ##
207 AC_DEFUN(AM_WITH_DMALLOC,
208 [AC_MSG_CHECKING(if malloc debugging is wanted)
210 [ --with-dmalloc use dmalloc, as in
211 ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz],
212 [if test "$withval" = yes; then
214 AC_DEFINE(WITH_DMALLOC)
215 LIBS="$LIBS -ldmalloc"
216 LDFLAGS="$LDFLAGS -g"
219 fi], [AC_MSG_RESULT(no)])
222 dnl --- *@-AM_FUNC_ERROR_AT_LINE-@* ---
224 dnl Author: Jim Meyering
226 dnl Synopsis: AM_FUNC_ERROR_AT_LINE
230 dnl Use: Use this if you use the GNU error.[ch].
232 dnl FIXME: Migrate into libit
234 AC_DEFUN(AM_FUNC_ERROR_AT_LINE,
235 [AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
236 [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
237 am_cv_lib_error_at_line=yes,
238 am_cv_lib_error_at_line=no)])
239 if test $am_cv_lib_error_at_line = no; then
240 LIBOBJS="$LIBOBJS error.o"
245 dnl --- *@-AM_INIT_GUILE_MODULE-@* ---
249 dnl Synopsis: AM_INIT_GUILE_MODULE(MODNAME)
251 dnl Arguments: MODNAME = value to initialize `module' variable with
253 dnl Use: This macro will automatically get the guile version from the
254 dnl top-level srcdir, and will initialize automake. It also
255 dnl defines the `module' variable.
257 AC_DEFUN([AM_INIT_GUILE_MODULE],[
258 . $srcdir/../GUILE-VERSION
259 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
260 AC_CONFIG_AUX_DIR(..)
264 dnl --- *@-AM_CONFIG_HEADER-@* ---
268 dnl Synopsis: AM_CONFIG_HEADER(HEADER ...)
270 dnl Arguments: HEADER = a header spec, as for AC_CONFIG_HEADER
272 dnl Use: Like AC_CONFIG_HEADER, but automatically create stamp file.
274 AC_DEFUN(AM_CONFIG_HEADER,
276 AC_CONFIG_HEADER([$1])
277 dnl When config.status generates a header, we must update the stamp-h file.
278 dnl This file resides in the same directory as the config header
279 dnl that is generated. We must strip everything past the first ":",
280 dnl and everything past the last "/".
281 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
282 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
283 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/
284 \)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
286 for am_file in <<$1>>; do
287 case " <<$>>CONFIG_HEADERS " in
288 *" <<$>>am_file "*<<)>>
289 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
292 am_indx=`expr "<<$>>am_indx" + 1`
296 dnl --- *@-AM_INIT_AUTOMAKE-@*
300 dnl Synopsis: AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
302 dnl Arguments: PACKAGE = package name
303 dnl VERSION = version number
304 dnl NO-DEFINE = if set, don't define package and version number
306 dnl Use: Do all the work for Automake. This macro actually does too
307 dnl much -- some checks are only needed if your package does
308 dnl certain things. But this isn't really a big deal.
312 AC_DEFUN(AM_INIT_AUTOMAKE,
313 [AC_REQUIRE([AM_PROG_INSTALL])
318 dnl test to see if srcdir already configured
319 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
320 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
323 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
324 AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
327 dnl FIXME This is truly gross.
328 missing_dir=`cd $ac_aux_dir && pwd`
329 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
330 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
331 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
332 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
333 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
336 dnl --- *@-AM_PROG_INSTALL-@* ---
338 dnl Author: Franc,ois Pinard
340 dnl Synopsis: AM_PROG_INSTALL
344 dnl Use: Calls `AC_PROG_INSTALL' to find an installer. Then it sets
345 dnl `INSTALL_SCRIPT' to a suitable value if necessary.
349 AC_DEFUN(AM_PROG_INSTALL,
351 test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755'
352 AC_SUBST(INSTALL_SCRIPT)dnl
355 dnl --- *@-AM_PROG_LEX-@* ---
357 dnl Author: Alexandre Oliva
359 dnl Synopsis: AM_PROG_LEX
363 dnl Use: Replacement for AC_PROG_LEX and AC_DECL_YYTEXT
366 dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
367 AC_DEFUN(AM_PROG_LEX,
368 [missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
369 AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
373 dnl --- *@-AM_PROG_LIBTOOL-@* ---
377 dnl Synopsis: AM_PROG_LIBTOOL
381 dnl Use: Configures `libtool' for the target architecture.
384 ## Configure libtool for the target system.
386 # serial 1 AM_PROG_LIBTOOL
387 AC_DEFUN(AM_PROG_LIBTOOL,
388 [AC_REQUIRE([AC_CANONICAL_HOST])
389 AC_REQUIRE([AC_PROG_CC])
390 AC_REQUIRE([AC_PROG_RANLIB])
392 # Always use our own libtool.
393 LIBTOOL='$(top_builddir)/libtool'
396 dnl Allow the --disable-shared flag to stop us from building shared libs.
397 AC_ARG_ENABLE(shared,
398 [ --enable-shared build shared libraries [default=yes]],
399 test "$enableval" = no && libtool_shared=" --disable-shared",
402 libtool_flags="$libtool_shared"
403 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
404 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
406 # Actually configure libtool. ac_aux_dir is where install-sh is found.
407 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LD="$LD" RANLIB="$RANLIB" \
408 $ac_aux_dir/ltconfig $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
409 || AC_MSG_ERROR([libtool configure failed])
412 dnl --- *@-AM_PATH_LISPDIR-@* ---
414 dnl Author: Ulrich Drepper
416 dnl Synopsis: AM_PATH_LISPDIR
420 dnl Use: Sets the variable `lispdir' to point to a place to install
421 dnl Emacs lisp files.
423 ## ------------------------
424 ## Emacs LISP file handling
425 ## From Ulrich Drepper
426 ## ------------------------
430 AC_DEFUN(AM_PATH_LISPDIR,
431 [# If set to t, that means we are running in a shell under Emacs.
432 # If you have an Emacs named "t", then use the full path.
433 test "$EMACS" = t && EMACS=
434 AC_PATH_PROG(EMACS, emacs xemacs, no)
435 if test $EMACS != "no"; then
436 AC_MSG_CHECKING([where .elc files should go])
437 dnl Set default value
438 lispdir="\$(datadir)/emacs/site-lisp"
439 if test "x$prefix" = "xNONE"; then
440 if test -d $ac_default_prefix/share/emacs/site-lisp; then
441 lispdir="\$(prefix)/share/emacs/site-lisp"
443 if test -d $ac_default_prefix/lib/emacs/site-lisp; then
444 lispdir="\$(prefix)/lib/emacs/site-lisp"
448 if test -d $prefix/share/emacs/site-lisp; then
449 lispdir="\$(prefix)/share/emacs/site-lisp"
451 if test -d $prefix/lib/emacs/site-lisp; then
452 lispdir="\$(prefix)/lib/emacs/site-lisp"
456 AC_MSG_RESULT($lispdir)
460 dnl --- *@-AM_MAINTAINTER_MODE-@* ---
462 dnl Author: Jim Meyering
464 dnl Synopsis: jm_MAINTAINER_MODE
468 dnl Use: Provides an option `--enable-maintainer-mode' which turns
469 dnl on rules which might normally be commented out. The
470 dnl substitution variable `MAINT' is set to be a comment when
471 dnl this option is disabled, which it is by default.
475 AC_DEFUN(AM_MAINTAINER_MODE,
476 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
477 dnl maintainer-mode is disabled by default
478 AC_ARG_ENABLE(maintainer-mode,
479 [ --enable-maintainer-mode enable make rules and dependencies not useful
480 (and sometimes confusing) to the casual installer],
481 USE_MAINTAINER_MODE=$enableval,
482 USE_MAINTAINER_MODE=no)
483 AC_MSG_RESULT($USE_MAINTAINER_MODE)
484 if test $USE_MAINTAINER_MODE = yes; then
493 dnl --- *@-AM_MISSING_PROG-@* ---
497 dnl Synopsis: AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
499 dnl Arguments: NAME = variable to set to the file's location
500 dnl PROGRAM = name of program to find
501 dnl DIRECTORY = directory to look in
503 dnl Use: Fakes existence of a useful GNU maintainer tool.
505 AC_DEFUN(AM_MISSING_PROG,
506 [AC_MSG_CHECKING(for working $2)
507 # Run test in a subshell; some versions of sh will print an error if
508 # an executable is not found, even if stderr is redirected.
509 # Redirect stdin to placate older versions of autoconf. Sigh.
510 if ($2 --version) < /dev/null > /dev/null 2>&1; then
515 AC_MSG_RESULT(missing)
519 dnl --- *@-AM_FUNC_MKTIME-@* ---
521 dnl Author: Jim Meyering
523 dnl Synopsis: AM_FUNC_MKTIME
527 dnl Use: Checks for a working mktime function.
529 AC_DEFUN(AM_FUNC_MKTIME,
530 [AC_REQUIRE([AC_HEADER_TIME])dnl
531 AC_CHECK_HEADERS(sys/time.h)
532 AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime,
534 changequote(<<, >>)dnl
535 <</* Test program from Paul Eggert (eggert@twinsun.com)
536 and Tony Leneis (tony@plaza.ds.adp.com). */
537 #if TIME_WITH_SYS_TIME
538 # include <sys/time.h>
542 # include <sys/time.h>
548 static time_t time_t_max;
550 /* Values we'll use to set the TZ environment variable. */
551 static const char *const tz_strings[] = {
552 NULL, "GMT0", "JST-9", "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
554 #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
560 if (mktime (localtime (&now)) != now)
562 now = time_t_max - now;
563 if (mktime (localtime (&now)) != now)
573 for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
576 delta = time_t_max / 997; /* a suitable prime number */
577 for (i = 0; i < N_STRINGS; i++)
580 putenv (tz_strings[i]);
582 for (t = 0; t <= time_t_max - delta; t += delta)
584 mktime_test ((time_t) 60 * 60);
585 mktime_test ((time_t) 60 * 60 * 24);
591 am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no,
592 dnl When crosscompiling, assume mktime is missing or broken.
593 am_cv_func_working_mktime=no)
595 if test $am_cv_func_working_mktime = no; then
596 LIBOBJS="$LIBOBJS mktime.o"
600 dnl --- *@-AM_FUNC_OBSTACK-@* ---
602 dnl Author: Jim Meyering
604 dnl Synopsis: AM_FUNC_OBSTACK
608 dnl Use: Checks for GNU obstacks.
610 AC_DEFUN(AM_FUNC_OBSTACK,
611 [AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
612 [AC_TRY_LINK([#include "obstack.h"],
613 [struct obstack *mem;obstack_free(mem,(char *) 0)],
614 am_cv_func_obstack=yes,
615 am_cv_func_obstack=no)])
616 if test $am_cv_func_obstack = yes; then
617 AC_DEFINE(HAVE_OBSTACK)
619 LIBOBJS="$LIBOBJS obstack.o"
623 dnl --- *@-AC_C_PROTOTYPES-@* ---
625 dnl Author: Franc,ois Pinard
627 dnl Synopsis: AC_C_PROTOTYPES
631 dnl Use: If the C compiler understands ANSI C, define `PROTOTYPES',
632 dnl and clear the `U' and `ANSI2KNR' variables. Otherwise,
633 dnl set `U' to be `_' and `ANSI2KNR' to be `./ansi2knr'.
637 AC_DEFUN(fp_C_PROTOTYPES,
638 [AC_REQUIRE([fp_PROG_CC_STDC])
639 AC_MSG_CHECKING([for function prototypes])
640 if test "$ac_cv_prog_cc_stdc" != no; then
642 AC_DEFINE(PROTOTYPES)
646 U=_ ANSI2KNR=./ansi2knr
649 AC_SUBST(ANSI2KNR)dnl
652 dnl --- *@-AM_PATH_GTK-@* ---
654 dnl Author: Owen Taylor
656 dnl Synopsis: AM_PATH_GTK(MIN-VERSION, [ACTION-IF-FOUND], [ACTION-IF-NOT])
658 dnl Arguments: MIN-VERSION = minimum version of GTK required
659 dnl ACTION-IF-FOUND = executed if GTK found OK
660 dnl ACTION-IF-NOT-FOUND = what to do if GTK not available
662 dnl Use: Sets up compilation environment suitably for GTK programming.
664 # Configure paths for GTK+
665 # Owen Taylor 97-11-3
667 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
668 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
670 AC_DEFUN(AM_PATH_GTK,
672 dnl Get the cflags and libraries from the gtk-config script
674 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
675 gtk_config_prefix="$withval", gtk_config_prefix="")
676 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
677 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
678 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
679 , enable_gtktest=yes)
681 if test x$gtk_config_exec_prefix != x ; then
682 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
683 if test x${GTK_CONFIG+set} != xset ; then
684 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
687 if test x$gtk_config_prefix != x ; then
688 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
689 if test x${GTK_CONFIG+set} != xset ; then
690 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
694 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
695 min_gtk_version=ifelse([$1], ,0.99.7,$1)
696 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
698 if test "$GTK_CONFIG" = "no" ; then
701 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
702 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
703 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
704 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
705 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
706 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
707 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
708 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
709 if test "x$enable_gtktest" = "xyes" ; then
710 ac_save_CFLAGS="$CFLAGS"
712 CFLAGS="$CFLAGS $GTK_CFLAGS"
713 LIBS="$LIBS $GTK_LIBS"
715 dnl Now check if the installed GTK is sufficiently new. (Also sanity
716 dnl checks the results of gtk-config to some extent
726 int major, minor, micro;
729 system ("touch conf.gtktest");
731 /* HP/UX 9 (%@#!) writes to sscanf strings */
732 tmp_version = g_strdup("$min_gtk_version");
733 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
734 printf("%s, bad version string\n", "$min_gtk_version");
738 if ((gtk_major_version != $gtk_config_major_version) ||
739 (gtk_minor_version != $gtk_config_minor_version) ||
740 (gtk_micro_version != $gtk_config_micro_version))
742 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
743 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
744 gtk_major_version, gtk_minor_version, gtk_micro_version);
745 printf ("*** was found! If gtk-config was correct, then it is best\n");
746 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
747 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
748 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
749 printf("*** required on your system.\n");
750 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
751 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
752 printf("*** before re-running configure\n");
756 if ((gtk_major_version > major) ||
757 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
758 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
764 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
765 gtk_major_version, gtk_minor_version, gtk_micro_version);
766 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
767 major, minor, micro);
768 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
770 printf("*** If you have already installed a sufficiently new version, this error\n");
771 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
772 printf("*** being found. The easiest way to fix this is to remove the old version\n");
773 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
774 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
775 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
776 printf("*** so that the correct libraries are found at run-time))\n");
781 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
782 CFLAGS="$ac_save_CFLAGS"
786 if test "x$no_gtk" = x ; then
788 ifelse([$2], , :, [$2])
791 if test "$GTK_CONFIG" = "no" ; then
792 echo "*** The gtk-config script installed by GTK could not be found"
793 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
794 echo "*** your path, or set the GTK_CONFIG environment variable to the"
795 echo "*** full path to gtk-config."
797 if test -f conf.gtktest ; then
800 echo "*** Could not run GTK test program, checking why..."
801 CFLAGS="$CFLAGS $GTK_CFLAGS"
802 LIBS="$LIBS $GTK_LIBS"
806 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
807 [ echo "*** The test program compiled, but did not run. This usually means"
808 echo "*** that the run-time linker is not finding GTK or finding the wrong"
809 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
810 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
811 echo "*** to the installed location Also, make sure you have run ldconfig if that"
812 echo "*** is required on your system"
814 echo "*** If you have an old version installed, it is best to remove it, although"
815 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
817 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
818 echo "*** came with the system with the command"
820 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
821 [ echo "*** The test program failed to compile or link. See the file config.log for the"
822 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
823 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
824 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
825 CFLAGS="$ac_save_CFLAGS"
831 ifelse([$3], , :, [$3])
838 dnl --- *@-AC_TYPE_PTRDIFF_T-@* ---
840 dnl Author: Ulrich Drepper
842 dnl Synopsis: AC_TYPE_PTRDIFF_T
846 dnl Use: Sets HAVE_PTRDIFF_T if the type exists.
848 AC_DEFUN(AM_TYPE_PTRDIFF_T,
849 [AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
850 [AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
851 am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
852 if test $am_cv_type_ptrdiff_t = yes; then
853 AC_DEFINE(HAVE_PTRDIFF_T)
857 dnl --- *@-AM_WITH_REGEX-@* ---
859 dnl Author: Unknown (possibly Franc,ois Pinard)
861 dnl Synopsis: AM_WITH_REGEX
866 dnl The idea is to distribute rx.[hc] and regex.[hc] together,
867 dnl for a while. The WITH_REGEX symbol (which should also be
868 dnl documented in acconfig.h) is used to decide which of regex.h
869 dnl or rx.h should be included in the application. If
870 dnl `./configure --with-regex' is given (the default), the
871 dnl package will use gawk's regex. If `./configure
872 dnl --without-regex', a check is made to see if rx is already
873 dnl installed, as with newer Linux'es. If not found, the package
874 dnl will use the rx from the distribution. If found, the package
875 dnl will use the system's rx which, on Linux at least, will
876 dnl result in a smaller executable file.
878 AC_DEFUN(AM_WITH_REGEX,
879 [AC_MSG_CHECKING(which of GNU rx or gawk's regex is wanted)
881 [ --without-regex use GNU rx in lieu of gawk's regex for matching],
882 [test "$withval" = yes && am_with_regex=1],
884 if test -n "$am_with_regex"; then
886 AC_DEFINE(WITH_REGEX)
887 AC_CACHE_CHECK([for GNU regex in libc], am_cv_gnu_regex,
888 AC_TRY_LINK([], [extern int re_max_failures; re_max_failures = 1],
889 am_cv_gnu_regex=yes, am_cv_gnu_regex=no))
890 if test $am_cv_gnu_regex = no; then
891 LIBOBJS="$LIBOBJS regex.o"
895 AC_CHECK_FUNC(re_rx_search, , [LIBOBJS="$LIBOBJS rx.o"])
900 dnl --- *@-AM_SANITY_CHECK-@*
904 dnl Synopsis: AM_SANITY_CHECK
908 dnl Use: Check for build environment sanity.
910 AC_DEFUN(AM_SANITY_CHECK,
911 [AC_MSG_CHECKING([whether build environment is sane])
914 echo timestamp > conftestfile
915 # Do `set' in a subshell so we don't clobber the current shell's
916 # arguments. Must try -L first in case configure is actually a
917 # symlink; some systems play weird games with the mod time of symlinks
918 # (eg FreeBSD returns the mod time of the symlink's containing
921 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
922 if test "$@" = "X"; then
924 set X `ls -t $srcdir/configure conftestfile`
926 test "[$]2" = conftestfile
932 AC_MSG_ERROR([newly created file is older than distributed files!
933 Check your system clock])
938 dnl --- *@-AM_FUNC_STRDOD-@* ---
940 dnl Author: Jim Meyering
942 dnl Synopsis: AM_FUNC_STRTOD
946 dnl Use: Checks for a working strtod function.
948 ## Copyright (C) 1996 Free Software Foundation, Inc.
950 ## This program is free software; you can redistribute it and/or modify
951 ## it under the terms of the GNU General Public License as published by
952 ## the Free Software Foundation; either version 2, or (at your option)
953 ## any later version.
955 ## This program is distributed in the hope that it will be useful,
956 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
957 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
958 ## GNU General Public License for more details.
960 ## You should have received a copy of the GNU General Public License
961 ## along with this program; if not, write to the Free Software
962 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
965 ## From Jim Meyering.
969 ## @defmac AC_FUNC_STRTOD
970 ## @maindex FUNC_STRTOD
972 ## If the @code{strtod} function is not available, or does not work
973 ## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
974 ## variable @code{LIBOBJS}.
977 AC_DEFUN(AM_FUNC_STRTOD,
978 [AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
985 /* Some versions of Linux strtod mis-parse strings with leading '+'. */
986 char *string = " +69";
989 value = strtod (string, &term);
990 if (value != 69 || term != (string + 4))
995 /* Under Solaris 2.4, strtod returns the wrong value for the
996 terminating character under some conditions. */
998 ## @defmac AC_FUNC_STRTOD
999 ## @maindex FUNC_STRTOD
1001 ## If the @code{strtod} function is not available, or does not work
1002 ## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
1003 ## variable @code{LIBOBJS}.
1006 AC_DEFUN(AM_FUNC_STRTOD,
1007 [AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
1014 /* Some versions of Linux strtod mis-parse strings with leading '+'. */
1015 char *string = " +69";
1018 value = strtod (string, &term);
1019 if (value != 69 || term != (string + 4))
1024 /* Under Solaris 2.4, strtod returns the wrong value for the
1025 terminating character under some conditions. */
1026 char *string = "NaN";
1028 strtod (string, &term);
1029 if (term != string && *(term - 1) == 0)
1034 ], am_cv_func_strtod=yes, am_cv_func_strtod=no, am_cv_func_strtod=no)])
1035 test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
1036 AC_SUBST(LIBOBJS)dnl
1037 am_cv_func_strtod_needs_libm=no
1038 if test $am_cv_func_strtod = no; then
1040 if test $ac_cv_func_pow = no; then
1041 AC_CHECK_LIB(m, pow, [am_cv_func_strtod_needs_libm=yes],
1042 [AC_MSG_WARN(can't find library containing definition of pow)])
1047 dnl --- *@-AM_SYS_POSIX_TERMIOS-@* ---
1049 dnl Author: Jim Meyering
1051 dnl Synopsis: AM_SYS_POSIX_TERMIOS
1055 dnl Use: Checks for a POSIX termios.h.
1057 AC_DEFUN(AM_SYS_POSIX_TERMIOS,
1058 [AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
1059 [AC_TRY_LINK([#include <sys/types.h>
1061 #include <termios.h>],
1062 [/* SunOS 4.0.3 has termios.h but not the library calls. */
1064 am_cv_sys_posix_termios=yes,
1065 am_cv_sys_posix_termios=no)])
1068 dnl----- Macros by Mark Wooding ------------------------------ *@--IGNORE--@*
1070 dnl --- *@-mdw_REQUIRE-@* ---
1072 dnl Author: Mark Wooding
1074 dnl Synopsis: mdw_REQUIRE(MACRO, ARGS...)
1076 dnl Arguments: MACRO = name of a macro which should have been called
1077 dnl ARGS = arguments to pass
1079 dnl Use: Like `AC_REQUIRE', only it handles arguments.
1081 AC_DEFUN(mdw_REQUIRE,
1082 [ifdef([AC_PROVIDE_$1], ,
1083 [AC_DIVERT_PUSH(builtin(eval, AC_DIVERSION_CURRENT - 1))dnl
1088 dnl --- *@-mdw_CURSES-@* ---
1090 dnl Author: Mark Wooding
1092 dnl Synopsis: mdw_CURSES
1096 dnl Use: Searches for a `curses' library (one of `ncurses' or
1097 dnl `curses') using mdw_CHECK_MANYLIBS. If one is found, the
1098 dnl preprocessor macro HAVE_CURSES is defined, and a search is
1099 dnl made for a `curses' header file (one of <ncurses.h>,
1100 dnl <ncurses/ncurses.h> or <curses.h>) using AC_CHECK_HEADERS
1101 dnl and the appropriate preprocessor symbol is defined.
1102 dnl Finally, a check is made for the function `wresize' using
1105 AC_DEFUN(mdw_CURSES,
1106 [mdw_CHECK_MANYLIBS(newwin, ncurses curses, AC_DEFINE(HAVE_CURSES))
1107 if test $mdw_cv_lib_newwin != no; then
1108 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h curses.h], [break])
1109 if test "$ac_cv_header_ncurses_h" = "no" &&
1110 test "$ac_cv_header_ncurses_ncurses_h" = "no" &&
1111 test "$ac_cv_header_curses_h" = "no"; then
1112 AC_MSG_WARN([couldn't find a \`curses' header. Assuming \`curses.h'.])
1113 AC_DEFINE(HAVE_CURSES_H)
1115 AC_CHECK_FUNCS(wresize)
1118 dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
1120 dnl Author: Mark Wooding
1122 dnl Synopsis: mdw_TYPE_SSIZE_T
1126 dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
1127 dnl it defaults to `int'.
1129 AC_DEFUN(mdw_TYPE_SSIZE_T,
1130 [AC_REQUIRE([AC_HEADER_STDC])
1131 AC_CACHE_CHECK(for ssize_t, mdw_cv_ssize_t,
1132 [AC_EGREP_CPP(ssize_t,
1133 [#include <sys/types.h>
1141 [mdw_cv_ssize_t=yes], [mdw_cv_ssize_t=no])])
1142 if test $mdw_cv_ssize_t = no; then
1143 AC_DEFINE(ssize_t, int)
1146 dnl --- *@-mdw_DECL_ENVIRON-@* ---
1148 dnl Author: Mark Wooding
1150 dnl Synopsis: mdw_DECL_ENVIRON
1154 dnl Use: Searches for a declaration of the global `environ' variable.
1155 dnl If one is found in one of the `usual' places, DECL_ENVIRON
1156 dnl is defined as a preprocessor symbol.
1158 AC_DEFUN(mdw_DECL_ENVIRON,
1159 [AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
1160 [AC_EGREP_CPP(environ,
1161 [#include <sys/types.h>
1168 #endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
1169 if test $mdw_cv_environ = yes; then
1170 AC_DEFINE(DECL_ENVIRON)
1173 dnl --- *@-mdw_CHECK_MANYLIBS-@* ---
1175 dnl Author: Mark Wooding
1177 dnl Synopsis: mdw_CHECK_MANYLIBS(FUNC, LIBS, [IF-FOUND], [IF-NOT-FOUND])
1179 dnl Arguments: FUNC = a function to try to find
1180 dnl LIBS = a whitespace-separated list of libraries to search
1181 dnl IF-FOUND = what to do when the function is found
1182 dnl IF-NOT-FOUND = what to do when the function isn't found
1184 dnl Use: Searches for a library which defines FUNC. It first tries
1185 dnl without any libraries; then it tries each library specified
1186 dnl in LIBS in turn. If it finds a match, it adds the
1187 dnl appropriate library to `LIBS'.
1189 dnl This is particularly handy under DIREIX: if you link with
1190 dnl `-lnsl' then you get non-NIS-aware versions of getpwnam and
1191 dnl so on, which is clearly a Bad Thing.
1193 AC_DEFUN(mdw_CHECK_MANYLIBS,
1194 [AC_CACHE_CHECK([for library containing $1], [mdw_cv_lib_$1],
1195 [mdw_save_LIBS="$LIBS"
1197 AC_TRY_LINK(,[$1()], [mdw_cv_lib_$1="none required"])
1198 test "$mdw_cv_lib_$1" = "no" && for i in $2; do
1199 LIBS="-l$i $mdw_save_LIBS"
1200 AC_TRY_LINK(,[$1()],
1201 [mdw_cv_lib_$1="-l$i"
1204 LIBS="$mdw_save_LIBS"])
1205 if test "$mdw_cv_lib_$1" != "no"; then
1206 test "$mdw_cv_lib_$1" = "none required" || LIBS="$mdw_cv_lib_$1 $LIBS"
1212 dnl --- *@-mdw__PERL_VERSION-@* ---
1214 dnl AC_DEFUN relies on `[', `]' being quotes, so I have to drop down a level.
1217 define(mdw__PERL_VERSION, <<$1 -e 'exit ($] < $2);' >&5 2>&5>>)
1220 dnl --- *@-mdw_PROG_PERL-@* ---
1222 dnl Author: Mark Wooding
1224 dnl Synopsis: mdw_PROG_PERL(VERSION, [IF-FOUND], [IF-NOT-FOUND])
1226 dnl Arguments: VERSION = version number of Perl required
1227 dnl IF-FOUND = what to do if it's found
1228 dnl IF-NOT-FOUND = what to do if it isn't
1230 dnl Use: Attempts to find a working version of Perl with a late
1231 dnl enough version number. It supplies an option `--with-perl'
1232 dnl to allow the user to provide a Perl interpreter. If one
1233 dnl isn't provided explicitly, it searches for `perl' and `perl5'
1234 dnl in the current PATH, asking them whether they have a late
1235 dnl enough version number. The path of the working Perl is
1236 dnl put into the `PERL' environment variable; `AC_SUBST' is used
1237 dnl to substitute its value into Perl scripts. If there is no
1238 dnl Perl to be found, the value of `PERL' is set to be `none'.
1240 AC_DEFUN(mdw_PROG_PERL,
1241 [AC_ARG_WITH([perl],
1242 [ --with-perl=PERL specify path to Perl version $1 or newer],
1244 if test -z "$PERL"; then
1245 [AC_CACHE_CHECK([for Perl version $1 or later], mdw_cv_prog_perl,
1246 [mdw_cv_prog_perl="none"
1247 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
1248 case $p in /*) ;; *) p=`pwd`/$p ;; esac
1249 if mdw__PERL_VERSION(["$p/perl"], $1); then
1250 mdw_cv_prog_perl="$p/perl"
1253 if mdw__PERL_VERSION(["$p/perl5"], $1); then
1254 mdw_cv_prog_perl="$p/perl5"
1258 PERL="$mdw_cv_prog_perl"])
1262 if test "$PERL" = "none"; then :
1268 dnl --- *@-mdw_CHECK_PERL-@* ---
1270 dnl Author: Mark Wooding
1272 dnl Synopsis: mdw_CHECK_PERL(VERSION)
1274 dnl Arguments: VERSION = version number of Perl required
1276 dnl Use: Verifies that the Perl interpreter in the `PERL' shell
1277 dnl variable actually works and is of the right version. If it's
1278 dnl not, an error is raised and configuration is aborted.
1280 AC_DEFUN(mdw_CHECK_PERL,
1281 [mdw_REQUIRE([mdw_PROG_PERL], [$1])
1282 AC_MSG_CHECKING([whether Perl ($PERL) works])
1283 if test "$PERL" != "none" && mdw__PERL_VERSION("$PERL", $1); then
1284 AC_MSG_RESULT([yes])
1287 AC_MSG_ERROR([Perl version $1 or newer not found.
1288 If you have a recent enough Perl, and I just failed to find it, try using
1289 the --with-perl=PERL option to give me an explicit pathname.])
1292 dnl --- *@-mdw_PERLLIB_CHECK-@* ---
1294 dnl Author: Mark Wooding
1296 dnl Synopsis: mdw_PERLLIB_CHECK(LIBRARY)
1298 dnl Arguments: LIBRARY = name of a Perl library to check for
1300 dnl Use: Ensures that a Perl script can `use LIBRARY;'. If it can,
1301 dnl all's well and good; if it can't, `LIBRARY.pm' is added to
1302 dnl the variable `NEEDED_PERLLIBS' and a line which adds
1303 dnl `pkgdatadir' to Perl's `@INC' array is placed in the
1304 dnl variable `INC_PERLLIBS'; `AC_SUBST' is called for both of
1305 dnl these variables. It's expected that `NEEDED_PERLLIBS' will
1306 dnl be used in the `Makefile.in' to decide which versions from
1307 dnl the distribution need installing.
1309 dnl This macro isn't terribly useful in the general case. It
1310 dnl Also implicitly assumes that `$PERL' is Perl 5 or later.
1312 AC_DEFUN(mdw__PERLLIB_INIT,
1313 [AC_SUBST(INC_PERLLIBS)dnl
1314 AC_SUBST(NEEDED_PERLLIBS)dnl
1317 AC_DEFUN(mdw_PERLLIB_CHECK,
1318 [AC_REQUIRE([mdw__PERLLIB_INIT])
1319 mdw_REQUIRE([mdw_CHECK_PERL], 5)
1320 AC_CACHE_CHECK([for Perl library $1], mdw_cv_perllib_$1,
1321 [if $PERL -e 'use $1;' >&5 2>&5; then
1322 mdw_cv_perllib_$1="yes"
1324 mdw_cv_perllib_$1="no"
1327 if test "$mdw_cv_perllib_$1" = "no"; then
1328 NEEDED_PERLLIBS="$NEEDED_PERLLIBS $1.pm"
1330 # --- Deal with autoconf lossage ---
1332 # It doesn't want to define `prefix' until rather later on, so I have
1335 if test -z "$INC_PERLLIBS"; then
1336 mdw_old_prefix="$prefix"
1337 test "$prefix" = "NONE" && prefix="$ac_default_prefix";
1338 INC_PERLLIBS="BEGIN { push @INC, \"`eval echo $datadir/$PACKAGE`\"; }"
1339 prefix="$mdw_old_prefix";
1343 dnl --- *@-mdw_GCC_FLAGS-@* ---
1345 dnl Author: Mark Wooding
1347 dnl Synopsis: mdw_GCC_FLAGS([FLAGS], [CFLAGS], [C++FLAGS])
1349 dnl Arguments: FLAGS = GCC compiler flags to add (default is
1350 dnl `-pedantic -Wall')
1351 dnl CFLAGS = GCC C compiler flags to add (default is empty)
1352 dnl C++FLAGS = GCC C++ compiler flags to add (default is
1353 dnl `-fhandle-exceptions').
1355 dnl Use: If the C compiler is GCC, add the compiler flags.
1357 AC_DEFUN(mdw_GCC_FLAGS,
1358 [if test "$GCC" = "yes"; then
1359 CFLAGS="$CFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1360 CFLAGS="$CFLAGS ifelse([$2], [], [], [$2])"
1362 if test "$GXX" = "yes"; then
1363 CXXFLAGS="$CXXFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1364 CXXFLAGS="$CXXFLAGS ifelse([$3], [], [-fhandle-exceptions], [$3])"
1367 dnl *@-mdw_INIT_LIB-@*
1369 dnl Author: Mark Wooding
1371 dnl Synopsis: mdw_INIT_LIB(LIB, NAME, VERSION, [PACKAGE])
1373 dnl Arguments: LIB = the name of the library (and the package)
1374 dnl NAME = a presentable version of the library's name
1375 dnl VERSION = version of the library
1376 dnl PACKAGE = package name to pass on to AM_INIT_AUTOMAKE
1378 dnl Use: Sets up various useful variables. This macro calls
1379 dnl AM_INIT_AUTOMAKE, which might be considered useful. It also
1380 dnl provides variables for the use of `lib-config.in'.
1382 AC_DEFUN([mdw_INIT_LIB],
1383 [AM_INIT_AUTOMAKE(ifelse([$4], [], [$1], [$4]), [$3])
1384 LIBRARY="$1" AC_SUBST(LIBRARY)
1385 LIBNAME="$2" AC_SUBST(LIBNAME)])
1387 dnl *@-mdw_LIB_CONFIG-@*
1389 dnl Author: Mark Wooding
1391 dnl Synopsis: mdw_LIB_CONFIG(LIB, NAME, VERSION, IF-FOUND, IF-NOT-FOUND)
1393 dnl Arguments: LIB = the name of the library (and its configuration program)
1394 dnl NAME = a presentable version of the library's name
1395 dnl VERSION = version of library required
1396 dnl IF-FOUND = what to do if found
1397 dnl IF-NOT-FOUND = what to do if not found
1399 dnl Use: Configures a library client program, using a configuration
1400 dnl script provided by the library maintainer.
1402 dnl The default version is 1.0.0pre0; the default action is to
1403 dnl add everything to the CFLAGS and LIBS variables, and complain
1404 dnl if the library couldn't be found.
1406 dnl The variable LIB_VERSION contains the version number of
1407 dnl the library; LIB_CFLAGS is the C compiler flags required
1408 dnl and LIB_LIBS is the linker flags.
1410 AC_DEFUN([mdw_LIB_CONFIG],
1411 [pushdef([upname], translit([$1], [a-z], [A-Z]))dnl
1412 AC_MSG_CHECKING([for $2 library])
1413 if $1-config --check $3 >/dev/null 2>&1; then
1414 upname[]_VERSION=`$1-config --version`
1415 upname[]_CFLAGS=`$1-config --cflags`
1416 upname[]_LIBS=`$1-config --libs`
1417 AC_SUBST(upname[]_VERSION)
1418 AC_SUBST(upname[]_CFLAGS)
1419 AC_SUBST(upname[]_LIBS)
1421 [CFLAGS="$CFLAGS $upname[]_CFLAGS"
1422 LIBS="$upname[]_LIBS $LIBS"],
1424 AC_MSG_RESULT([$upname[]_VERSION])
1427 AC_MSG_ERROR([$2 library not found or too old.]),
1429 AC_MSG_RESULT([not found])
1434 dnl Author: Mark Wooding
1436 dnl Synopsis: mdw_MLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1438 dnl Arguments: VERSION = version of library required
1439 dnl IF-FOUND = what to do if found
1440 dnl IF-NOT-FOUND = what to do if not found
1442 dnl Use: Configures an mLib client program.
1444 AC_DEFUN([mdw_MLIB], [mdw_LIB_CONFIG(mLib, mLib, $@)])
1448 dnl Author: Mark Wooding
1450 dnl Synopsis: mdw_MGLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1452 dnl Arguments: VERSION = version of library required
1453 dnl IF-FOUND = what to do if found
1454 dnl IF-NOT-FOUND = what to do if not found
1456 dnl Use: Configures an mgLib client program.
1458 AC_DEFUN([mdw_MGLIB],
1459 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1460 mdw_LIB_CONFIG(mgLib, mgLib, $@)])
1462 dnl *@-mdw_CATACOMB-@*
1464 dnl Author: Mark Wooding
1466 dnl Synopsis: mdw_CATACOMB([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1468 dnl Arguments: VERSION = version of Catacomb required
1469 dnl IF-FOUND = what to do if found
1470 dnl IF-NOT-FOUND = what to do if not found
1472 dnl Use: Configures the program as a Catacomb client.
1474 AC_DEFUN([mdw_CATACOMB],
1475 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1476 mdw_LIB_CONFIG(catacomb, Catacomb, $@)])
1480 dnl Author: Mark Wooding
1482 dnl Synopsis: mdw_PK([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1484 dnl Arguments: VERSION = version of PK required
1485 dnl IF-FOUND = what to do if found
1486 dnl IF-NOT-FOUND = what to do if not found
1488 dnl Use: Configures the program as a PK client.
1491 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1492 mdw_LIB_CONFIG(pk, PK, $@)])
1494 dnl --- *@-mdw_OPT_NDEBUG-@* ---
1496 dnl Author: Mark Wooding
1498 dnl Synopsis: mdw_OPT_NDEBUG
1502 dnl Use: Turns off the `NDEBUG' flag if the user wants to do
1505 AC_DEFUN(mdw_OPT_NDEBUG,
1506 [AC_ARG_ENABLE(debugging,
1507 [ --enable-debugging spews vast swathes of useless information],
1508 [if test "$enableval" = "no"; then
1509 AC_DEFINE(NDEBUG, 1)
1511 [AC_DEFINE(NDEBUG, 1)])])
1513 dnl --- *@-mdw_OPT_EFENCE-@* ---
1515 dnl Author: Mark Wooding
1517 dnl Synopsis: mdw_OPT_EFENCE
1521 dnl Use: Links with the Electric Fence library.
1523 AC_DEFUN(mdw_OPT_EFENCE,
1524 [AC_ARG_WITH(electric-fence,
1525 [ --with-electric-fence link programs with Electric Fence],
1526 [if test "$withval" = "yes"; then
1527 AC_CHECK_LIB(efence, malloc)
1530 dnl --- *@-mdw_OPT_mLib_DEBUG-@* ---
1532 dnl Author: Mark Wooding
1534 dnl Synopsis: mdw_OPT_mLib_DEBUG(PROGRAM)
1538 dnl Use: Provides options for mLib debugging. In particular, the
1539 dnl following are defined:
1541 dnl --enable-tracing turns off the NTRACE variable
1542 dnl --enable-track turns on malloc tracking
1543 dnl --enable-blame-PROGRAM tracks malloc contexts in PROGRAM
1545 dnl There must be a separate `blame' option, so that the various
1546 dnl blame options work properly.
1548 AC_DEFUN(mdw_OPT_mLib_DEBUG,
1552 AC_ARG_ENABLE(tracing,
1553 [ --enable-tracing enable output of tracing information],
1554 [if test "$enableval" = "no"; then
1555 AC_DEFINE(NTRACE, 1)
1557 [AC_DEFINE(NTRACE, 1)])
1559 AC_ARG_ENABLE(track,
1560 [ --enable-track enable tracking of malloc and free],
1561 [AC_DEFINE(TRACK_ENABLE, 1)])
1563 AC_ARG_ENABLE(blame-$1,
1565 track malloc contexts while in $1],
1566 [AC_DEFINE(TRACK_BLAME, 1)])])
1568 dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*