1 dnl -*-fundamental-*- *@--GLOB-HEADER--@*
3 dnl $Id: aclocal.glob,v 1.12 2001/02/04 01:18:52 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.12 2001/02/04 01:18:52 mdw
32 dnl Overhaul the mLib debugging options.
34 dnl Revision 1.11 2001/01/20 12:03:08 mdw
35 dnl Remove redundant stuff.
37 dnl Revision 1.10 2000/10/14 16:32:15 mdw
38 dnl Fixes from upstream.
40 dnl Revision 1.9 2000/08/15 21:37:49 mdw
41 dnl New initialization macro for libraries, and a new base client macro for
42 dnl finding libraries with an appropriate version.
44 dnl Revision 1.8 1999/11/26 01:23:17 mdw
45 dnl And support for MXD (not yet released).
47 dnl Revision 1.7 1999/11/11 20:03:58 mdw
48 dnl Add support for mgLib too.
50 dnl Revision 1.6 1999/11/11 17:49:33 mdw
51 dnl New macros for configuring clients of mLib and Catacomb.
53 dnl Revision 1.5 1999/07/27 18:27:37 mdw
54 dnl Fix typo in header line for mdw_DECL_ENVIRON.
56 dnl Revision 1.4 1999/07/26 23:44:32 mdw
57 dnl Reorder and tidy documentation.
59 dnl Revision 1.3 1999/07/17 10:27:44 mdw
60 dnl More useful macros added.
62 dnl Revision 1.2 1999/05/13 22:57:23 mdw
63 dnl Change `-ise' to `-ize' throughout.
65 dnl Revision 1.1.1.1 1999/05/05 19:23:47 mdw
66 dnl New import. The old CVS repository was lost in a disk disaster.
69 dnl----- Common files distribution --------------------------- *@--NOTICE--@*
71 dnl $Id: aclocal.glob,v 1.12 2001/02/04 01:18:52 mdw Exp $
73 dnl --- *@-AM_PROG_CC_STDC-@* ---
75 dnl Author: Franc,ois Pinard
77 dnl Synopsis: AM_PROG_CC_STDC
81 dnl Use: If the C compiler in not in ANSI C mode by default, try to
82 dnl add an option to output variable `CC' to make it so. This
83 dnl macro tries various options that select ANSI C on some system
84 dnl or another. It considers the compiler to be in ANSI C mode
85 dnl if it defines `__STDC__' to 1 and handles function prototypes
88 dnl If you use this macro, you should check after calling it
89 dnl whether the C compiler has been set to accept ANSI C; if not,
90 dnl the shell variable `ac_cv_prog_cc_stdc' is set to `no'. If
91 dnl you wrote your source code in ANSI C, you can make an
92 dnl un-ANSIfied copy of it by using the program `ansi2knr', which
93 dnl comes with Ghostscript.
95 dnl (documentation by Franc,ois Pinard)
97 AC_DEFUN(AM_PROG_CC_STDC,
98 [AC_REQUIRE([AC_PROG_CC])
99 AC_BEFORE([$0], [AC_C_INLINE])
100 AC_BEFORE([$0], [AC_C_CONST])
101 AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
102 AC_CACHE_VAL(am_cv_prog_cc_stdc,
103 [am_cv_prog_cc_stdc=no
105 # Don't try gcc -ansi; that turns off useful extensions and
106 # breaks some systems' header files.
108 # Ultrix and OSF/1 -std1
109 # HP-UX -Aa -D_HPUX_SOURCE
110 # SVR4 -Xc -D__EXTENSIONS__
111 for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
113 CC="$ac_save_CC $ac_arg"
115 [#if !defined(__STDC__) || __STDC__ != 1
118 /* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
120 # include <sys/types.h>
121 # include <sys/stat.h>
124 int test (int i, double x);
125 struct s1 {int (*f) (int a);};
126 struct s2 {int (*f) (double a);};],
127 [am_cv_prog_cc_stdc="$ac_arg"; break])
131 if test -z "$am_cv_prog_cc_stdc"; then
132 AC_MSG_RESULT([none needed])
134 AC_MSG_RESULT($am_cv_prog_cc_stdc)
136 case "x$am_cv_prog_cc_stdc" in
138 *) CC="$CC $am_cv_prog_cc_stdc" ;;
142 dnl----- AutoMake macros ------------------------------------- *@--IGNORE--@*
144 dnl --- *@-AM_CONDITIONAL-@* ---
148 dnl Synopsis: AM_CONDITIONAL(NAME, TEST)
150 dnl Arguments: NAME = name of the conditional
151 dnl TEST = a shell list to execute
153 dnl Use: Allows conditional sections in Makefiles.
155 AC_DEFUN(AM_CONDITIONAL,
166 dnl --- *@-AM_CYGWIN32-@* ---
168 dnl Author: Cygnus (I guess)
170 dnl Synopsis: AM_CYGWIN32
174 dnl Use: Check to see if we're running under Cygwin32, without using
175 dnl AC_CANONICAL_*. If so, set output variable EXEEXT to
176 dnl ".exe". Otherwise set it to "".
179 dnl You might think we can do this by checking for a cygwin32-specific
180 dnl cpp define. We can't, because cross-compilers that target
181 dnl cygwin32 don't use the .exe suffix. I don't know why.
182 AC_DEFUN(AM_CYGWIN32,
183 [AC_CACHE_CHECK(for Cygwin32 environment, am_cv_cygwin32,
184 [cat > conftest.$ac_ext << 'EOF'
189 if AC_TRY_EVAL(ac_link) && test -s conftest.exe; then
196 test "$am_cv_cygwin32" = yes && EXEEXT=.exe
199 dnl --- *@-AM_WITH_DMALLOC-@* ---
201 dnl Author: Franc,ois Pinard
203 dnl Synopsis: AM_WITH_DMALLOC
207 dnl Use: Links with `-dmalloc' if told to by the user.
209 ## ----------------------------------- ##
210 ## Check if --with-dmalloc was given. ##
211 ## From Franc,ois Pinard ##
212 ## ----------------------------------- ##
216 AC_DEFUN(AM_WITH_DMALLOC,
217 [AC_MSG_CHECKING(if malloc debugging is wanted)
219 [ --with-dmalloc use dmalloc, as in
220 ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz],
221 [if test "$withval" = yes; then
223 AC_DEFINE(WITH_DMALLOC)
224 LIBS="$LIBS -ldmalloc"
225 LDFLAGS="$LDFLAGS -g"
228 fi], [AC_MSG_RESULT(no)])
231 dnl --- *@-AM_FUNC_ERROR_AT_LINE-@* ---
233 dnl Author: Jim Meyering
235 dnl Synopsis: AM_FUNC_ERROR_AT_LINE
239 dnl Use: Use this if you use the GNU error.[ch].
241 dnl FIXME: Migrate into libit
243 AC_DEFUN(AM_FUNC_ERROR_AT_LINE,
244 [AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
245 [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
246 am_cv_lib_error_at_line=yes,
247 am_cv_lib_error_at_line=no)])
248 if test $am_cv_lib_error_at_line = no; then
249 LIBOBJS="$LIBOBJS error.o"
254 dnl --- *@-AM_INIT_GUILE_MODULE-@* ---
258 dnl Synopsis: AM_INIT_GUILE_MODULE(MODNAME)
260 dnl Arguments: MODNAME = value to initialize `module' variable with
262 dnl Use: This macro will automatically get the guile version from the
263 dnl top-level srcdir, and will initialize automake. It also
264 dnl defines the `module' variable.
266 AC_DEFUN([AM_INIT_GUILE_MODULE],[
267 . $srcdir/../GUILE-VERSION
268 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
269 AC_CONFIG_AUX_DIR(..)
273 dnl --- *@-AM_CONFIG_HEADER-@* ---
277 dnl Synopsis: AM_CONFIG_HEADER(HEADER ...)
279 dnl Arguments: HEADER = a header spec, as for AC_CONFIG_HEADER
281 dnl Use: Like AC_CONFIG_HEADER, but automatically create stamp file.
283 AC_DEFUN(AM_CONFIG_HEADER,
285 AC_CONFIG_HEADER([$1])
286 dnl When config.status generates a header, we must update the stamp-h file.
287 dnl This file resides in the same directory as the config header
288 dnl that is generated. We must strip everything past the first ":",
289 dnl and everything past the last "/".
290 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
291 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
292 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/
293 \)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
295 for am_file in <<$1>>; do
296 case " <<$>>CONFIG_HEADERS " in
297 *" <<$>>am_file "*<<)>>
298 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
301 am_indx=`expr "<<$>>am_indx" + 1`
305 dnl --- *@-AM_INIT_AUTOMAKE-@*
309 dnl Synopsis: AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
311 dnl Arguments: PACKAGE = package name
312 dnl VERSION = version number
313 dnl NO-DEFINE = if set, don't define package and version number
315 dnl Use: Do all the work for Automake. This macro actually does too
316 dnl much -- some checks are only needed if your package does
317 dnl certain things. But this isn't really a big deal.
321 AC_DEFUN(AM_INIT_AUTOMAKE,
322 [AC_REQUIRE([AC_PROG_INSTALL])
327 dnl test to see if srcdir already configured
328 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
329 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
332 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
333 AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
334 AC_REQUIRE([AM_SANITY_CHECK])
335 AC_REQUIRE([AC_ARG_PROGRAM])
336 dnl FIXME This is truly gross.
337 missing_dir=`cd $ac_aux_dir && pwd`
338 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
339 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
340 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
341 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
342 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
343 AC_REQUIRE([AC_PROG_MAKE_SET])])
345 dnl --- *@-AM_PROG_LEX-@* ---
347 dnl Author: Alexandre Oliva
349 dnl Synopsis: AM_PROG_LEX
353 dnl Use: Replacement for AC_PROG_LEX and AC_DECL_YYTEXT
356 dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
357 AC_DEFUN(AM_PROG_LEX,
358 [missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
359 AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
363 dnl --- *@-AM_PROG_LIBTOOL-@* ---
367 dnl Synopsis: AM_PROG_LIBTOOL
371 dnl Use: Configures `libtool' for the target architecture.
374 ## Configure libtool for the target system.
376 # serial 1 AM_PROG_LIBTOOL
377 AC_DEFUN(AM_PROG_LIBTOOL,
378 [AC_REQUIRE([AC_CANONICAL_HOST])
379 AC_REQUIRE([AC_PROG_CC])
380 AC_REQUIRE([AC_PROG_RANLIB])
382 # Always use our own libtool.
383 LIBTOOL='$(top_builddir)/libtool'
386 dnl Allow the --disable-shared flag to stop us from building shared libs.
387 AC_ARG_ENABLE(shared,
388 [ --enable-shared build shared libraries [default=yes]],
389 test "$enableval" = no && libtool_shared=" --disable-shared",
392 libtool_flags="$libtool_shared"
393 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
394 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
396 # Actually configure libtool. ac_aux_dir is where install-sh is found.
397 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" LD="$LD" RANLIB="$RANLIB" \
398 $ac_aux_dir/ltconfig $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
399 || AC_MSG_ERROR([libtool configure failed])
402 dnl --- *@-AM_PATH_LISPDIR-@* ---
404 dnl Author: Ulrich Drepper
406 dnl Synopsis: AM_PATH_LISPDIR
410 dnl Use: Sets the variable `lispdir' to point to a place to install
411 dnl Emacs lisp files.
413 ## ------------------------
414 ## Emacs LISP file handling
415 ## From Ulrich Drepper
416 ## ------------------------
420 AC_DEFUN(AM_PATH_LISPDIR,
421 [# If set to t, that means we are running in a shell under Emacs.
422 # If you have an Emacs named "t", then use the full path.
423 test "$EMACS" = t && EMACS=
424 AC_PATH_PROG(EMACS, emacs xemacs, no)
425 if test $EMACS != "no"; then
426 AC_MSG_CHECKING([where .elc files should go])
427 dnl Set default value
428 lispdir="\$(datadir)/emacs/site-lisp"
429 if test "x$prefix" = "xNONE"; then
430 if test -d $ac_default_prefix/share/emacs/site-lisp; then
431 lispdir="\$(prefix)/share/emacs/site-lisp"
433 if test -d $ac_default_prefix/lib/emacs/site-lisp; then
434 lispdir="\$(prefix)/lib/emacs/site-lisp"
438 if test -d $prefix/share/emacs/site-lisp; then
439 lispdir="\$(prefix)/share/emacs/site-lisp"
441 if test -d $prefix/lib/emacs/site-lisp; then
442 lispdir="\$(prefix)/lib/emacs/site-lisp"
446 AC_MSG_RESULT($lispdir)
450 dnl --- *@-AM_MAINTAINTER_MODE-@* ---
452 dnl Author: Jim Meyering
454 dnl Synopsis: jm_MAINTAINER_MODE
458 dnl Use: Provides an option `--enable-maintainer-mode' which turns
459 dnl on rules which might normally be commented out. The
460 dnl substitution variable `MAINT' is set to be a comment when
461 dnl this option is disabled, which it is by default.
465 AC_DEFUN(AM_MAINTAINER_MODE,
466 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
467 dnl maintainer-mode is disabled by default
468 AC_ARG_ENABLE(maintainer-mode,
469 [ --enable-maintainer-mode enable make rules and dependencies not useful
470 (and sometimes confusing) to the casual installer],
471 USE_MAINTAINER_MODE=$enableval,
472 USE_MAINTAINER_MODE=no)
473 AC_MSG_RESULT($USE_MAINTAINER_MODE)
474 if test $USE_MAINTAINER_MODE = yes; then
483 dnl --- *@-AM_MISSING_PROG-@* ---
487 dnl Synopsis: AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
489 dnl Arguments: NAME = variable to set to the file's location
490 dnl PROGRAM = name of program to find
491 dnl DIRECTORY = directory to look in
493 dnl Use: Fakes existence of a useful GNU maintainer tool.
495 AC_DEFUN(AM_MISSING_PROG,
496 [AC_MSG_CHECKING(for working $2)
497 # Run test in a subshell; some versions of sh will print an error if
498 # an executable is not found, even if stderr is redirected.
499 # Redirect stdin to placate older versions of autoconf. Sigh.
500 if ($2 --version) < /dev/null > /dev/null 2>&1; then
505 AC_MSG_RESULT(missing)
509 dnl --- *@-AM_FUNC_MKTIME-@* ---
511 dnl Author: Jim Meyering
513 dnl Synopsis: AM_FUNC_MKTIME
517 dnl Use: Checks for a working mktime function.
519 AC_DEFUN(AM_FUNC_MKTIME,
520 [AC_REQUIRE([AC_HEADER_TIME])dnl
521 AC_CHECK_HEADERS(sys/time.h)
522 AC_CACHE_CHECK([for working mktime], am_cv_func_working_mktime,
524 changequote(<<, >>)dnl
525 <</* Test program from Paul Eggert (eggert@twinsun.com)
526 and Tony Leneis (tony@plaza.ds.adp.com). */
527 #if TIME_WITH_SYS_TIME
528 # include <sys/time.h>
532 # include <sys/time.h>
538 static time_t time_t_max;
540 /* Values we'll use to set the TZ environment variable. */
541 static const char *const tz_strings[] = {
542 NULL, "GMT0", "JST-9", "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
544 #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
550 if (mktime (localtime (&now)) != now)
552 now = time_t_max - now;
553 if (mktime (localtime (&now)) != now)
563 for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
566 delta = time_t_max / 997; /* a suitable prime number */
567 for (i = 0; i < N_STRINGS; i++)
570 putenv (tz_strings[i]);
572 for (t = 0; t <= time_t_max - delta; t += delta)
574 mktime_test ((time_t) 60 * 60);
575 mktime_test ((time_t) 60 * 60 * 24);
581 am_cv_func_working_mktime=yes, am_cv_func_working_mktime=no,
582 dnl When crosscompiling, assume mktime is missing or broken.
583 am_cv_func_working_mktime=no)
585 if test $am_cv_func_working_mktime = no; then
586 LIBOBJS="$LIBOBJS mktime.o"
590 dnl --- *@-AM_FUNC_OBSTACK-@* ---
592 dnl Author: Jim Meyering
594 dnl Synopsis: AM_FUNC_OBSTACK
598 dnl Use: Checks for GNU obstacks.
600 AC_DEFUN(AM_FUNC_OBSTACK,
601 [AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
602 [AC_TRY_LINK([#include "obstack.h"],
603 [struct obstack *mem;obstack_free(mem,(char *) 0)],
604 am_cv_func_obstack=yes,
605 am_cv_func_obstack=no)])
606 if test $am_cv_func_obstack = yes; then
607 AC_DEFINE(HAVE_OBSTACK)
609 LIBOBJS="$LIBOBJS obstack.o"
613 dnl --- *@-AC_C_PROTOTYPES-@* ---
615 dnl Author: Franc,ois Pinard
617 dnl Synopsis: AC_C_PROTOTYPES
621 dnl Use: If the C compiler understands ANSI C, define `PROTOTYPES',
622 dnl and clear the `U' and `ANSI2KNR' variables. Otherwise,
623 dnl set `U' to be `_' and `ANSI2KNR' to be `./ansi2knr'.
627 AC_DEFUN(fp_C_PROTOTYPES,
628 [AC_REQUIRE([AM_PROG_CC_STDC])
629 AC_MSG_CHECKING([for function prototypes])
630 if test "$ac_cv_prog_cc_stdc" != no; then
632 AC_DEFINE(PROTOTYPES)
636 U=_ ANSI2KNR=./ansi2knr
639 AC_SUBST(ANSI2KNR)dnl
642 dnl --- *@-AM_PATH_GTK-@* ---
644 dnl Author: Owen Taylor
646 dnl Synopsis: AM_PATH_GTK(MIN-VERSION, [ACTION-IF-FOUND], [ACTION-IF-NOT])
648 dnl Arguments: MIN-VERSION = minimum version of GTK required
649 dnl ACTION-IF-FOUND = executed if GTK found OK
650 dnl ACTION-IF-NOT-FOUND = what to do if GTK not available
652 dnl Use: Sets up compilation environment suitably for GTK programming.
654 # Configure paths for GTK+
655 # Owen Taylor 97-11-3
657 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
658 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
660 AC_DEFUN(AM_PATH_GTK,
662 dnl Get the cflags and libraries from the gtk-config script
664 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
665 gtk_config_prefix="$withval", gtk_config_prefix="")
666 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
667 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
668 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
669 , enable_gtktest=yes)
671 if test x$gtk_config_exec_prefix != x ; then
672 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
673 if test x${GTK_CONFIG+set} != xset ; then
674 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
677 if test x$gtk_config_prefix != x ; then
678 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
679 if test x${GTK_CONFIG+set} != xset ; then
680 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
684 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
685 min_gtk_version=ifelse([$1], ,0.99.7,$1)
686 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
688 if test "$GTK_CONFIG" = "no" ; then
691 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
692 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
693 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
694 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
695 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
696 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
697 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
698 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
699 if test "x$enable_gtktest" = "xyes" ; then
700 ac_save_CFLAGS="$CFLAGS"
702 CFLAGS="$CFLAGS $GTK_CFLAGS"
703 LIBS="$LIBS $GTK_LIBS"
705 dnl Now check if the installed GTK is sufficiently new. (Also sanity
706 dnl checks the results of gtk-config to some extent
716 int major, minor, micro;
719 system ("touch conf.gtktest");
721 /* HP/UX 9 (%@#!) writes to sscanf strings */
722 tmp_version = g_strdup("$min_gtk_version");
723 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
724 printf("%s, bad version string\n", "$min_gtk_version");
728 if ((gtk_major_version != $gtk_config_major_version) ||
729 (gtk_minor_version != $gtk_config_minor_version) ||
730 (gtk_micro_version != $gtk_config_micro_version))
732 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
733 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
734 gtk_major_version, gtk_minor_version, gtk_micro_version);
735 printf ("*** was found! If gtk-config was correct, then it is best\n");
736 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
737 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
738 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
739 printf("*** required on your system.\n");
740 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
741 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
742 printf("*** before re-running configure\n");
746 if ((gtk_major_version > major) ||
747 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
748 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
754 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
755 gtk_major_version, gtk_minor_version, gtk_micro_version);
756 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
757 major, minor, micro);
758 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
760 printf("*** If you have already installed a sufficiently new version, this error\n");
761 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
762 printf("*** being found. The easiest way to fix this is to remove the old version\n");
763 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
764 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
765 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
766 printf("*** so that the correct libraries are found at run-time))\n");
771 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
772 CFLAGS="$ac_save_CFLAGS"
776 if test "x$no_gtk" = x ; then
778 ifelse([$2], , :, [$2])
781 if test "$GTK_CONFIG" = "no" ; then
782 echo "*** The gtk-config script installed by GTK could not be found"
783 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
784 echo "*** your path, or set the GTK_CONFIG environment variable to the"
785 echo "*** full path to gtk-config."
787 if test -f conf.gtktest ; then
790 echo "*** Could not run GTK test program, checking why..."
791 CFLAGS="$CFLAGS $GTK_CFLAGS"
792 LIBS="$LIBS $GTK_LIBS"
796 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
797 [ echo "*** The test program compiled, but did not run. This usually means"
798 echo "*** that the run-time linker is not finding GTK or finding the wrong"
799 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
800 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
801 echo "*** to the installed location Also, make sure you have run ldconfig if that"
802 echo "*** is required on your system"
804 echo "*** If you have an old version installed, it is best to remove it, although"
805 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
807 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
808 echo "*** came with the system with the command"
810 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
811 [ echo "*** The test program failed to compile or link. See the file config.log for the"
812 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
813 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
814 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
815 CFLAGS="$ac_save_CFLAGS"
821 ifelse([$3], , :, [$3])
828 dnl --- *@-AC_TYPE_PTRDIFF_T-@* ---
830 dnl Author: Ulrich Drepper
832 dnl Synopsis: AC_TYPE_PTRDIFF_T
836 dnl Use: Sets HAVE_PTRDIFF_T if the type exists.
838 AC_DEFUN(AM_TYPE_PTRDIFF_T,
839 [AC_CACHE_CHECK([for ptrdiff_t], am_cv_type_ptrdiff_t,
840 [AC_TRY_COMPILE([#include <stddef.h>], [ptrdiff_t p],
841 am_cv_type_ptrdiff_t=yes, am_cv_type_ptrdiff_t=no)])
842 if test $am_cv_type_ptrdiff_t = yes; then
843 AC_DEFINE(HAVE_PTRDIFF_T)
847 dnl --- *@-AM_WITH_REGEX-@* ---
849 dnl Author: Unknown (possibly Franc,ois Pinard)
851 dnl Synopsis: AM_WITH_REGEX
856 dnl The idea is to distribute rx.[hc] and regex.[hc] together,
857 dnl for a while. The WITH_REGEX symbol (which should also be
858 dnl documented in acconfig.h) is used to decide which of regex.h
859 dnl or rx.h should be included in the application. If
860 dnl `./configure --with-regex' is given (the default), the
861 dnl package will use gawk's regex. If `./configure
862 dnl --without-regex', a check is made to see if rx is already
863 dnl installed, as with newer Linux'es. If not found, the package
864 dnl will use the rx from the distribution. If found, the package
865 dnl will use the system's rx which, on Linux at least, will
866 dnl result in a smaller executable file.
868 AC_DEFUN(AM_WITH_REGEX,
869 [AC_MSG_CHECKING(which of GNU rx or gawk's regex is wanted)
871 [ --without-regex use GNU rx in lieu of gawk's regex for matching],
872 [test "$withval" = yes && am_with_regex=1],
874 if test -n "$am_with_regex"; then
876 AC_DEFINE(WITH_REGEX)
877 AC_CACHE_CHECK([for GNU regex in libc], am_cv_gnu_regex,
878 AC_TRY_LINK([], [extern int re_max_failures; re_max_failures = 1],
879 am_cv_gnu_regex=yes, am_cv_gnu_regex=no))
880 if test $am_cv_gnu_regex = no; then
881 LIBOBJS="$LIBOBJS regex.o"
885 AC_CHECK_FUNC(re_rx_search, , [LIBOBJS="$LIBOBJS rx.o"])
890 dnl --- *@-AM_SANITY_CHECK-@*
894 dnl Synopsis: AM_SANITY_CHECK
898 dnl Use: Check for build environment sanity.
900 AC_DEFUN(AM_SANITY_CHECK,
901 [AC_MSG_CHECKING([whether build environment is sane])
904 echo timestamp > conftestfile
905 # Do `set' in a subshell so we don't clobber the current shell's
906 # arguments. Must try -L first in case configure is actually a
907 # symlink; some systems play weird games with the mod time of symlinks
908 # (eg FreeBSD returns the mod time of the symlink's containing
911 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
912 if test "$@" = "X"; then
914 set X `ls -t $srcdir/configure conftestfile`
916 test "[$]2" = conftestfile
922 AC_MSG_ERROR([newly created file is older than distributed files!
923 Check your system clock])
928 dnl --- *@-AM_FUNC_STRDOD-@* ---
930 dnl Author: Jim Meyering
932 dnl Synopsis: AM_FUNC_STRTOD
936 dnl Use: Checks for a working strtod function.
938 ## Copyright (C) 1996 Free Software Foundation, Inc.
940 ## This program is free software; you can redistribute it and/or modify
941 ## it under the terms of the GNU General Public License as published by
942 ## the Free Software Foundation; either version 2, or (at your option)
943 ## any later version.
945 ## This program is distributed in the hope that it will be useful,
946 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
947 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
948 ## GNU General Public License for more details.
950 ## You should have received a copy of the GNU General Public License
951 ## along with this program; if not, write to the Free Software
952 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
955 ## From Jim Meyering.
959 ## @defmac AC_FUNC_STRTOD
960 ## @maindex FUNC_STRTOD
962 ## If the @code{strtod} function is not available, or does not work
963 ## correctly (like the one on SunOS 5.4), add @samp{strtod.o} to output
964 ## variable @code{LIBOBJS}.
967 AC_DEFUN(AM_FUNC_STRTOD,
968 [AC_CACHE_CHECK(for working strtod, am_cv_func_strtod,
975 /* Some versions of Linux strtod mis-parse strings with leading '+'. */
976 char *string = " +69";
979 value = strtod (string, &term);
980 if (value != 69 || term != (string + 4))
985 /* Under Solaris 2.4, strtod returns the wrong value for the
986 terminating character under some conditions. */
987 char *string = "NaN";
989 strtod (string, &term);
990 if (term != string && *(term - 1) == 0)
995 ], am_cv_func_strtod=yes, am_cv_func_strtod=no, am_cv_func_strtod=no)])
996 test $am_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
998 am_cv_func_strtod_needs_libm=no
999 if test $am_cv_func_strtod = no; then
1001 if test $ac_cv_func_pow = no; then
1002 AC_CHECK_LIB(m, pow, [am_cv_func_strtod_needs_libm=yes],
1003 [AC_MSG_WARN(can't find library containing definition of pow)])
1008 dnl --- *@-AM_SYS_POSIX_TERMIOS-@* ---
1010 dnl Author: Jim Meyering
1012 dnl Synopsis: AM_SYS_POSIX_TERMIOS
1016 dnl Use: Checks for a POSIX termios.h.
1018 AC_DEFUN(AM_SYS_POSIX_TERMIOS,
1019 [AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
1020 [AC_TRY_LINK([#include <sys/types.h>
1022 #include <termios.h>],
1023 [/* SunOS 4.0.3 has termios.h but not the library calls. */
1025 am_cv_sys_posix_termios=yes,
1026 am_cv_sys_posix_termios=no)])
1029 dnl----- Macros by Mark Wooding ------------------------------ *@--IGNORE--@*
1031 dnl --- *@-mdw_REQUIRE-@* ---
1033 dnl Author: Mark Wooding
1035 dnl Synopsis: mdw_REQUIRE(MACRO, ARGS...)
1037 dnl Arguments: MACRO = name of a macro which should have been called
1038 dnl ARGS = arguments to pass
1040 dnl Use: Like `AC_REQUIRE', only it handles arguments.
1042 AC_DEFUN(mdw_REQUIRE,
1043 [ifdef([AC_PROVIDE_$1], ,
1044 [AC_DIVERT_PUSH(builtin(eval, AC_DIVERSION_CURRENT - 1))dnl
1049 dnl --- *@-mdw_CURSES-@* ---
1051 dnl Author: Mark Wooding
1053 dnl Synopsis: mdw_CURSES
1057 dnl Use: Searches for a `curses' library (one of `ncurses' or
1058 dnl `curses') using mdw_CHECK_MANYLIBS. If one is found, the
1059 dnl preprocessor macro HAVE_CURSES is defined, and a search is
1060 dnl made for a `curses' header file (one of <ncurses.h>,
1061 dnl <ncurses/ncurses.h> or <curses.h>) using AC_CHECK_HEADERS
1062 dnl and the appropriate preprocessor symbol is defined.
1063 dnl Finally, a check is made for the function `wresize' using
1066 AC_DEFUN(mdw_CURSES,
1067 [mdw_CHECK_MANYLIBS(newwin, ncurses curses, AC_DEFINE(HAVE_CURSES))
1068 if test $mdw_cv_lib_newwin != no; then
1069 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h curses.h], [break])
1070 if test "$ac_cv_header_ncurses_h" = "no" &&
1071 test "$ac_cv_header_ncurses_ncurses_h" = "no" &&
1072 test "$ac_cv_header_curses_h" = "no"; then
1073 AC_MSG_WARN([couldn't find a \`curses' header. Assuming \`curses.h'.])
1074 AC_DEFINE(HAVE_CURSES_H)
1076 AC_CHECK_FUNCS(wresize)
1079 dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
1081 dnl Author: Mark Wooding
1083 dnl Synopsis: mdw_TYPE_SSIZE_T
1087 dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
1088 dnl it defaults to `int'.
1090 AC_DEFUN(mdw_TYPE_SSIZE_T,
1091 [AC_REQUIRE([AC_HEADER_STDC])
1092 AC_CACHE_CHECK(for ssize_t, mdw_cv_ssize_t,
1093 [AC_EGREP_CPP(ssize_t,
1094 [#include <sys/types.h>
1102 [mdw_cv_ssize_t=yes], [mdw_cv_ssize_t=no])])
1103 if test $mdw_cv_ssize_t = no; then
1104 AC_DEFINE(ssize_t, int)
1107 dnl --- *@-mdw_DECL_ENVIRON-@* ---
1109 dnl Author: Mark Wooding
1111 dnl Synopsis: mdw_DECL_ENVIRON
1115 dnl Use: Searches for a declaration of the global `environ' variable.
1116 dnl If one is found in one of the `usual' places, DECL_ENVIRON
1117 dnl is defined as a preprocessor symbol.
1119 AC_DEFUN(mdw_DECL_ENVIRON,
1120 [AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
1121 [AC_EGREP_CPP(environ,
1122 [#include <sys/types.h>
1129 #endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
1130 if test $mdw_cv_environ = yes; then
1131 AC_DEFINE(DECL_ENVIRON)
1134 dnl --- *@-mdw_CHECK_MANYLIBS-@* ---
1136 dnl Author: Mark Wooding
1138 dnl Synopsis: mdw_CHECK_MANYLIBS(FUNC, LIBS, [IF-FOUND], [IF-NOT-FOUND],
1139 dnl [INCLUDES], [ARGS])
1141 dnl Arguments: FUNC = a function to try to find
1142 dnl LIBS = a whitespace-separated list of libraries to search
1143 dnl IF-FOUND = what to do when the function is found
1144 dnl IF-NOT-FOUND = what to do when the function isn't found
1145 dnl INCLUDES = other include files to add
1146 dnl ARGS = arguments to pass the function
1148 dnl Use: Searches for a library which defines FUNC. It first tries
1149 dnl without any libraries; then it tries each library specified
1150 dnl in LIBS in turn. If it finds a match, it adds the
1151 dnl appropriate library to `LIBS'.
1153 dnl This is particularly handy under DIREIX: if you link with
1154 dnl `-lnsl' then you get non-NIS-aware versions of getpwnam and
1155 dnl so on, which is clearly a Bad Thing.
1157 AC_DEFUN(mdw_CHECK_MANYLIBS,
1158 [AC_CACHE_CHECK([for library containing $1], [mdw_cv_lib_$1],
1159 [mdw_save_LIBS="$LIBS"
1161 AC_TRY_LINK([$5], [$1($6)], [mdw_cv_lib_$1="none required"])
1162 test "$mdw_cv_lib_$1" = "no" && for i in $2; do
1163 LIBS="-l$i $mdw_save_LIBS"
1164 AC_TRY_LINK([$5], [$1($6)],
1165 [mdw_cv_lib_$1="-l$i"
1168 LIBS="$mdw_save_LIBS"])
1169 if test "$mdw_cv_lib_$1" != "no"; then
1170 test "$mdw_cv_lib_$1" = "none required" || LIBS="$mdw_cv_lib_$1 $LIBS"
1176 dnl --- *@-mdw__PERL_VERSION-@* ---
1178 dnl AC_DEFUN relies on `[', `]' being quotes, so I have to drop down a level.
1181 define(mdw__PERL_VERSION, <<$1 -e 'exit ($] < $2);' >&5 2>&5>>)
1184 dnl --- *@-mdw_PROG_PERL-@* ---
1186 dnl Author: Mark Wooding
1188 dnl Synopsis: mdw_PROG_PERL(VERSION, [IF-FOUND], [IF-NOT-FOUND])
1190 dnl Arguments: VERSION = version number of Perl required
1191 dnl IF-FOUND = what to do if it's found
1192 dnl IF-NOT-FOUND = what to do if it isn't
1194 dnl Use: Attempts to find a working version of Perl with a late
1195 dnl enough version number. It supplies an option `--with-perl'
1196 dnl to allow the user to provide a Perl interpreter. If one
1197 dnl isn't provided explicitly, it searches for `perl' and `perl5'
1198 dnl in the current PATH, asking them whether they have a late
1199 dnl enough version number. The path of the working Perl is
1200 dnl put into the `PERL' environment variable; `AC_SUBST' is used
1201 dnl to substitute its value into Perl scripts. If there is no
1202 dnl Perl to be found, the value of `PERL' is set to be `none'.
1204 AC_DEFUN(mdw_PROG_PERL,
1205 [AC_ARG_WITH([perl],
1206 [ --with-perl=PERL specify path to Perl version $1 or newer],
1208 if test -z "$PERL"; then
1209 [AC_CACHE_CHECK([for Perl version $1 or later], mdw_cv_prog_perl,
1210 [mdw_cv_prog_perl="none"
1211 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
1212 case $p in /*) ;; *) p=`pwd`/$p ;; esac
1213 if mdw__PERL_VERSION(["$p/perl"], $1); then
1214 mdw_cv_prog_perl="$p/perl"
1217 if mdw__PERL_VERSION(["$p/perl5"], $1); then
1218 mdw_cv_prog_perl="$p/perl5"
1222 PERL="$mdw_cv_prog_perl"])
1226 if test "$PERL" = "none"; then :
1232 dnl --- *@-mdw_CHECK_PERL-@* ---
1234 dnl Author: Mark Wooding
1236 dnl Synopsis: mdw_CHECK_PERL(VERSION)
1238 dnl Arguments: VERSION = version number of Perl required
1240 dnl Use: Verifies that the Perl interpreter in the `PERL' shell
1241 dnl variable actually works and is of the right version. If it's
1242 dnl not, an error is raised and configuration is aborted.
1244 AC_DEFUN(mdw_CHECK_PERL,
1245 [mdw_REQUIRE([mdw_PROG_PERL], [$1])
1246 AC_MSG_CHECKING([whether Perl ($PERL) works])
1247 if test "$PERL" != "none" && mdw__PERL_VERSION("$PERL", $1); then
1248 AC_MSG_RESULT([yes])
1251 AC_MSG_ERROR([Perl version $1 or newer not found.
1252 If you have a recent enough Perl, and I just failed to find it, try using
1253 the --with-perl=PERL option to give me an explicit pathname.])
1256 dnl --- *@-mdw_PERLLIB_CHECK-@* ---
1258 dnl Author: Mark Wooding
1260 dnl Synopsis: mdw_PERLLIB_CHECK(LIBRARY)
1262 dnl Arguments: LIBRARY = name of a Perl library to check for
1264 dnl Use: Ensures that a Perl script can `use LIBRARY;'. If it can,
1265 dnl all's well and good; if it can't, `LIBRARY.pm' is added to
1266 dnl the variable `NEEDED_PERLLIBS' and a line which adds
1267 dnl `pkgdatadir' to Perl's `@INC' array is placed in the
1268 dnl variable `INC_PERLLIBS'; `AC_SUBST' is called for both of
1269 dnl these variables. It's expected that `NEEDED_PERLLIBS' will
1270 dnl be used in the `Makefile.in' to decide which versions from
1271 dnl the distribution need installing.
1273 dnl This macro isn't terribly useful in the general case. It
1274 dnl Also implicitly assumes that `$PERL' is Perl 5 or later.
1276 AC_DEFUN(mdw__PERLLIB_INIT,
1277 [AC_SUBST(INC_PERLLIBS)dnl
1278 AC_SUBST(NEEDED_PERLLIBS)dnl
1281 AC_DEFUN(mdw_PERLLIB_CHECK,
1282 [AC_REQUIRE([mdw__PERLLIB_INIT])
1283 mdw_REQUIRE([mdw_CHECK_PERL], 5)
1284 AC_CACHE_CHECK([for Perl library $1], mdw_cv_perllib_$1,
1285 [if $PERL -e 'use $1;' >&5 2>&5; then
1286 mdw_cv_perllib_$1="yes"
1288 mdw_cv_perllib_$1="no"
1291 if test "$mdw_cv_perllib_$1" = "no"; then
1292 NEEDED_PERLLIBS="$NEEDED_PERLLIBS $1.pm"
1294 # --- Deal with autoconf lossage ---
1296 # It doesn't want to define `prefix' until rather later on, so I have
1299 if test -z "$INC_PERLLIBS"; then
1300 mdw_old_prefix="$prefix"
1301 test "$prefix" = "NONE" && prefix="$ac_default_prefix";
1302 INC_PERLLIBS="BEGIN { push @INC, \"`eval echo $datadir/$PACKAGE`\"; }"
1303 prefix="$mdw_old_prefix";
1307 dnl --- *@-mdw_GCC_FLAGS-@* ---
1309 dnl Author: Mark Wooding
1311 dnl Synopsis: mdw_GCC_FLAGS([FLAGS], [CFLAGS], [C++FLAGS])
1313 dnl Arguments: FLAGS = GCC compiler flags to add (default is
1314 dnl `-pedantic -Wall')
1315 dnl CFLAGS = GCC C compiler flags to add (default is empty)
1316 dnl C++FLAGS = GCC C++ compiler flags to add (default is
1317 dnl `-fhandle-exceptions').
1319 dnl Use: If the C compiler is GCC, add the compiler flags.
1321 AC_DEFUN(mdw_GCC_FLAGS,
1322 [if test "$GCC" = "yes"; then
1323 CFLAGS="$CFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1324 CFLAGS="$CFLAGS ifelse([$2], [], [], [$2])"
1326 if test "$GXX" = "yes"; then
1327 CXXFLAGS="$CXXFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
1328 CXXFLAGS="$CXXFLAGS ifelse([$3], [], [-fhandle-exceptions], [$3])"
1331 dnl *@-mdw_INIT_LIB-@*
1333 dnl Author: Mark Wooding
1335 dnl Synopsis: mdw_INIT_LIB(LIB, NAME, VERSION, [PACKAGE])
1337 dnl Arguments: LIB = the name of the library (and the package)
1338 dnl NAME = a presentable version of the library's name
1339 dnl VERSION = version of the library
1340 dnl PACKAGE = package name to pass on to AM_INIT_AUTOMAKE
1342 dnl Use: Sets up various useful variables. This macro calls
1343 dnl AM_INIT_AUTOMAKE, which might be considered useful. It also
1344 dnl provides variables for the use of `lib-config.in'.
1346 AC_DEFUN([mdw_INIT_LIB],
1347 [AM_INIT_AUTOMAKE(ifelse([$4], [], [$1], [$4]), [$3])
1348 LIBRARY="$1" AC_SUBST(LIBRARY)
1349 LIBNAME="$2" AC_SUBST(LIBNAME)])
1351 dnl *@-mdw_LIB_CONFIG-@*
1353 dnl Author: Mark Wooding
1355 dnl Synopsis: mdw_LIB_CONFIG(LIB, NAME, VERSION, IF-FOUND, IF-NOT-FOUND)
1357 dnl Arguments: LIB = the name of the library (and its configuration program)
1358 dnl NAME = a presentable version of the library's name
1359 dnl VERSION = version of library required
1360 dnl IF-FOUND = what to do if found
1361 dnl IF-NOT-FOUND = what to do if not found
1363 dnl Use: Configures a library client program, using a configuration
1364 dnl script provided by the library maintainer.
1366 dnl The default version is 1.0.0pre0; the default action is to
1367 dnl add everything to the CFLAGS and LIBS variables, and complain
1368 dnl if the library couldn't be found.
1370 dnl The variable LIB_VERSION contains the version number of
1371 dnl the library; LIB_CFLAGS is the C compiler flags required
1372 dnl and LIB_LIBS is the linker flags.
1374 AC_DEFUN([mdw_LIB_CONFIG],
1375 [pushdef([upname], translit([$1], [a-z], [A-Z]))dnl
1376 AC_MSG_CHECKING([for $2 library])
1377 if $1-config --check $3 >/dev/null 2>&1; then
1378 upname[]_VERSION=`$1-config --version`
1379 upname[]_CFLAGS=`$1-config --cflags`
1380 upname[]_LIBS=`$1-config --libs`
1381 AC_SUBST(upname[]_VERSION)
1382 AC_SUBST(upname[]_CFLAGS)
1383 AC_SUBST(upname[]_LIBS)
1385 [CFLAGS="$CFLAGS $upname[]_CFLAGS"
1386 LIBS="$upname[]_LIBS $LIBS"],
1388 AC_MSG_RESULT([$upname[]_VERSION])
1391 AC_MSG_ERROR([$2 library not found or too old.]),
1393 AC_MSG_RESULT([not found])
1398 dnl Author: Mark Wooding
1400 dnl Synopsis: mdw_MLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1402 dnl Arguments: VERSION = version of library required
1403 dnl IF-FOUND = what to do if found
1404 dnl IF-NOT-FOUND = what to do if not found
1406 dnl Use: Configures an mLib client program.
1408 AC_DEFUN([mdw_MLIB], [mdw_LIB_CONFIG(mLib, mLib, $@)])
1412 dnl Author: Mark Wooding
1414 dnl Synopsis: mdw_MGLIB(VERSION, IF-FOUND, IF-NOT-FOUND
1416 dnl Arguments: VERSION = version of library required
1417 dnl IF-FOUND = what to do if found
1418 dnl IF-NOT-FOUND = what to do if not found
1420 dnl Use: Configures an mgLib client program.
1422 AC_DEFUN([mdw_MGLIB],
1423 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1424 mdw_LIB_CONFIG(mgLib, mgLib, $@)])
1426 dnl *@-mdw_CATACOMB-@*
1428 dnl Author: Mark Wooding
1430 dnl Synopsis: mdw_CATACOMB([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1432 dnl Arguments: VERSION = version of Catacomb required
1433 dnl IF-FOUND = what to do if found
1434 dnl IF-NOT-FOUND = what to do if not found
1436 dnl Use: Configures the program as a Catacomb client.
1438 AC_DEFUN([mdw_CATACOMB],
1439 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1440 mdw_LIB_CONFIG(catacomb, Catacomb, $@)])
1444 dnl Author: Mark Wooding
1446 dnl Synopsis: mdw_PK([VERSION], [IF-FOUND], [IF-NOT-FOUND])
1448 dnl Arguments: VERSION = version of PK required
1449 dnl IF-FOUND = what to do if found
1450 dnl IF-NOT-FOUND = what to do if not found
1452 dnl Use: Configures the program as a PK client.
1455 [mdw_REQUIRE([mdw_MLIB], [1.6.0])
1456 mdw_LIB_CONFIG(pk, PK, $@)])
1458 dnl --- *@-mdw_OPT_NDEBUG-@* ---
1460 dnl Author: Mark Wooding
1462 dnl Synopsis: mdw_OPT_NDEBUG
1466 dnl Use: Turns on the `NDEBUG' flag, to disable useful things like
1469 AC_DEFUN(mdw_OPT_NDEBUG,
1470 [AC_ARG_ENABLE(debugging,
1471 [ --disable-debugging spews vast swathes of useless information],
1472 [if test "$enableval" = "no"; then
1473 AC_DEFINE(NDEBUG, 1)
1476 dnl --- *@-mdw_OPT_EFENCE-@* ---
1478 dnl Author: Mark Wooding
1480 dnl Synopsis: mdw_OPT_EFENCE
1484 dnl Use: Links with the Electric Fence library.
1486 AC_DEFUN(mdw_OPT_EFENCE,
1487 [AC_ARG_WITH(electric-fence,
1488 [ --with-electric-fence link programs with Electric Fence],
1489 [if test "$withval" = "yes"; then
1490 AC_CHECK_LIB(efence, malloc)
1493 dnl --- *@-mdw_OPT_TRACE-@* ---
1495 dnl Author: Mark Wooding
1497 dnl Synopsis: mdw_OPT_TRACE
1501 dnl Use: Turns on the `NTRACE' flag, to disable useful things like
1504 AC_DEFUN(mdw_OPT_TRACE,
1505 [AC_ARG_ENABLE(tracing,
1506 [ --disable-tracing disable output of trace information],
1507 [if test "$enableval" = "no"; then
1508 AC_DEFINE(NTRACE, 1)
1511 dnl --- *@-mdw_OPT_mLib_TRACK-@* ---
1513 dnl Author: Mark Wooding
1515 dnl Synopsis: mdw_OPT_mLib_TRACK(PROGRAM)
1517 dnl Arguments: PROGRAM = name of this program or package.
1519 dnl Use: Controls the unsupported mLib memory tracker. The
1520 dnl following are defined:
1522 dnl --enable-track turns on malloc tracking
1523 dnl --enable-blame-PROGRAM tracks malloc contexts in PROGRAM
1525 dnl There must be a separate `blame' option for each program,
1526 dnl so that the various blame options in a hierarchy get
1527 dnl propagated properly. This is an obsolete feature from the
1528 dnl days when mLib was provided as a subdirectory of other
1531 AC_DEFUN(mdw_OPT_mLib_TRACK,
1532 [AC_REQUIRE([mdw_OPT_TRACE])
1533 AC_ARG_ENABLE(track,
1534 [ --enable-track enable tracking of malloc and free],
1535 [AC_DEFINE(TRACK_ENABLE, 1)])
1536 AC_ARG_ENABLE(blame-$1,
1538 track malloc contexts while in $1],
1539 [AC_DEFINE(TRACK_BLAME, 1)])])
1541 dnl --- *@-mdw_OPT_mLib_DEBUG-@* ---
1543 dnl Author: Mark Wooding
1545 dnl Synopsis: mdw_OPT_mLib_DEBUG(PROGRAM)
1547 dnl Arguments: PROGRAM = name of this program or package.
1549 dnl Use: Provides all of the above debugging options.
1551 AC_DEFUN(mdw_OPT_mLib_DEBUG,
1552 [mdw_REQUIRE([mdw_OPT_NDEBUG])
1553 mdw_REQUIRE([mdw_OPT_mLib_TRACK], [$1])])
1555 dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*