1 dnl -*-fundamental-*- *@--GLOB-HEADER--@*
3 dnl $Id: aclocal.glob,v 1.13 2001/02/23 09:07:24 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.13 2001/02/23 09:07:24 mdw
32 dnl Restore temporary variable on exit.
34 dnl Revision 1.12 2001/02/04 01:18:52 mdw
35 dnl Overhaul the mLib debugging options.
37 dnl Revision 1.11 2001/01/20 12:03:08 mdw
38 dnl Remove redundant stuff.
40 dnl Revision 1.10 2000/10/14 16:32:15 mdw
41 dnl Fixes from upstream.
43 dnl Revision 1.9 2000/08/15 21:37:49 mdw
44 dnl New initialization macro for libraries, and a new base client macro for
45 dnl finding libraries with an appropriate version.
47 dnl Revision 1.8 1999/11/26 01:23:17 mdw
48 dnl And support for MXD (not yet released).
50 dnl Revision 1.7 1999/11/11 20:03:58 mdw
51 dnl Add support for mgLib too.
53 dnl Revision 1.6 1999/11/11 17:49:33 mdw
54 dnl New macros for configuring clients of mLib and Catacomb.
56 dnl Revision 1.5 1999/07/27 18:27:37 mdw
57 dnl Fix typo in header line for mdw_DECL_ENVIRON.
59 dnl Revision 1.4 1999/07/26 23:44:32 mdw
60 dnl Reorder and tidy documentation.
62 dnl Revision 1.3 1999/07/17 10:27:44 mdw
63 dnl More useful macros added.
65 dnl Revision 1.2 1999/05/13 22:57:23 mdw
66 dnl Change `-ise' to `-ize' throughout.
68 dnl Revision 1.1.1.1 1999/05/05 19:23:47 mdw
69 dnl New import. The old CVS repository was lost in a disk disaster.
72 dnl----- Common files distribution --------------------------- *@--NOTICE--@*
74 dnl $Id: aclocal.glob,v 1.13 2001/02/23 09:07:24 mdw Exp $
76 dnl --- *@-AM_PROG_CC_STDC-@* ---
78 dnl Author: Franc,ois Pinard
80 dnl Synopsis: AM_PROG_CC_STDC
84 dnl Use: If the C compiler in not in ANSI C mode by default, try to
85 dnl add an option to output variable `CC' to make it so. This
86 dnl macro tries various options that select ANSI C on some system
87 dnl or another. It considers the compiler to be in ANSI C mode
88 dnl if it defines `__STDC__' to 1 and handles function prototypes
91 dnl If you use this macro, you should check after calling it
92 dnl whether the C compiler has been set to accept ANSI C; if not,
93 dnl the shell variable `ac_cv_prog_cc_stdc' is set to `no'. If
94 dnl you wrote your source code in ANSI C, you can make an
95 dnl un-ANSIfied copy of it by using the program `ansi2knr', which
96 dnl comes with Ghostscript.
98 dnl (documentation by Franc,ois Pinard)
100 AC_DEFUN(AM_PROG_CC_STDC,
101 [AC_REQUIRE([AC_PROG_CC])
102 AC_BEFORE([$0], [AC_C_INLINE])
103 AC_BEFORE([$0], [AC_C_CONST])
104 AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
105 AC_CACHE_VAL(am_cv_prog_cc_stdc,
106 [am_cv_prog_cc_stdc=no
108 # Don't try gcc -ansi; that turns off useful extensions and
109 # breaks some systems' header files.
111 # Ultrix and OSF/1 -std1
112 # HP-UX -Aa -D_HPUX_SOURCE
113 # SVR4 -Xc -D__EXTENSIONS__
114 for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
116 CC="$ac_save_CC $ac_arg"
118 [#if !defined(__STDC__) || __STDC__ != 1
121 /* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
123 # include <sys/types.h>
124 # include <sys/stat.h>
127 int test (int i, double x);
128 struct s1 {int (*f) (int a);};
129 struct s2 {int (*f) (double a);};],
130 [am_cv_prog_cc_stdc="$ac_arg"; break])
134 if test -z "$am_cv_prog_cc_stdc"; then
135 AC_MSG_RESULT([none needed])
137 AC_MSG_RESULT($am_cv_prog_cc_stdc)
139 case "x$am_cv_prog_cc_stdc" in
141 *) CC="$CC $am_cv_prog_cc_stdc" ;;
145 dnl----- AutoMake macros ------------------------------------- *@--IGNORE--@*
147 dnl --- *@-AM_CONDITIONAL-@* ---
151 dnl Synopsis: AM_CONDITIONAL(NAME, TEST)
153 dnl Arguments: NAME = name of the conditional
154 dnl TEST = a shell list to execute
156 dnl Use: Allows conditional sections in Makefiles.
158 AC_DEFUN(AM_CONDITIONAL,
169 dnl --- *@-AM_CYGWIN32-@* ---
171 dnl Author: Cygnus (I guess)
173 dnl Synopsis: AM_CYGWIN32
177 dnl Use: Check to see if we're running under Cygwin32, without using
178 dnl AC_CANONICAL_*. If so, set output variable EXEEXT to
179 dnl ".exe". Otherwise set it to "".
182 dnl You might think we can do this by checking for a cygwin32-specific
183 dnl cpp define. We can't, because cross-compilers that target
184 dnl cygwin32 don't use the .exe suffix. I don't know why.
185 AC_DEFUN(AM_CYGWIN32,
186 [AC_CACHE_CHECK(for Cygwin32 environment, am_cv_cygwin32,
187 [cat > conftest.$ac_ext << 'EOF'
192 if AC_TRY_EVAL(ac_link) && test -s conftest.exe; then
199 test "$am_cv_cygwin32" = yes && EXEEXT=.exe
202 dnl --- *@-AM_WITH_DMALLOC-@* ---
204 dnl Author: Franc,ois Pinard
206 dnl Synopsis: AM_WITH_DMALLOC
210 dnl Use: Links with `-dmalloc' if told to by the user.
212 ## ----------------------------------- ##
213 ## Check if --with-dmalloc was given. ##
214 ## From Franc,ois Pinard ##
215 ## ----------------------------------- ##
219 AC_DEFUN(AM_WITH_DMALLOC,
220 [AC_MSG_CHECKING(if malloc debugging is wanted)
222 [ --with-dmalloc use dmalloc, as in
223 ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz],
224 [if test "$withval" = yes; then
226 AC_DEFINE(WITH_DMALLOC)
227 LIBS="$LIBS -ldmalloc"
228 LDFLAGS="$LDFLAGS -g"
231 fi], [AC_MSG_RESULT(no)])
234 dnl --- *@-AM_FUNC_ERROR_AT_LINE-@* ---
236 dnl Author: Jim Meyering
238 dnl Synopsis: AM_FUNC_ERROR_AT_LINE
242 dnl Use: Use this if you use the GNU error.[ch].
244 dnl FIXME: Migrate into libit
246 AC_DEFUN(AM_FUNC_ERROR_AT_LINE,
247 [AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
248 [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
249 am_cv_lib_error_at_line=yes,
250 am_cv_lib_error_at_line=no)])
251 if test $am_cv_lib_error_at_line = no; then
252 LIBOBJS="$LIBOBJS error.o"
257 dnl --- *@-AM_INIT_GUILE_MODULE-@* ---
261 dnl Synopsis: AM_INIT_GUILE_MODULE(MODNAME)
263 dnl Arguments: MODNAME = value to initialize `module' variable with
265 dnl Use: This macro will automatically get the guile version from the
266 dnl top-level srcdir, and will initialize automake. It also
267 dnl defines the `module' variable.
269 AC_DEFUN([AM_INIT_GUILE_MODULE],[
270 . $srcdir/../GUILE-VERSION
271 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
272 AC_CONFIG_AUX_DIR(..)
276 dnl --- *@-AM_CONFIG_HEADER-@* ---
280 dnl Synopsis: AM_CONFIG_HEADER(HEADER ...)
282 dnl Arguments: HEADER = a header spec, as for AC_CONFIG_HEADER
284 dnl Use: Like AC_CONFIG_HEADER, but automatically create stamp file.
286 AC_DEFUN(AM_CONFIG_HEADER,
288 AC_CONFIG_HEADER([$1])
289 dnl When config.status generates a header, we must update the stamp-h file.
290 dnl This file resides in the same directory as the config header
291 dnl that is generated. We must strip everything past the first ":",
292 dnl and everything past the last "/".
293 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
294 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
295 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/
296 \)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
298 for am_file in <<$1>>; do
299 case " <<$>>CONFIG_HEADERS " in
300 *" <<$>>am_file "*<<)>>
301 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
304 am_indx=`expr "<<$>>am_indx" + 1`
308 dnl --- *@-AM_INIT_AUTOMAKE-@*
312 dnl Synopsis: AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
314 dnl Arguments: PACKAGE = package name
315 dnl VERSION = version number
316 dnl NO-DEFINE = if set, don't define package and version number
318 dnl Use: Do all the work for Automake. This macro actually does too
319 dnl much -- some checks are only needed if your package does
320 dnl certain things. But this isn't really a big deal.
324 AC_DEFUN(AM_INIT_AUTOMAKE,
325 [AC_REQUIRE([AC_PROG_INSTALL])
330 dnl test to see if srcdir already configured
331 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
332 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
335 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
336 AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
337 AC_REQUIRE([AM_SANITY_CHECK])
338 AC_REQUIRE([AC_ARG_PROGRAM])
339 dnl FIXME This is truly gross.
340 missing_dir=`cd $ac_aux_dir && pwd`
341 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
342 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
343 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
344 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
345 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
346 AC_REQUIRE([AC_PROG_MAKE_SET])])
348 dnl --- *@-AM_PROG_LEX-@* ---
350 dnl Author: Alexandre Oliva
352 dnl Synopsis: AM_PROG_LEX
356 dnl Use: Replacement for AC_PROG_LEX and AC_DECL_YYTEXT
359 dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
360 AC_DEFUN(AM_PROG_LEX,
361 [missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
362 AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
366 dnl --- *@-AM_PROG_LIBTOOL-@* ---
370 dnl Synopsis: AM_PROG_LIBTOOL
374 dnl Use: Configures `libtool' for the target architecture.
377 ## Configure libtool for the target system.
379 # serial 1 AM_PROG_LIBTOOL
380 AC_DEFUN(AM_PROG_LIBTOOL,
381 [AC_REQUIRE([AC_CANONICAL_HOST])
382 AC_REQUIRE([AC_PROG_CC])
383 AC_REQUIRE([AC_PROG_RANLIB])
385 # Always use our own libtool.
386 LIBTOOL='$(top_builddir)/libtool'
389 dnl Allow the --disable-shared flag to stop us from building shared libs.
390 AC_ARG_ENABLE(shared,
391 [ --enable-shared build shared libraries [default=yes]],
392 test "$enableval" = no && libtool_shared=" --disable-shared",
395 libtool_flags="$libtool_shared"
396 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
397 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
399 # Actually configure libtool. ac_aux_dir is where install-sh is found.
400 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LD="$LD" RANLIB="$RANLIB" \
401 $ac_aux_dir/ltconfig $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
402 || AC_MSG_ERROR([libtool configure failed])
405 dnl --- *@-AM_PATH_LISPDIR-@* ---
407 dnl Author: Ulrich Drepper
409 dnl Synopsis: AM_PATH_LISPDIR
413 dnl Use: Sets the variable `lispdir' to point to a place to install
414 dnl Emacs lisp files.
416 ## ------------------------
417 ## Emacs LISP file handling
418 ## From Ulrich Drepper
419 ## ------------------------
423 AC_DEFUN(AM_PATH_LISPDIR,
424 [# If set to t, that means we are running in a shell under Emacs.
425 # If you have an Emacs named "t", then use the full path.
426 test "$EMACS" = t && EMACS=
427 AC_PATH_PROG(EMACS, emacs xemacs, no)
428 if test $EMACS != "no"; then
429 AC_MSG_CHECKING([where .elc files should go])
430 dnl Set default value
431 lispdir="\$(datadir)/emacs/site-lisp"
432 if test "x$prefix" = "xNONE"; then
433 if test -d $ac_default_prefix/share/emacs/site-lisp; then
434 lispdir="\$(prefix)/share/emacs/site-lisp"
436 if test -d $ac_default_prefix/lib/emacs/site-lisp; then
437 lispdir="\$(prefix)/lib/emacs/site-lisp"
441 if test -d $prefix/share/emacs/site-lisp; then
442 lispdir="\$(prefix)/share/emacs/site-lisp"
444 if test -d $prefix/lib/emacs/site-lisp; then
445 lispdir="\$(prefix)/lib/emacs/site-lisp"
449 AC_MSG_RESULT($lispdir)
453 dnl --- *@-AM_MAINTAINTER_MODE-@* ---
455 dnl Author: Jim Meyering
457 dnl Synopsis: jm_MAINTAINER_MODE
461 dnl Use: Provides an option `--enable-maintainer-mode' which turns
462 dnl on rules which might normally be commented out. The
463 dnl substitution variable `MAINT' is set to be a comment when
464 dnl this option is disabled, which it is by default.
468 AC_DEFUN(AM_MAINTAINER_MODE,
469 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
470 dnl maintainer-mode is disabled by default
471 AC_ARG_ENABLE(maintainer-mode,
472 [ --enable-maintainer-mode enable make rules and dependencies not useful
473 (and sometimes confusing) to the casual installer],
474 USE_MAINTAINER_MODE=$enableval,
475 USE_MAINTAINER_MODE=no)
476 AC_MSG_RESULT($USE_MAINTAINER_MODE)
477 if test $USE_MAINTAINER_MODE = yes; then
486 dnl --- *@-AM_MISSING_PROG-@* ---
490 dnl Synopsis: AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
492 dnl Arguments: NAME = variable to set to the file's location
493 dnl PROGRAM = name of program to find
494 dnl DIRECTORY = directory to look in
496 dnl Use: Fakes existence of a useful GNU maintainer tool.
498 AC_DEFUN(AM_MISSING_PROG,
499 [AC_MSG_CHECKING(for working $2)
500 # Run test in a subshell; some versions of sh will print an error if
501 # an executable is not found, even if stderr is redirected.
502 # Redirect stdin to placate older versions of autoconf. Sigh.
503 if ($2 --version) < /dev/null > /dev/null 2>&1; then
508 AC_MSG_RESULT(missing)
512 dnl --- *@-AM_FUNC_MKTIME-@* ---
514 dnl Author: Jim Meyering
516 dnl Synopsis: AM_FUNC_MKTIME
520 dnl Use: Checks for a working mktime function.
522 AC_DEFUN(AM_FUNC_MKTIME,
523 [AC_REQUIRE([AC_HEADER_TIME])dnl
524 AC_CHECK_HEADERS(sys/time.h)
525 AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime,
527 changequote(<<, >>)dnl
528 <</* Test program from Paul Eggert (eggert@twinsun.com)
529 and Tony Leneis (tony@plaza.ds.adp.com). */
530 #if TIME_WITH_SYS_TIME
531 # include <sys/time.h>
535 # include <sys/time.h>
541 static time_t time_t_max;
543 /* Values we'll use to set the TZ environment variable. */
544 static const char *const tz_strings[] = {
545 NULL, "GMT0", "JST-9", "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
547 #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
553 if (mktime (localtime (&now)) != now)
555 now = time_t_max - now;
556 if (mktime (localtime (&now)) != now)
566 for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
569 delta = time_t_max / 997; /* a suitable prime number */
570 for (i = 0; i < N_STRINGS; i++)
573 putenv (tz_strings[i]);
575 for (t = 0; t <= time_t_max - delta; t += delta)
577 mktime_test ((time_t) 60 * 60);
578 mktime_test ((time_t) 60 * 60 * 24);
584 am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no,
585 dnl When crosscompiling, assume mktime is missing or broken.
586 am_cv_func_working_mktime=no)
588 if test $am_cv_func_working_mktime = no; then
589 LIBOBJS="$LIBOBJS mktime.o"
593 dnl --- *@-AM_FUNC_OBSTACK-@* ---
595 dnl Author: Jim Meyering
597 dnl Synopsis: AM_FUNC_OBSTACK
601 dnl Use: Checks for GNU obstacks.
603 AC_DEFUN(AM_FUNC_OBSTACK,
604 [AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
605 [AC_TRY_LINK([#include "obstack.h"],
606 [struct obstack *mem;obstack_free(mem,(char *) 0)],
607 am_cv_func_obstack=yes,
608 am_cv_func_obstack=no)])
609 if test $am_cv_func_obstack = yes; then
610 AC_DEFINE(HAVE_OBSTACK)
612 LIBOBJS="$LIBOBJS obstack.o"
616 dnl --- *@-AC_C_PROTOTYPES-@* ---
618 dnl Author: Franc,ois Pinard
620 dnl Synopsis: AC_C_PROTOTYPES
624 dnl Use: If the C compiler understands ANSI C, define `PROTOTYPES',
625 dnl and clear the `U' and `ANSI2KNR' variables. Otherwise,
626 dnl set `U' to be `_' and `ANSI2KNR' to be `./ansi2knr'.
630 AC_DEFUN(fp_C_PROTOTYPES,
631 [AC_REQUIRE([AM_PROG_CC_STDC])
632 AC_MSG_CHECKING([for function prototypes])
633 if test "$ac_cv_prog_cc_stdc" != no; then
635 AC_DEFINE(PROTOTYPES)
639 U=_ ANSI2KNR=./ansi2knr
642 AC_SUBST(ANSI2KNR)dnl
645 dnl --- *@-AM_PATH_GTK-@* ---
647 dnl Author: Owen Taylor
649 dnl Synopsis: AM_PATH_GTK(MIN-VERSION, [ACTION-IF-FOUND], [ACTION-IF-NOT])
651 dnl Arguments: MIN-VERSION = minimum version of GTK required
652 dnl ACTION-IF-FOUND = executed if GTK found OK
653 dnl ACTION-IF-NOT-FOUND = what to do if GTK not available
655 dnl Use: Sets up compilation environment suitably for GTK programming.
657 # Configure paths for GTK+
658 # Owen Taylor 97-11-3
660 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
661 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
663 AC_DEFUN(AM_PATH_GTK,
665 dnl Get the cflags and libraries from the gtk-config script
667 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
668 gtk_config_prefix="$withval", gtk_config_prefix="")
669 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
670 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
671 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
672 , enable_gtktest=yes)
674 if test x$gtk_config_exec_prefix != x ; then
675 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
676 if test x${GTK_CONFIG+set} != xset ; then
677 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
680 if test x$gtk_config_prefix != x ; then
681 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
682 if test x${GTK_CONFIG+set} != xset ; then
683 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
687 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
688 min_gtk_version=ifelse([$1], ,0.99.7,$1)
689 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
691 if test "$GTK_CONFIG" = "no" ; then
694 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
695 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
696 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
697 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
698 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
699 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
700 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
701 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
702 if test "x$enable_gtktest" = "xyes" ; then
703 ac_save_CFLAGS="$CFLAGS"
705 CFLAGS="$CFLAGS $GTK_CFLAGS"
706 LIBS="$LIBS $GTK_LIBS"
708 dnl Now check if the installed GTK is sufficiently new. (Also sanity
709 dnl checks the results of gtk-config to some extent
719 int major, minor, micro;
722 system ("touch conf.gtktest");
724 /* HP/UX 9 (%@#!) writes to sscanf strings */
725 tmp_version = g_strdup("$min_gtk_version");
726 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
727 printf("%s, bad version string\n", "$min_gtk_version");
731 if ((gtk_major_version != $gtk_config_major_version) ||
732 (gtk_minor_version != $gtk_config_minor_version) ||
733 (gtk_micro_version != $gtk_config_micro_version))
735 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
736 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
737 gtk_major_version, gtk_minor_version, gtk_micro_version);
738 printf ("*** was found! If gtk-config was correct, then it is best\n");
739 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
740 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
741 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
742 printf("*** required on your system.\n");
743 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
744 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
745 printf("*** before re-running configure\n");
749 if ((gtk_major_version > major) ||
750 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
751 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
757 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
758 gtk_major_version, gtk_minor_version, gtk_micro_version);
759 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
760 major, minor, micro);
761 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
763 printf("*** If you have already installed a sufficiently new version, this error\n");
764 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
765 printf("*** being found. The easiest way to fix this is to remove the old version\n");
766 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
767 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
768 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
769 printf("*** so that the correct libraries are found at run-time))\n");
774 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
775 CFLAGS="$ac_save_CFLAGS"
779 if test "x$no_gtk" = x ; then
781 ifelse([$2], , :, [$2])
784 if test "$GTK_CONFIG" = "no" ; then
785 echo "*** The gtk-config script installed by GTK could not be found"
786 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
787 echo "*** your path, or set the GTK_CONFIG environment variable to the"
788 echo "*** full path to gtk-config."
790 if test -f conf.gtktest ; then
793 echo "*** Could not run GTK test program, checking why..."
794 CFLAGS="$CFLAGS $GTK_CFLAGS"
795 LIBS="$LIBS $GTK_LIBS"
799 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
800 [ echo "*** The test program compiled, but did not run. This usually means"
801 echo "*** that the run-time linker is not finding GTK or finding the wrong"
802 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
803 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
804 echo "*** to the installed location Also, make sure you have run ldconfig if that"
805 echo "*** is required on your system"
807 echo "*** If you have an old version installed, it is best to remove it, although"
808 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
810 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
811 echo "*** came with the system with the command"
813 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
814 [ echo "*** The test program failed to compile or link. See the file config.log for the"
815 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
816 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
817 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
818 CFLAGS="$ac_save_CFLAGS"
824 ifelse([$3], , :, [$3])
831 dnl --- *@-AC_TYPE_PTRDIFF_T-@* ---
833 dnl Author: Ulrich Drepper
835 dnl Synopsis: AC_TYPE_PTRDIFF_T
839 dnl Use: Sets HAVE_PTRDIFF_T if the type exists.
841 AC_DEFUN(AM_TYPE_PTRDIFF_T,
842 [AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
843 [AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
844 am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
845 if test $am_cv_type_ptrdiff_t = yes; then
846 AC_DEFINE(HAVE_PTRDIFF_T)
850 dnl --- *@-AM_WITH_REGEX-@* ---
852 dnl Author: Unknown (possibly Franc,ois Pinard)
854 dnl Synopsis: AM_WITH_REGEX
859 dnl The idea is to distribute rx.[hc] and regex.[hc] together,
860 dnl for a while. The WITH_REGEX symbol (which should also be
861 dnl documented in acconfig.h) is used to decide which of regex.h
862 dnl or rx.h should be included in the application. If
863 dnl `./configure --with-regex' is given (the default), the
864 dnl package will use gawk's regex. If `./configure
865 dnl --without-regex', a check is made to see if rx is already
866 dnl installed, as with newer Linux'es. If not found, the package
867 dnl will use the rx from the distribution. If found, the package
868 dnl will use the system's rx which, on Linux at least, will
869 dnl result in a smaller executable file.
871 AC_DEFUN(AM_WITH_REGEX,
872 [AC_MSG_CHECKING(which of GNU rx or gawk's regex is wanted)
874 [ --without-regex use GNU rx in lieu of gawk's regex for matching],
875 [test "$withval" = yes && am_with_regex=1],
877 if test -n "$am_with_regex"; then
879 AC_DEFINE(WITH_REGEX)
880 AC_CACHE_CHECK([for GNU regex in libc], am_cv_gnu_regex,
881 AC_TRY_LINK([], [extern int re_max_failures; re_max_failures = 1],
882 am_cv_gnu_regex=yes, am_cv_gnu_regex=no))
883 if test $am_cv_gnu_regex = no; then
884 LIBOBJS="$LIBOBJS regex.o"
888 AC_CHECK_FUNC(re_rx_search, , [LIBOBJS="$LIBOBJS rx.o"])
893 dnl --- *@-AM_SANITY_CHECK-@*
897 dnl Synopsis: AM_SANITY_CHECK
901 dnl Use: Check for build environment sanity.
903 AC_DEFUN(AM_SANITY_CHECK,
904 [AC_MSG_CHECKING([whether build environment is sane])
907 echo timestamp > conftestfile
908 # Do `set' in a subshell so we don't clobber the current shell's
909 # arguments. Must try -L first in case configure is actually a
910 # symlink; some systems play weird games with the mod time of symlinks
911 # (eg FreeBSD returns the mod time of the symlink's containing
914 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
915 if test "$@" = "X"; then
917 set X `ls -t $srcdir/configure conftestfile`
919 test "[$]2" = conftestfile
925 AC_MSG_ERROR([newly created file is older than distributed files!
926 Check your system clock])
931 dnl --- *@-AM_FUNC_STRDOD-@* ---
933 dnl Author: Jim Meyering
935 dnl Synopsis: AM_FUNC_STRTOD
939 dnl Use: Checks for a working strtod function.
941 ## Copyright (C) 1996 Free Software Foundation, Inc.
943 ## This program is free software; you can redistribute it and/or modify
944 ## it under the terms of the GNU General Public License as published by
945 ## the Free Software Foundation; either version 2, or (at your option)
946 ## any later version.
948 ## This program is distributed in the hope that it will be useful,
949 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
950 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
951 ## GNU General Public License for more details.
953 ## You should have received a copy of the GNU General Public License
954 ## along with this program; if not, write to the Free Software
955 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
958 ## From Jim Meyering.
962 ## @defmac AC_FUNC_STRTOD
963 ## @maindex FUNC_STRTOD
965 ## If the @code{strtod} function is not available, or does not work
966 ## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
967 ## variable @code{LIBOBJS}.
970 AC_DEFUN(AM_FUNC_STRTOD,
971 [AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
978 /* Some versions of Linux strtod mis-parse strings with leading '+'. */
979 char *string = " +69";
982 value = strtod (string, &term);
983 if (value != 69 || term != (string + 4))
988 /* Under Solaris 2.4, strtod returns the wrong value for the
989 terminating character under some conditions. */
990 char *string = "NaN";
992 strtod (string, &term);
993 if (term != string && *(term - 1) == 0)
998 ], am_cv_func_strtod=yes, am_cv_func_strtod=no, am_cv_func_strtod=no)])
999 test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
1000 AC_SUBST(LIBOBJS)dnl
1001 am_cv_func_strtod_needs_libm=no
1002 if test $am_cv_func_strtod = no; then
1004 if test $ac_cv_func_pow = no; then
1005 AC_CHECK_LIB(m, pow, [am_cv_func_strtod_needs_libm=yes],
1006 [AC_MSG_WARN(can't find library containing definition of pow)])
1011 dnl --- *@-AM_SYS_POSIX_TERMIOS-@* ---
1013 dnl Author: Jim Meyering
1015 dnl Synopsis: AM_SYS_POSIX_TERMIOS
1019 dnl Use: Checks for a POSIX termios.h.
1021 AC_DEFUN(AM_SYS_POSIX_TERMIOS,
1022 [AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
1023 [AC_TRY_LINK([#include <sys/types.h>
1025 #include <termios.h>],
1026 [/* SunOS 4.0.3 has termios.h but not the library calls. */
1028 am_cv_sys_posix_termios=yes,
1029 am_cv_sys_posix_termios=no)])
1032 dnl----- Macros by Mark Wooding ------------------------------ *@--IGNORE--@*
1034 dnl --- *@-mdw_REQUIRE-@* ---
1036 dnl Author: Mark Wooding
1038 dnl Synopsis: mdw_REQUIRE(MACRO, ARGS...)
1040 dnl Arguments: MACRO = name of a macro which should have been called
1041 dnl ARGS = arguments to pass
1043 dnl Use: Like `AC_REQUIRE', only it handles arguments.
1045 AC_DEFUN(mdw_REQUIRE,
1046 [ifdef([AC_PROVIDE_$1], ,
1047 [AC_DIVERT_PUSH(builtin(eval, AC_DIVERSION_CURRENT - 1))dnl
1052 dnl --- *@-mdw_CURSES-@* ---
1054 dnl Author: Mark Wooding
1056 dnl Synopsis: mdw_CURSES
1060 dnl Use: Searches for a `curses' library (one of `ncurses' or
1061 dnl `curses') using mdw_CHECK_MANYLIBS. If one is found, the
1062 dnl preprocessor macro HAVE_CURSES is defined, and a search is
1063 dnl made for a `curses' header file (one of <ncurses.h>,
1064 dnl <ncurses/ncurses.h> or <curses.h>) using AC_CHECK_HEADERS
1065 dnl and the appropriate preprocessor symbol is defined.
1066 dnl Finally, a check is made for the function `wresize' using
1069 AC_DEFUN(mdw_CURSES,
1070 [mdw_CHECK_MANYLIBS(newwin, ncurses curses, AC_DEFINE(HAVE_CURSES))
1071 if test $mdw_cv_lib_newwin != no; then
1072 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h curses.h], [break])
1073 if test "$ac_cv_header_ncurses_h" = "no" &&
1074 test "$ac_cv_header_ncurses_ncurses_h" = "no" &&
1075 test "$ac_cv_header_curses_h" = "no"; then
1076 AC_MSG_WARN([couldn't find a \`curses' header. Assuming \`curses.h'.])
1077 AC_DEFINE(HAVE_CURSES_H)
1079 AC_CHECK_FUNCS(wresize)
1082 dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
1084 dnl Author: Mark Wooding
1086 dnl Synopsis: mdw_TYPE_SSIZE_T
1090 dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
1091 dnl it defaults to `int'.
1093 AC_DEFUN(mdw_TYPE_SSIZE_T,
1094 [AC_REQUIRE([AC_HEADER_STDC])
1095 AC_CACHE_CHECK(for ssize_t, mdw_cv_ssize_t,
1096 [AC_EGREP_CPP(ssize_t,
1097 [#include <sys/types.h>
1105 [mdw_cv_ssize_t=yes], [mdw_cv_ssize_t=no])])
1106 if test $mdw_cv_ssize_t = no; then
1107 AC_DEFINE(ssize_t, int)
1110 dnl --- *@-mdw_DECL_ENVIRON-@* ---
1112 dnl Author: Mark Wooding
1114 dnl Synopsis: mdw_DECL_ENVIRON
1118 dnl Use: Searches for a declaration of the global `environ' variable.
1119 dnl If one is found in one of the `usual' places, DECL_ENVIRON
1120 dnl is defined as a preprocessor symbol.
1122 AC_DEFUN(mdw_DECL_ENVIRON,
1123 [AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
1124 [AC_EGREP_CPP(environ,
1125 [#include <sys/types.h>
1132 #endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
1133 if test $mdw_cv_environ = yes; then
1134 AC_DEFINE(DECL_ENVIRON)
1137 dnl --- *@-mdw_CHECK_MANYLIBS-@* ---
1139 dnl Author: Mark Wooding
1141 dnl Synopsis: mdw_CHECK_MANYLIBS(FUNC, LIBS, [IF-FOUND], [IF-NOT-FOUND],
1142 dnl [INCLUDES], [ARGS])
1144 dnl Arguments: FUNC = a function to try to find
1145 dnl LIBS = a whitespace-separated list of libraries to search
1146 dnl IF-FOUND = what to do when the function is found
1147 dnl IF-NOT-FOUND = what to do when the function isn't found
1148 dnl INCLUDES = other include files to add
1149 dnl ARGS = arguments to pass the function
1151 dnl Use: Searches for a library which defines FUNC. It first tries
1152 dnl without any libraries; then it tries each library specified
1153 dnl in LIBS in turn. If it finds a match, it adds the
1154 dnl appropriate library to `LIBS'.
1156 dnl This is particularly handy under DIREIX: if you link with
1157 dnl `-lnsl' then you get non-NIS-aware versions of getpwnam and
1158 dnl so on, which is clearly a Bad Thing.
1160 AC_DEFUN(mdw_CHECK_MANYLIBS,
1161 [AC_CACHE_CHECK([for library containing $1], [mdw_cv_lib_$1],
1162 [mdw_save_LIBS="$LIBS"
1164 AC_TRY_LINK([$5], [$1($6)], [mdw_cv_lib_$1="none required"])
1165 test "$mdw_cv_lib_$1" = "no" && for i in $2; do
1166 LIBS="-l$i $mdw_save_LIBS"
1167 AC_TRY_LINK([$5], [$1($6)],
1168 [mdw_cv_lib_$1="-l$i"
1171 LIBS="$mdw_save_LIBS"])
1172 if test "$mdw_cv_lib_$1" != "no"; then
1173 test "$mdw_cv_lib_$1" = "none required" || LIBS="$mdw_cv_lib_$1 $LIBS"
1179 dnl --- *@-mdw__PERL_VERSION-@* ---
1181 dnl AC_DEFUN relies on `[', `]' being quotes, so I have to drop down a level.
1184 define(mdw__PERL_VERSION, <<$1 -e 'exit ($] < $2);' >&5 2>&5>>)
1187 dnl --- *@-mdw_PROG_PERL-@* ---
1189 dnl Author: Mark Wooding
1191 dnl Synopsis: mdw_PROG_PERL(VERSION, [IF-FOUND], [IF-NOT-FOUND])
1193 dnl Arguments: VERSION = version number of Perl required
1194 dnl IF-FOUND = what to do if it's found
1195 dnl IF-NOT-FOUND = what to do if it isn't
1197 dnl Use: Attempts to find a working version of Perl with a late
1198 dnl enough version number. It supplies an option `--with-perl'
1199 dnl to allow the user to provide a Perl interpreter. If one
1200 dnl isn't provided explicitly, it searches for `perl' and `perl5'
1201 dnl in the current PATH, asking them whether they have a late
1202 dnl enough version number. The path of the working Perl is
1203 dnl put into the `PERL' environment variable; `AC_SUBST' is used
1204 dnl to substitute its value into Perl scripts. If there is no
1205 dnl Perl to be found, the value of `PERL' is set to be `none'.
1207 AC_DEFUN(mdw_PROG_PERL,
1208 [AC_ARG_WITH([perl],
1209 [ --with-perl=PERL specify path to Perl version $1 or newer],
1211 if test -z "$PERL"; then
1212 [AC_CACHE_CHECK([for Perl version $1 or later], mdw_cv_prog_perl,
1213 [mdw_cv_prog_perl="none"
1214 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
1215 case $p in /*) ;; *) p=`pwd`/$p ;; esac
1216 if mdw__PERL_VERSION(["$p/perl"], $1); then
1217 mdw_cv_prog_perl="$p/perl"
1220 if mdw__PERL_VERSION(["$p/perl5"], $1); then
1221 mdw_cv_prog_perl="$p/perl5"
1225 PERL="$mdw_cv_prog_perl"])
1229 if test "$PERL" = "none"; then :
1235 dnl --- *@-mdw_CHECK_PERL-@* ---
1237 dnl Author: Mark Wooding
1239 dnl Synopsis: mdw_CHECK_PERL(VERSION)
1241 dnl Arguments: VERSION = version number of Perl required
1243 dnl Use: Verifies that the Perl interpreter in the `PERL' shell
1244 dnl variable actually works and is of the right version. If it's
1245 dnl not, an error is raised and configuration is aborted.
1247 AC_DEFUN(mdw_CHECK_PERL,
1248 [mdw_REQUIRE([mdw_PROG_PERL], [$1])
1249 AC_MSG_CHECKING([whether Perl ($PERL) works])
1250 if test "$PERL" != "none" && mdw__PERL_VERSION("$PERL", $1); then
1251 AC_MSG_RESULT([yes])
1254 AC_MSG_ERROR([Perl version $1 or newer not found.
1255 If you have a recent enough Perl, and I just failed to find it, try using
1256 the --with-perl=PERL option to give me an explicit pathname.])
1259 dnl --- *@-mdw_PERLLIB_CHECK-@* ---
1261 dnl Author: Mark Wooding
1263 dnl Synopsis: mdw_PERLLIB_CHECK(LIBRARY)
1265 dnl Arguments: LIBRARY = name of a Perl library to check for
1267 dnl Use: Ensures that a Perl script can `use LIBRARY;'. If it can,
1268 dnl all's well and good; if it can't, `LIBRARY.pm' is added to
1269 dnl the variable `NEEDED_PERLLIBS' and a line which adds
1270 dnl `pkgdatadir' to Perl's `@INC' array is placed in the
1271 dnl variable `INC_PERLLIBS'; `AC_SUBST' is called for both of
1272 dnl these variables. It's expected that `NEEDED_PERLLIBS' will
1273 dnl be used in the `Makefile.in' to decide which versions from
1274 dnl the distribution need installing.
1276 dnl This macro isn't terribly useful in the general case. It
1277 dnl Also implicitly assumes that `$PERL' is Perl 5 or later.
1279 AC_DEFUN(mdw__PERLLIB_INIT,
1280 [AC_SUBST(INC_PERLLIBS)dnl
1281 AC_SUBST(NEEDED_PERLLIBS)dnl
1284 AC_DEFUN(mdw_PERLLIB_CHECK,
1285 [AC_REQUIRE([mdw__PERLLIB_INIT])
1286 mdw_REQUIRE([mdw_CHECK_PERL], 5)
1287 AC_CACHE_CHECK([for Perl library $1], mdw_cv_perllib_$1,
1288 [if $PERL -e 'use $1;' >&5 2>&5; then
1289 mdw_cv_perllib_$1="yes"
1291 mdw_cv_perllib_$1="no"
1294 if test "$mdw_cv_perllib_$1" = "no"; then
1295 NEEDED_PERLLIBS="$NEEDED_PERLLIBS $1.pm"
1297 # --- Deal with autoconf lossage ---
1299 # It doesn't want to define `prefix' until rather later on, so I have
1302 if test -z "$INC_PERLLIBS"; then
1303 mdw_old_prefix="$prefix"
1304 test "$prefix" = "NONE" && prefix="$ac_default_prefix";
1305 INC_PERLLIBS="BEGIN { push @INC, \"`eval echo $datadir/$PACKAGE`\"; }"
1306 prefix="$mdw_old_prefix";
1310 dnl --- *@-mdw_GCC_FLAGS-@* ---
1312 dnl Author: Mark Wooding
1314 dnl Synopsis: mdw_GCC_FLAGS([FLAGS], [CFLAGS], [C++FLAGS])
1316 dnl Arguments: FLAGS = GCC compiler flags to add (default is
1317 dnl `-pedantic -Wall')
1318 dnl CFLAGS = GCC C compiler flags to add (default is empty)
1319 dnl C++FLAGS = GCC C++ compiler flags to add (default is
1320 dnl `-fhandle-exceptions').
1322 dnl Use: If the C compiler is GCC, add the compiler flags.
1324 AC_DEFUN(mdw_GCC_FLAGS,
1325 [if test "$GCC" = "yes"; then
1326 CFLAGS="$CFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1327 CFLAGS="$CFLAGS ifelse([$2], [], [], [$2])"
1329 if test "$GXX" = "yes"; then
1330 CXXFLAGS="$CXXFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1331 CXXFLAGS="$CXXFLAGS ifelse([$3], [], [-fhandle-exceptions], [$3])"
1334 dnl *@-mdw_INIT_LIB-@*
1336 dnl Author: Mark Wooding
1338 dnl Synopsis: mdw_INIT_LIB(LIB, NAME, VERSION, [PACKAGE])
1340 dnl Arguments: LIB = the name of the library (and the package)
1341 dnl NAME = a presentable version of the library's name
1342 dnl VERSION = version of the library
1343 dnl PACKAGE = package name to pass on to AM_INIT_AUTOMAKE
1345 dnl Use: Sets up various useful variables. This macro calls
1346 dnl AM_INIT_AUTOMAKE, which might be considered useful. It also
1347 dnl provides variables for the use of `lib-config.in'.
1349 AC_DEFUN([mdw_INIT_LIB],
1350 [AM_INIT_AUTOMAKE(ifelse([$4], [], [$1], [$4]), [$3])
1351 LIBRARY="$1" AC_SUBST(LIBRARY)
1352 LIBNAME="$2" AC_SUBST(LIBNAME)])
1354 dnl *@-mdw_LIB_CONFIG-@*
1356 dnl Author: Mark Wooding
1358 dnl Synopsis: mdw_LIB_CONFIG(LIB, NAME, VERSION, IF-FOUND, IF-NOT-FOUND)
1360 dnl Arguments: LIB = the name of the library (and its configuration program)
1361 dnl NAME = a presentable version of the library's name
1362 dnl VERSION = version of library required
1363 dnl IF-FOUND = what to do if found
1364 dnl IF-NOT-FOUND = what to do if not found
1366 dnl Use: Configures a library client program, using a configuration
1367 dnl script provided by the library maintainer.
1369 dnl The default version is 1.0.0pre0; the default action is to
1370 dnl add everything to the CFLAGS and LIBS variables, and complain
1371 dnl if the library couldn't be found.
1373 dnl The variable LIB_VERSION contains the version number of
1374 dnl the library; LIB_CFLAGS is the C compiler flags required
1375 dnl and LIB_LIBS is the linker flags.
1377 AC_DEFUN([mdw_LIB_CONFIG],
1378 [pushdef([upname], translit([$1], [a-z], [A-Z]))dnl
1379 AC_MSG_CHECKING([for $2 library])
1380 if $1-config --check $3 >/dev/null 2>&1; then
1381 upname[]_VERSION=`$1-config --version`
1382 upname[]_CFLAGS=`$1-config --cflags`
1383 upname[]_LIBS=`$1-config --libs`
1384 AC_SUBST(upname[]_VERSION)
1385 AC_SUBST(upname[]_CFLAGS)
1386 AC_SUBST(upname[]_LIBS)
1388 [CFLAGS="$CFLAGS $upname[]_CFLAGS"
1389 LIBS="$upname[]_LIBS $LIBS"],
1391 AC_MSG_RESULT([$upname[]_VERSION])
1394 AC_MSG_ERROR([$2 library not found or too old.]),
1396 AC_MSG_RESULT([not found])
1402 dnl Author: Mark Wooding
1404 dnl Synopsis: mdw_MLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1406 dnl Arguments: VERSION = version of library required
1407 dnl IF-FOUND = what to do if found
1408 dnl IF-NOT-FOUND = what to do if not found
1410 dnl Use: Configures an mLib client program.
1412 AC_DEFUN([mdw_MLIB], [mdw_LIB_CONFIG(mLib, mLib, $@)])
1416 dnl Author: Mark Wooding
1418 dnl Synopsis: mdw_MGLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1420 dnl Arguments: VERSION = version of library required
1421 dnl IF-FOUND = what to do if found
1422 dnl IF-NOT-FOUND = what to do if not found
1424 dnl Use: Configures an mgLib client program.
1426 AC_DEFUN([mdw_MGLIB],
1427 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1428 mdw_LIB_CONFIG(mgLib, mgLib, $@)])
1430 dnl *@-mdw_CATACOMB-@*
1432 dnl Author: Mark Wooding
1434 dnl Synopsis: mdw_CATACOMB([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1436 dnl Arguments: VERSION = version of Catacomb required
1437 dnl IF-FOUND = what to do if found
1438 dnl IF-NOT-FOUND = what to do if not found
1440 dnl Use: Configures the program as a Catacomb client.
1442 AC_DEFUN([mdw_CATACOMB],
1443 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1444 mdw_LIB_CONFIG(catacomb, Catacomb, $@)])
1448 dnl Author: Mark Wooding
1450 dnl Synopsis: mdw_PK([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1452 dnl Arguments: VERSION = version of PK 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 the program as a PK client.
1459 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1460 mdw_LIB_CONFIG(pk, PK, $@)])
1462 dnl --- *@-mdw_OPT_NDEBUG-@* ---
1464 dnl Author: Mark Wooding
1466 dnl Synopsis: mdw_OPT_NDEBUG
1470 dnl Use: Turns on the `NDEBUG' flag, to disable useful things like
1473 AC_DEFUN(mdw_OPT_NDEBUG,
1474 [AC_ARG_ENABLE(debugging,
1475 [ --disable-debugging spews vast swathes of useless information],
1476 [if test "$enableval" = "no"; then
1477 AC_DEFINE(NDEBUG, 1)
1480 dnl --- *@-mdw_OPT_EFENCE-@* ---
1482 dnl Author: Mark Wooding
1484 dnl Synopsis: mdw_OPT_EFENCE
1488 dnl Use: Links with the Electric Fence library.
1490 AC_DEFUN(mdw_OPT_EFENCE,
1491 [AC_ARG_WITH(electric-fence,
1492 [ --with-electric-fence link programs with Electric Fence],
1493 [if test "$withval" = "yes"; then
1494 AC_CHECK_LIB(efence, malloc)
1497 dnl --- *@-mdw_OPT_TRACE-@* ---
1499 dnl Author: Mark Wooding
1501 dnl Synopsis: mdw_OPT_TRACE
1505 dnl Use: Turns on the `NTRACE' flag, to disable useful things like
1508 AC_DEFUN(mdw_OPT_TRACE,
1509 [AC_ARG_ENABLE(tracing,
1510 [ --disable-tracing disable output of trace information],
1511 [if test "$enableval" = "no"; then
1512 AC_DEFINE(NTRACE, 1)
1515 dnl --- *@-mdw_OPT_mLib_TRACK-@* ---
1517 dnl Author: Mark Wooding
1519 dnl Synopsis: mdw_OPT_mLib_TRACK(PROGRAM)
1521 dnl Arguments: PROGRAM = name of this program or package.
1523 dnl Use: Controls the unsupported mLib memory tracker. The
1524 dnl following are defined:
1526 dnl --enable-track turns on malloc tracking
1527 dnl --enable-blame-PROGRAM tracks malloc contexts in PROGRAM
1529 dnl There must be a separate `blame' option for each program,
1530 dnl so that the various blame options in a hierarchy get
1531 dnl propagated properly. This is an obsolete feature from the
1532 dnl days when mLib was provided as a subdirectory of other
1535 AC_DEFUN(mdw_OPT_mLib_TRACK,
1536 [AC_REQUIRE([mdw_OPT_TRACE])
1537 AC_ARG_ENABLE(track,
1538 [ --enable-track enable tracking of malloc and free],
1539 [AC_DEFINE(TRACK_ENABLE, 1)])
1540 AC_ARG_ENABLE(blame-$1,
1542 track malloc contexts while in $1],
1543 [AC_DEFINE(TRACK_BLAME, 1)])])
1545 dnl --- *@-mdw_OPT_mLib_DEBUG-@* ---
1547 dnl Author: Mark Wooding
1549 dnl Synopsis: mdw_OPT_mLib_DEBUG(PROGRAM)
1551 dnl Arguments: PROGRAM = name of this program or package.
1553 dnl Use: Provides all of the above debugging options.
1555 AC_DEFUN(mdw_OPT_mLib_DEBUG,
1556 [mdw_REQUIRE([mdw_OPT_NDEBUG])
1557 mdw_REQUIRE([mdw_OPT_mLib_TRACK], [$1])])
1559 dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*