Kill mdw_REQUIRE.
[cfd] / aclocal.glob
1 dnl -*-fundamental-*- *@--GLOB-HEADER--@*
2 dnl
3 dnl $Id$
4 dnl
5 dnl Common library of autoconf macros
6 dnl
7 dnl (c) 1997 Mark Wooding, except for macros and documentation where noted.
8 dnl
9
10 dnl----- Licensing notice ---------------------------------------------------
11 dnl
12 dnl This file is part of the Common Files Distribution (`common')
13 dnl
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.
18 dnl
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.
23 dnl
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.
27
28 dnl *@--NOTICE--@* Common File Distribution
29 dnl $Id$
30
31 dnl --- *@-mdw_CURSES-@* ---
32 dnl
33 dnl Author: Mark Wooding
34 dnl
35 dnl Synopsis: mdw_CURSES
36 dnl
37 dnl Arguments: ---
38 dnl
39 dnl Use: Searches for a `curses' library (one of `ncurses' or
40 dnl `curses') using mdw_CHECK_MANYLIBS. If one is found, the
41 dnl preprocessor macro HAVE_CURSES is defined, and a search is
42 dnl made for a `curses' header file (one of <ncurses.h>,
43 dnl <ncurses/ncurses.h> or <curses.h>) using AC_CHECK_HEADERS
44 dnl and the appropriate preprocessor symbol is defined.
45 dnl Finally, a check is made for the function `wresize' using
46 dnl AC_CHECK_FUNCS.
47
48 AC_DEFUN([mdw_CURSES],
49 [mdw_CHECK_MANYLIBS(newwin, ncurses curses,
50 AC_DEFINE([HAVE_CURSES], [1],
51 [Define if you have a curses library.]))
52 if test $mdw_cv_lib_newwin != no; then
53 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h curses.h], [break])
54 if test "$ac_cv_header_ncurses_h" = "no" &&
55 test "$ac_cv_header_ncurses_ncurses_h" = "no" &&
56 test "$ac_cv_header_curses_h" = "no"; then
57 AC_MSG_WARN([couldn't find a \`curses' header. Assuming \`curses.h'.])
58 AC_DEFINE([HAVE_CURSES_H], [1], [Define if you have a curses.h header.])
59 fi
60 AC_CHECK_FUNCS(wresize)
61 fi])
62
63 dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
64 dnl
65 dnl Author: Mark Wooding
66 dnl
67 dnl Synopsis: mdw_TYPE_SSIZE_T
68 dnl
69 dnl Arguments: ---
70 dnl
71 dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
72 dnl it defaults to `int'.
73
74 AC_DEFUN([mdw_TYPE_SSIZE_T],
75 [AC_REQUIRE([AC_HEADER_STDC])
76 AC_CACHE_CHECK(for ssize_t, mdw_cv_ssize_t,
77 [AC_EGREP_CPP(ssize_t,
78 [#include <sys/types.h>
79 #if HAVE_UNISTD_H
80 #include <unistd.h>
81 #endif
82 #if STDC_HEADERS
83 #include <stdlib.h>
84 #include <stddef.h>
85 #endif],
86 [mdw_cv_ssize_t=yes], [mdw_cv_ssize_t=no])])
87 if test $mdw_cv_ssize_t = no; then
88 AC_DEFINE([ssize_t], [int], [Define as int if you don't have ssize_t.])
89 fi])
90
91 dnl --- *@-mdw_DECL_ENVIRON-@* ---
92 dnl
93 dnl Author: Mark Wooding
94 dnl
95 dnl Synopsis: mdw_DECL_ENVIRON
96 dnl
97 dnl Arguments: ---
98 dnl
99 dnl Use: Searches for a declaration of the global `environ' variable.
100 dnl If one is found in one of the `usual' places, DECL_ENVIRON
101 dnl is defined as a preprocessor symbol.
102
103 AC_DEFUN([mdw_DECL_ENVIRON],
104 [AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
105 [AC_EGREP_CPP(environ,
106 [#include <sys/types.h>
107 #if HAVE_UNISTD_H
108 #include <unistd.h>
109 #endif
110 #if STDC_HEADERS
111 #include <stdlib.h>
112 #include <stddef.h>
113 #endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
114 if test $mdw_cv_environ = yes; then
115 AC_DEFINE([DECL_ENVIRON], [1],
116 [Define if environ is declared somewhere sensible.])
117 fi])
118
119 dnl --- *@-mdw_CHECK_MANYLIBS-@* ---
120 dnl
121 dnl Author: Mark Wooding
122 dnl
123 dnl Synopsis: mdw_CHECK_MANYLIBS(FUNC, LIBS, [IF-FOUND], [IF-NOT-FOUND],
124 dnl [INCLUDES], [ARGS])
125 dnl
126 dnl Arguments: FUNC = a function to try to find
127 dnl LIBS = a whitespace-separated list of libraries to search
128 dnl IF-FOUND = what to do when the function is found
129 dnl IF-NOT-FOUND = what to do when the function isn't found
130 dnl INCLUDES = other include files to add
131 dnl ARGS = arguments to pass the function
132 dnl
133 dnl Use: Searches for a library which defines FUNC. It first tries
134 dnl without any libraries; then it tries each library specified
135 dnl in LIBS in turn. If it finds a match, it adds the
136 dnl appropriate library to `LIBS'.
137 dnl
138 dnl This is particularly handy under DIREIX: if you link with
139 dnl `-lnsl' then you get non-NIS-aware versions of getpwnam and
140 dnl so on, which is clearly a Bad Thing.
141
142 AC_DEFUN([mdw_CHECK_MANYLIBS],
143 [AC_CACHE_CHECK([for library containing $1], [mdw_cv_lib_$1],
144 [mdw_save_LIBS="$LIBS"
145 mdw_cv_lib_$1="no"
146 AC_TRY_LINK([$5], [$1($6)], [mdw_cv_lib_$1="none required"])
147 test "$mdw_cv_lib_$1" = "no" && for i in $2; do
148 LIBS="-l$i $mdw_save_LIBS"
149 AC_TRY_LINK([$5], [$1($6)],
150 [mdw_cv_lib_$1="-l$i"
151 break])
152 done
153 LIBS="$mdw_save_LIBS"])
154 if test "$mdw_cv_lib_$1" != "no"; then
155 test "$mdw_cv_lib_$1" = "none required" || LIBS="$mdw_cv_lib_$1 $LIBS"
156 $3
157 else :
158 $4
159 fi])
160
161 dnl --- *@-mdw__PYTHON_VERSION-@* ---
162 dnl
163 dnl Will fail hopelessly on Python < 1.5.2. Nobody uses that any more,
164 dnl right?
165
166 AC_DEFUN([mdw__PYTHON_VERSION],
167 [$1 -c 'from sys import *; v = argv[1]; vv = v.split("."); x = 0
168 for i in range(len(vv)): x = x | (int(vv[i]) << (24 - i * 8))
169 exit(x > hexversion)' $2])
170
171 dnl --- *@-mdw_PROG_PYTHON-@* ---
172 dnl
173 dnl Author: Mark Wooding
174 dnl
175 dnl Synopsis: mdw_PROG_PYTHON(VERSION, [IF-FOUND], [IF-NOT-FOUND])
176 dnl
177 dnl Arguments: VERSION = version number of Python required
178 dnl IF-FOUND = what to do if it's found
179 dnl IF-NOT-FOUND = what to do if it isn't
180 dnl
181 dnl Use: Attempts to find a working version of Python with a late
182 dnl enough version number. It supplies an option `--with-python'
183 dnl to allow the user to provide a Python interpreter. If one
184 dnl isn't provided explicitly, it searches for `python' and
185 dnl `pythonVERSION' in the current PATH, asking them whether they
186 dnl have a late enough version number. The path of the working
187 dnl Python is put into the `PYTHON' environment variable;
188 dnl `AC_SUBST' is used to substitute its value into Python
189 dnl scripts. If there is no Python to be found, the value of
190 dnl `PYTHON' is set to be `none'.
191
192 AC_DEFUN([mdw_PROG_PYTHON],
193 [AC_ARG_WITH([python],
194 [ --with-python=PYTHON specify path to Python version $1 or newer],
195 [PYTHON="$withval"],
196 if test -z "$PYTHON"; then
197 [AC_CACHE_CHECK([for Python version $1 or later], mdw_cv_prog_python,
198 [mdw_cv_prog_python="none"
199 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
200 case $p in /*) ;; *) p=`pwd`/$p ;; esac
201 if mdw__PYTHON_VERSION(["$p/python"], $1); then
202 mdw_cv_prog_python="$p/python"
203 break
204 fi
205 if mdw__PYTHON_VERSION(["$p/python$1"], $1); then
206 mdw_cv_prog_python="$p/python$1"
207 break
208 fi
209 done])
210 PYTHON="$mdw_cv_prog_python"])
211 fi
212
213 AC_SUBST(PYTHON)dnl
214 if test "$PYTHON" = "none"; then :
215 $3
216 else :
217 $2
218 fi])
219
220 dnl --- *@-mdw_CHECK_PYTHON-@* ---
221 dnl
222 dnl Author: Mark Wooding
223 dnl
224 dnl Synopsis: mdw_CHECK_PYTHON(VERSION)
225 dnl
226 dnl Arguments: VERSION = version number of Python required
227 dnl
228 dnl Use: Verifies that the Python interpreter in the `PYTHON' shell
229 dnl variable actually works and is of the right version. If it's
230 dnl not, an error is raised and configuration is aborted.
231
232 AC_DEFUN([mdw_CHECK_PYTHON],
233 [mdw_REQUIRE([mdw_PROG_PYTHON], [mdw_PROG_PYTHON([$1])])
234 AC_MSG_CHECKING([whether Python ($PYTHON) works])
235 if test "$PYTHON" != "none" && mdw__PYTHON_VERSION("$PYTHON", $1); then
236 AC_MSG_RESULT([yes])
237 else
238 AC_MSG_RESULT([no])
239 AC_MSG_ERROR([Python version $1 or newer not found.
240 If you have a recent enough Python, and I just failed to find it, try using
241 the --with-python=PYTHON option to give me an explicit pathname.])
242 fi])
243
244 dnl --- *@-mdw__PERL_VERSION-@* ---
245 dnl
246 dnl AC_DEFUN relies on `[', `]' being quotes, so I have to drop down a level.
247
248 AC_DEFUN([mdw__PERL_VERSION], [mdw__PERL_VERSION_hack([$1], [$2])])
249 changequote(<<, >>)
250 define(<<mdw__PERL_VERSION_hack>>, <<$1 -e 'exit ($] < $2);' >&5 2>&5>>)
251 changequote([, ])
252
253 dnl --- *@-mdw_PROG_PERL-@* ---
254 dnl
255 dnl Author: Mark Wooding
256 dnl
257 dnl Synopsis: mdw_PROG_PERL(VERSION, [IF-FOUND], [IF-NOT-FOUND])
258 dnl
259 dnl Arguments: VERSION = version number of Perl required
260 dnl IF-FOUND = what to do if it's found
261 dnl IF-NOT-FOUND = what to do if it isn't
262 dnl
263 dnl Use: Attempts to find a working version of Perl with a late
264 dnl enough version number. It supplies an option `--with-perl'
265 dnl to allow the user to provide a Perl interpreter. If one
266 dnl isn't provided explicitly, it searches for `perl' and `perl5'
267 dnl in the current PATH, asking them whether they have a late
268 dnl enough version number. The path of the working Perl is
269 dnl put into the `PERL' environment variable; `AC_SUBST' is used
270 dnl to substitute its value into Perl scripts. If there is no
271 dnl Perl to be found, the value of `PERL' is set to be `none'.
272
273 AC_DEFUN([mdw_PROG_PERL],
274 [AC_ARG_WITH([perl],
275 [ --with-perl=PERL specify path to Perl version $1 or newer],
276 [PERL="$withval"],
277 if test -z "$PERL"; then
278 [AC_CACHE_CHECK([for Perl version $1 or later], mdw_cv_prog_perl,
279 [mdw_cv_prog_perl="none"
280 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
281 case $p in /*) ;; *) p=`pwd`/$p ;; esac
282 if mdw__PERL_VERSION(["$p/perl"], $1); then
283 mdw_cv_prog_perl="$p/perl"
284 break
285 fi
286 if mdw__PERL_VERSION(["$p/perl5"], $1); then
287 mdw_cv_prog_perl="$p/perl5"
288 break
289 fi
290 done])
291 PERL="$mdw_cv_prog_perl"])
292 fi
293
294 AC_SUBST(PERL)dnl
295 if test "$PERL" = "none"; then :
296 $3
297 else :
298 $2
299 fi])
300
301 dnl --- *@-mdw_CHECK_PERL-@* ---
302 dnl
303 dnl Author: Mark Wooding
304 dnl
305 dnl Synopsis: mdw_CHECK_PERL(VERSION)
306 dnl
307 dnl Arguments: VERSION = version number of Perl required
308 dnl
309 dnl Use: Verifies that the Perl interpreter in the `PERL' shell
310 dnl variable actually works and is of the right version. If it's
311 dnl not, an error is raised and configuration is aborted.
312
313 AC_DEFUN([mdw_CHECK_PERL],
314 [mdw_REQUIRE([mdw_PROG_PERL], [mdw_PROG_PERL([$1])])
315 AC_MSG_CHECKING([whether Perl ($PERL) works])
316 if test "$PERL" != "none" && mdw__PERL_VERSION("$PERL", $1); then
317 AC_MSG_RESULT([yes])
318 else
319 AC_MSG_RESULT([no])
320 AC_MSG_ERROR([Perl version $1 or newer not found.
321 If you have a recent enough Perl, and I just failed to find it, try using
322 the --with-perl=PERL option to give me an explicit pathname.])
323 fi])
324
325 dnl --- *@-mdw_PERLLIB_CHECK-@* ---
326 dnl
327 dnl Author: Mark Wooding
328 dnl
329 dnl Synopsis: mdw_PERLLIB_CHECK(LIBRARY)
330 dnl
331 dnl Arguments: LIBRARY = name of a Perl library to check for
332 dnl
333 dnl Use: Ensures that a Perl script can `use LIBRARY;'. If it can,
334 dnl all's well and good; if it can't, `LIBRARY.pm' is added to
335 dnl the variable `NEEDED_PERLLIBS' and a line which adds
336 dnl `pkgdatadir' to Perl's `@INC' array is placed in the
337 dnl variable `INC_PERLLIBS'; `AC_SUBST' is called for both of
338 dnl these variables. It's expected that `NEEDED_PERLLIBS' will
339 dnl be used in the `Makefile.in' to decide which versions from
340 dnl the distribution need installing.
341 dnl
342 dnl This macro isn't terribly useful in the general case. It
343 dnl Also implicitly assumes that `$PERL' is Perl 5 or later.
344
345 AC_DEFUN([mdw__PERLLIB_INIT],
346 [AC_SUBST(INC_PERLLIBS)dnl
347 AC_SUBST(NEEDED_PERLLIBS)dnl
348 ])
349
350 AC_DEFUN([mdw_PERLLIB_CHECK],
351 [AC_REQUIRE([mdw__PERLLIB_INIT])
352 mdw_REQUIRE([mdw_CHECK_PERL], [mdw_PROG_PERL([5])])
353 AC_CACHE_CHECK([for Perl library $1], mdw_cv_perllib_$1,
354 [if $PERL -e 'use $1;' >&5 2>&5; then
355 mdw_cv_perllib_$1="yes"
356 else
357 mdw_cv_perllib_$1="no"
358 fi])
359
360 if test "$mdw_cv_perllib_$1" = "no"; then
361 NEEDED_PERLLIBS="$NEEDED_PERLLIBS $1.pm"
362
363 # --- Deal with autoconf lossage ---
364 #
365 # It doesn't want to define `prefix' until rather later on, so I have
366 # to bodge it here.
367
368 if test -z "$INC_PERLLIBS"; then
369 mdw_old_prefix="$prefix"
370 test "$prefix" = "NONE" && prefix="$ac_default_prefix";
371 INC_PERLLIBS="BEGIN { push @INC, \"`eval echo $datadir/$PACKAGE`\"; }"
372 prefix="$mdw_old_prefix";
373 fi
374 fi])
375
376 dnl --- *@-mdw_GCC_FLAGS-@* ---
377 dnl
378 dnl Author: Mark Wooding
379 dnl
380 dnl Synopsis: mdw_GCC_FLAGS([FLAGS], [CFLAGS], [C++FLAGS])
381 dnl
382 dnl Arguments: FLAGS = GCC compiler flags to add (default is
383 dnl `-pedantic -Wall')
384 dnl CFLAGS = GCC C compiler flags to add (default is empty)
385 dnl C++FLAGS = GCC C++ compiler flags to add (default is
386 dnl `-fhandle-exceptions').
387 dnl
388 dnl Use: If the C compiler is GCC, add the compiler flags.
389
390 AC_DEFUN([mdw_GCC_FLAGS],
391 [if test "$GCC" = "yes"; then
392 CFLAGS="$CFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
393 CFLAGS="$CFLAGS ifelse([$2], [], [], [$2])"
394 fi
395 if test "$GXX" = "yes"; then
396 CXXFLAGS="$CXXFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
397 CXXFLAGS="$CXXFLAGS ifelse([$3], [], [-fhandle-exceptions], [$3])"
398 fi])
399
400 dnl --- *@-mdw_INIT_LIB-@* ---
401 dnl
402 dnl Author: Mark Wooding
403 dnl
404 dnl Synopsis: mdw_INIT_LIB(LIB, NAME, VERSION, [PACKAGE])
405 dnl
406 dnl Arguments: LIB = the name of the library (and the package)
407 dnl NAME = a presentable version of the library's name
408 dnl VERSION = version of the library
409 dnl PACKAGE = package name to pass on to AM_INIT_AUTOMAKE
410 dnl
411 dnl Use: Sets up various useful variables. This macro calls
412 dnl AM_INIT_AUTOMAKE, which might be considered useful. It also
413 dnl provides variables for the use of `lib-config.in'.
414
415 AC_DEFUN([mdw_INIT_LIB],
416 [AM_INIT_AUTOMAKE(ifelse([$4], [], [$1], [$4]), [$3])
417 LIBRARY="$1" AC_SUBST(LIBRARY)
418 LIBNAME="$2" AC_SUBST(LIBNAME)])
419
420 dnl --- *@-mdw_LIB_CONFIG-@* ---
421 dnl
422 dnl Author: Mark Wooding
423 dnl
424 dnl Synopsis: mdw_LIB_CONFIG(LIB, NAME, VERSION, IF-FOUND, IF-NOT-FOUND)
425 dnl
426 dnl Arguments: LIB = the name of the library (and its configuration program)
427 dnl NAME = a presentable version of the library's name
428 dnl VERSION = version of library required
429 dnl IF-FOUND = what to do if found
430 dnl IF-NOT-FOUND = what to do if not found
431 dnl
432 dnl Use: Configures a library client program, using a configuration
433 dnl script provided by the library maintainer.
434 dnl
435 dnl The default version is 1.0.0pre0; the default action is to
436 dnl add everything to the CFLAGS and LIBS variables, and complain
437 dnl if the library couldn't be found.
438 dnl
439 dnl The variable LIB_VERSION contains the version number of
440 dnl the library; LIB_CFLAGS is the C compiler flags required
441 dnl and LIB_LIBS is the linker flags.
442
443 AC_DEFUN([mdw_LIB_CONFIG],
444 [pushdef([upname], translit([$1], [a-z], [A-Z]))dnl
445 AC_MSG_CHECKING([for $2 library])
446 if $1-config --check $3 >/dev/null 2>&1; then
447 upname[]_VERSION=`$1-config --version`
448 upname[]_CFLAGS=`$1-config --cflags`
449 upname[]_LIBS=`$1-config --libs`
450 AC_SUBST(upname[]_VERSION)
451 AC_SUBST(upname[]_CFLAGS)
452 AC_SUBST(upname[]_LIBS)
453 ifelse([$4], [],
454 [CFLAGS="$CFLAGS $upname[]_CFLAGS"
455 LIBS="$upname[]_LIBS $LIBS"],
456 $4)
457 AC_MSG_RESULT([$upname[]_VERSION])
458 else
459 ifelse([$5], [],
460 AC_MSG_ERROR([$2 library not found or too old.]),
461 $5)
462 AC_MSG_RESULT([not found])
463 fi
464 popdef([upname])])
465
466 dnl --- *@-mdw_MLIB-@* ---
467 dnl
468 dnl Author: Mark Wooding
469 dnl
470 dnl Synopsis: mdw_MLIB(VERSION, IF-FOUND, IF-NOT-FOUND
471 dnl
472 dnl Arguments: VERSION = version of library required
473 dnl IF-FOUND = what to do if found
474 dnl IF-NOT-FOUND = what to do if not found
475 dnl
476 dnl Use: Configures an mLib client program.
477
478 AC_DEFUN([mdw_MLIB], [mdw_LIB_CONFIG(mLib, mLib, $@)])
479
480 dnl --- *@-mdw_MGLIB-@* ---
481 dnl
482 dnl Author: Mark Wooding
483 dnl
484 dnl Synopsis: mdw_MGLIB(VERSION, IF-FOUND, IF-NOT-FOUND
485 dnl
486 dnl Arguments: VERSION = version of library required
487 dnl IF-FOUND = what to do if found
488 dnl IF-NOT-FOUND = what to do if not found
489 dnl
490 dnl Use: Configures an mgLib client program.
491
492 AC_DEFUN([mdw_MGLIB],
493 [mdw_REQUIRE([mdw_MLIB], [mdw_MLIB([2.0.3])])
494 mdw_LIB_CONFIG(mgLib, mgLib, $@)])
495
496 dnl --- *@-mdw_CATACOMB-@* ---
497 dnl
498 dnl Author: Mark Wooding
499 dnl
500 dnl Synopsis: mdw_CATACOMB([VERSION], [IF-FOUND], [IF-NOT-FOUND])
501 dnl
502 dnl Arguments: VERSION = version of Catacomb required
503 dnl IF-FOUND = what to do if found
504 dnl IF-NOT-FOUND = what to do if not found
505 dnl
506 dnl Use: Configures the program as a Catacomb client.
507
508 AC_DEFUN([mdw_CATACOMB],
509 [mdw_REQUIRE([mdw_MLIB], [mdw_MLIB([2.0.3])])
510 mdw_LIB_CONFIG(catacomb, Catacomb, $@)])
511
512 dnl --- *@-mdw_PK-@* ---
513 dnl
514 dnl Author: Mark Wooding
515 dnl
516 dnl Synopsis: mdw_PK([VERSION], [IF-FOUND], [IF-NOT-FOUND])
517 dnl
518 dnl Arguments: VERSION = version of PK required
519 dnl IF-FOUND = what to do if found
520 dnl IF-NOT-FOUND = what to do if not found
521 dnl
522 dnl Use: Configures the program as a PK client.
523
524 AC_DEFUN([mdw_PK],
525 [mdw_REQUIRE([mdw_MLIB], [mdw_MLIB([2.0.3])])
526 mdw_LIB_CONFIG(pk, PK, $@)])
527
528 dnl --- *@-mdw_OPT_NDEBUG-@* ---
529 dnl
530 dnl Author: Mark Wooding
531 dnl
532 dnl Synopsis: mdw_OPT_NDEBUG
533 dnl
534 dnl Arguments: ---
535 dnl
536 dnl Use: Turns on the `NDEBUG' flag, to disable useful things like
537 dnl assertions.
538
539 AC_DEFUN([mdw_OPT_NDEBUG],
540 [AC_ARG_ENABLE(debugging,
541 [ --disable-debugging spews vast swathes of useless information],
542 [if test "$enableval" = "no"; then
543 AC_DEFINE([NDEBUG], [1], [Define to turn off debugging.])
544 fi])])
545
546 dnl --- *@-mdw_OPT_EFENCE-@* ---
547 dnl
548 dnl Author: Mark Wooding
549 dnl
550 dnl Synopsis: mdw_OPT_EFENCE
551 dnl
552 dnl Arguments: ---
553 dnl
554 dnl Use: Links with the Electric Fence library.
555
556 AC_DEFUN([mdw_OPT_EFENCE],
557 [AC_ARG_WITH(electric-fence,
558 [ --with-electric-fence link programs with Electric Fence],
559 [if test "$withval" = "yes"; then
560 AC_CHECK_LIB(efence, malloc)
561 fi])])
562
563 dnl --- *@-mdw_OPT_TRACE-@* ---
564 dnl
565 dnl Author: Mark Wooding
566 dnl
567 dnl Synopsis: mdw_OPT_TRACE
568 dnl
569 dnl Arguments: ---
570 dnl
571 dnl Use: Turns on the `NTRACE' flag, to disable useful things like
572 dnl trace outputs.
573
574 AC_DEFUN([mdw_OPT_TRACE],
575 [AC_ARG_ENABLE(tracing,
576 [ --disable-tracing disable output of trace information],
577 [if test "$enableval" = "no"; then
578 AC_DEFINE([NTRACE], [1], [Define to disable tracing output.])
579 fi])])
580
581 dnl --- *@-mdw_OPT_mLib_TRACK-@* ---
582 dnl
583 dnl Author: Mark Wooding
584 dnl
585 dnl Synopsis: mdw_OPT_mLib_TRACK(PROGRAM)
586 dnl
587 dnl Arguments: PROGRAM = name of this program or package.
588 dnl
589 dnl Use: Controls the unsupported mLib memory tracker. The
590 dnl following are defined:
591 dnl
592 dnl --enable-track turns on malloc tracking
593 dnl --enable-blame-PROGRAM tracks malloc contexts in PROGRAM
594 dnl
595 dnl There must be a separate `blame' option for each program,
596 dnl so that the various blame options in a hierarchy get
597 dnl propagated properly. This is an obsolete feature from the
598 dnl days when mLib was provided as a subdirectory of other
599 dnl packages.
600
601 AC_DEFUN([mdw_OPT_mLib_TRACK],
602 [AC_REQUIRE([mdw_OPT_TRACE])
603 AC_ARG_ENABLE(track,
604 [ --enable-track enable tracking of malloc and free],
605 [AC_DEFINE([TRACK_ENABLE], [1], [Define to enable malloc tracking.])])
606 AC_ARG_ENABLE(blame-$1,
607 [ --enable-blame-$1
608 track malloc contexts while in $1],
609 [AC_DEFINE([TRACK_BLAME], [1],
610 [Define to track mallocs in this code.])])])
611
612 dnl --- *@-mdw_OPT_mLib_DEBUG-@* ---
613 dnl
614 dnl Author: Mark Wooding
615 dnl
616 dnl Synopsis: mdw_OPT_mLib_DEBUG(PROGRAM)
617 dnl
618 dnl Arguments: PROGRAM = name of this program or package.
619 dnl
620 dnl Use: Provides all of the above debugging options.
621
622 AC_DEFUN([mdw_OPT_mLib_DEBUG],
623 [AC_REQUIRE([mdw_OPT_NDEBUG])
624 AC_REQUIRE([mdw_OPT_mLib_TRACK], [mdw_OPT_mLib_TRACK([$1])])])
625
626 dnl --- *@-mdw_DEFINE_PATHS-@*
627 dnl
628 dnl Author: Mark Wooding
629 dnl
630 dnl Synopsis: mdw_DEFINE_FILES(CODE)
631 dnl
632 dnl Arguments: CODE = shell script code to execute
633 dnl
634 dnl Use: Fixes up various variables so that pathname defines can be
635 dnl defined. Within CODE, you may use the following macros:
636 dnl
637 dnl mdw_PROG(NAME) Transformed program name
638 dnl
639 dnl mdw_PATH(PATH) Expanded path (may contain variables)
640 dnl
641 dnl mdw_DEFINE_PROG(SYMBOL, PROG)
642 dnl Define a symbol as a transformed
643 dnl program name.
644 dnl
645 dnl mdw_DEFINE_PATH(SYMBOL, NAME)
646 dnl Define a symbol as an expanded path
647
648 AC_DEFUN([mdw_DEFINE_PATHS],
649 [mdw_prefix=$prefix mdw_exec_prefix=$exec_prefix
650 mdw_transform=`echo "$program_transform_name"|sed 's,\\\\\\\\,\\\\,g; s,\\$\\$,$,g'`
651 test "$prefix" = "NONE" && prefix=$ac_default_prefix
652 test "$exec_prefix" = "NONE" && exec_prefix=$prefix
653 $1
654 prefix=$mdw_prefix exec_prefix=$mdw_exec_prefix])
655
656 AC_DEFUN([mdw_PROG], [`echo "$1"|sed "$mdw_transform"`])
657 AC_DEFUN([mdw_PATH], [dnl
658 `t="$1"; dnl
659 while :; do dnl
660 case "$t" in dnl
661 *\\$[]*) t=\`eval echo "$t"\`;; dnl
662 *) break;; dnl
663 esac; done; dnl
664 echo "$t"`])
665 AC_DEFUN([mdw_DEFINE_PROG],
666 [AC_DEFINE_UNQUOTED([$1], ["mdw_PROG([$2])"],
667 [Program name for $2.])])
668 AC_DEFUN([mdw_DEFINE_PATH], [AC_DEFINE_UNQUOTED([$1], ["mdw_PATH([$2])"],
669 [Pathname for $2.])])
670
671 dnl --- *@-mdw_DIR_TEXMF-@* ---
672 dnl
673 dnl Author: Mark Wooding
674 dnl
675 dnl Synopsis: mdw_DIR_TEXMF
676 dnl
677 dnl Arguments: ---
678 dnl
679 dnl Use: Sets the substitution `texmfdir' as a sensible TeX install
680 dnl tree.
681
682 AC_DEFUN([mdw_DIR_TEXMF], [
683 AC_ARG_WITH([texmfdir],
684 [ --with-texmfdir=DIR set the TeX install directory to DIR],
685 [texmfdir=$withval],
686 [AC_MSG_CHECKING([where to put installed TeX files])
687 mdw_DEFINE_PATHS([
688 texmfdir='${datadir}/texmf'
689 for d in \
690 '${datadir}/texmf' '${prefix}/lib/texmf' \
691 '${prefix}/texmf' '${libdir}/lib/texmf'; do
692 if test -d "mdw_PATH([$d])"; then
693 texmfdir=$d
694 break
695 fi
696 done
697 AC_MSG_RESULT([$texmfdir])])])
698 AC_SUBST(texmfdir)])
699
700 dnl --- *@-mdw_MANEXT-@* ---
701 dnl
702 dnl Author: Mark Wooding
703 dnl
704 dnl Synopsis: mdw_MANEXT
705 dnl
706 dnl Arguments: ---
707 dnl
708 dnl Use: Sets the substitution `manext' for man page extensions.
709
710 AC_DEFUN([mdw_MANEXT], [
711 AC_ARG_WITH([man-ext],
712 [ --with-man-ext=EXT give manpages the EXT extension (e.g., foo.3EXT)],
713 [manext=$withval], [manext=mLib])
714 AC_SUBST(manext)])
715
716 dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*