1 dnl -*-fundamental-*- *@--GLOB-HEADER--@*
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 *@--NOTICE--@* Common File Distribution
31 dnl --- *@-mdw_CURSES-@* ---
33 dnl Author: Mark Wooding
35 dnl Synopsis: mdw_CURSES
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
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.])
60 AC_CHECK_FUNCS(wresize)
63 dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
65 dnl Author: Mark Wooding
67 dnl Synopsis: mdw_TYPE_SSIZE_T
71 dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
72 dnl it defaults to `int'.
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>
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 to `int' if your system doesn't have ssize_t.])
91 dnl --- *@-mdw_DECL_ENVIRON-@* ---
93 dnl Author: Mark Wooding
95 dnl Synopsis: mdw_DECL_ENVIRON
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.
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>
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 you have the `environ' vector of environment variables.])
119 dnl --- *@-mdw_CHECK_MANYLIBS-@* ---
121 dnl Author: Mark Wooding
123 dnl Synopsis: mdw_CHECK_MANYLIBS(FUNC, LIBS, [IF-FOUND], [IF-NOT-FOUND],
124 dnl [INCLUDES], [ARGS])
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
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'.
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.
142 AC_DEFUN([mdw_CHECK_MANYLIBS],
143 [AC_CACHE_CHECK([for library containing $1], [mdw_cv_lib_$1],
144 [mdw_save_LIBS="$LIBS"
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"
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"
161 dnl --- *@-mdw__PYTHON_VERSION-@* ---
163 dnl Will fail hopelessly on Python < 1.5.2. Nobody uses that any more,
166 AC_DEFUN([mdw__PYTHON_VERSION],
167 [changequote(<:, :>)dnl
169 "$1" -c 'from sys import *; v = argv[1]; vv = v.split("."); x = 0
170 for i in range(len(vv)): x = x | (int(vv[i]) << (24 - i * 8))
171 exit(x > hexversion)' $2dnl
174 dnl --- *@-mdw_PROG_PYTHON-@* ---
176 dnl Author: Mark Wooding
178 dnl Synopsis: mdw_PROG_PYTHON(VERSION, [IF-FOUND], [IF-NOT-FOUND])
180 dnl Arguments: VERSION = version number of Python required
181 dnl IF-FOUND = what to do if it's found
182 dnl IF-NOT-FOUND = what to do if it isn't
184 dnl Use: Attempts to find a working version of Python with a late
185 dnl enough version number. It supplies an option `--with-python'
186 dnl to allow the user to provide a Python interpreter. If one
187 dnl isn't provided explicitly, it searches for `python' and
188 dnl `pythonVERSION' in the current PATH, asking them whether they
189 dnl have a late enough version number. The path of the working
190 dnl Python is put into the `PYTHON' environment variable;
191 dnl `AC_SUBST' is used to substitute its value into Python
192 dnl scripts. If there is no Python to be found, the value of
193 dnl `PYTHON' is set to be `none'.
195 AC_DEFUN([mdw_PROG_PYTHON],
196 [AC_ARG_WITH([python],
197 [ --with-python=PYTHON specify path to Python version $1 or newer],
199 if test -z "$PYTHON"; then
200 [AC_CACHE_CHECK([for Python version $1 or later], mdw_cv_prog_python,
201 [mdw_cv_prog_python="none"
202 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
203 case "$p" in /*) ;; *) p=`pwd`/$p ;; esac
204 if mdw__PYTHON_VERSION(["$p/python"], $1); then
205 mdw_cv_prog_python="$p/python"
208 if mdw__PYTHON_VERSION(["$p/python$1"], $1); then
209 mdw_cv_prog_python="$p/python$1"
213 PYTHON="$mdw_cv_prog_python"])
217 if test "$PYTHON" = "none"; then :
223 dnl --- *@-mdw_CHECK_PYTHON-@* ---
225 dnl Author: Mark Wooding
227 dnl Synopsis: mdw_CHECK_PYTHON(VERSION)
229 dnl Arguments: VERSION = version number of Python required
231 dnl Use: Verifies that the Python interpreter in the `PYTHON' shell
232 dnl variable actually works and is of the right version. If it's
233 dnl not, an error is raised and configuration is aborted.
235 AC_DEFUN([mdw_CHECK_PYTHON],
236 [AC_REQUIRE([mdw_PROG_PYTHON], [mdw_PROG_PYTHON([$1])])
237 AC_MSG_CHECKING([whether Python ($PYTHON) works])
238 if test "$PYTHON" != "none" && mdw__PYTHON_VERSION("$PYTHON", $1); then
242 AC_MSG_ERROR([Python version $1 or newer not found.
243 If you have a recent enough Python, and I just failed to find it, try using
244 the --with-python=PYTHON option to give me an explicit pathname.])
247 dnl --- *@-mdw__PERL_VERSION-@* ---
249 dnl AC_DEFUN relies on `[', `]' being quotes, so I have to drop down a level.
251 AC_DEFUN([mdw__PERL_VERSION], [mdw__PERL_VERSION_hack([$1], [$2])])
253 define(<:mdw__PERL_VERSION_hack:>,
254 <:test -x $1 && $1 -e 'exit ($] < $2);' >&5 2>&5:>)
257 dnl --- *@-mdw_PROG_PERL-@* ---
259 dnl Author: Mark Wooding
261 dnl Synopsis: mdw_PROG_PERL(VERSION, [IF-FOUND], [IF-NOT-FOUND])
263 dnl Arguments: VERSION = version number of Perl required
264 dnl IF-FOUND = what to do if it's found
265 dnl IF-NOT-FOUND = what to do if it isn't
267 dnl Use: Attempts to find a working version of Perl with a late
268 dnl enough version number. It supplies an option `--with-perl'
269 dnl to allow the user to provide a Perl interpreter. If one
270 dnl isn't provided explicitly, it searches for `perl' and `perl5'
271 dnl in the current PATH, asking them whether they have a late
272 dnl enough version number. The path of the working Perl is
273 dnl put into the `PERL' environment variable; `AC_SUBST' is used
274 dnl to substitute its value into Perl scripts. If there is no
275 dnl Perl to be found, the value of `PERL' is set to be `none'.
277 AC_DEFUN([mdw_PROG_PERL],
279 [ --with-perl=PERL specify path to Perl version $1 or newer],
281 if test -z "$PERL"; then
282 [AC_CACHE_CHECK([for Perl version $1 or later], mdw_cv_prog_perl,
283 [mdw_cv_prog_perl="none"
284 for p in `echo "$PATH:/usr/local/bin" | tr ":" " "`; do
285 case "$p" in /*) ;; *) p=`pwd`/$p ;; esac
286 if mdw__PERL_VERSION(["$p/perl"], $1); then
287 mdw_cv_prog_perl="$p/perl"
290 if mdw__PERL_VERSION(["$p/perl5"], $1); then
291 mdw_cv_prog_perl="$p/perl5"
295 PERL="$mdw_cv_prog_perl"])
299 if test "$PERL" = "none"; then :
305 dnl --- *@-mdw_CHECK_PERL-@* ---
307 dnl Author: Mark Wooding
309 dnl Synopsis: mdw_CHECK_PERL(VERSION)
311 dnl Arguments: VERSION = version number of Perl required
313 dnl Use: Verifies that the Perl interpreter in the `PERL' shell
314 dnl variable actually works and is of the right version. If it's
315 dnl not, an error is raised and configuration is aborted.
317 AC_DEFUN([mdw_CHECK_PERL],
318 [AC_REQUIRE([mdw_PROG_PERL], [mdw_PROG_PERL([$1])])
319 AC_MSG_CHECKING([whether Perl ($PERL) works])
320 if test "$PERL" != "none" && mdw__PERL_VERSION("$PERL", $1); then
324 AC_MSG_ERROR([Perl version $1 or newer not found.
325 If you have a recent enough Perl, and I just failed to find it, try using
326 the --with-perl=PERL option to give me an explicit pathname.])
329 dnl --- *@-mdw_PERLLIB_CHECK-@* ---
331 dnl Author: Mark Wooding
333 dnl Synopsis: mdw_PERLLIB_CHECK(LIBRARY)
335 dnl Arguments: LIBRARY = name of a Perl library to check for
337 dnl Use: Ensures that a Perl script can `use LIBRARY;'. If it can,
338 dnl all's well and good; if it can't, `LIBRARY.pm' is added to
339 dnl the variable `NEEDED_PERLLIBS' and a line which adds
340 dnl `pkgdatadir' to Perl's `@INC' array is placed in the
341 dnl variable `INC_PERLLIBS'; `AC_SUBST' is called for both of
342 dnl these variables. It's expected that `NEEDED_PERLLIBS' will
343 dnl be used in the `Makefile.in' to decide which versions from
344 dnl the distribution need installing.
346 dnl This macro isn't terribly useful in the general case. It
347 dnl Also implicitly assumes that `$PERL' is Perl 5 or later.
349 AC_DEFUN([mdw__PERLLIB_INIT],
350 [AC_SUBST(INC_PERLLIBS)dnl
351 AC_SUBST(NEEDED_PERLLIBS)dnl
354 AC_DEFUN([mdw_PERLLIB_CHECK],
355 [AC_REQUIRE([mdw__PERLLIB_INIT])
356 AC_REQUIRE([mdw_CHECK_PERL], [mdw_PROG_PERL([5])])
357 AC_CACHE_CHECK([for Perl library $1], mdw_cv_perllib_$1,
358 [if $PERL -e 'use $1;' >&5 2>&5; then
359 mdw_cv_perllib_$1="yes"
361 mdw_cv_perllib_$1="no"
364 if test "$mdw_cv_perllib_$1" = "no"; then
365 NEEDED_PERLLIBS="$NEEDED_PERLLIBS $1.pm"
367 # --- Deal with autoconf lossage ---
369 # It doesn't want to define `prefix' until rather later on, so I have
372 if test -z "$INC_PERLLIBS"; then
373 mdw_old_prefix="$prefix"
374 test "$prefix" = "NONE" && prefix="$ac_default_prefix";
375 INC_PERLLIBS="BEGIN { push @INC, \"`eval echo $datadir/$PACKAGE`\"; }"
376 prefix="$mdw_old_prefix";
380 dnl --- *@-mdw_GCC_FLAGS-@* ---
382 dnl Author: Mark Wooding
384 dnl Synopsis: mdw_GCC_FLAGS([FLAGS], [CFLAGS], [C++FLAGS])
386 dnl Arguments: FLAGS = GCC compiler flags to add (default is
387 dnl `-pedantic -Wall')
388 dnl CFLAGS = GCC C compiler flags to add (default is empty)
389 dnl C++FLAGS = GCC C++ compiler flags to add (default is
390 dnl `-fhandle-exceptions').
392 dnl Use: If the C compiler is GCC, add the compiler flags.
394 AC_DEFUN([mdw_GCC_FLAGS],
395 [if test "$GCC" = "yes"; then
396 CFLAGS="$CFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
397 CFLAGS="$CFLAGS ifelse([$2], [], [], [$2])"
399 if test "$GXX" = "yes"; then
400 CXXFLAGS="$CXXFLAGS ifelse([$1], [], [-pedantic -Wall], [$1])"
401 CXXFLAGS="$CXXFLAGS ifelse([$3], [], [-fhandle-exceptions], [$3])"
404 dnl --- *@-mdw_INIT_LIB-@* ---
406 dnl Author: Mark Wooding
408 dnl Synopsis: mdw_INIT_LIB(LIB, NAME, VERSION, [PACKAGE])
410 dnl Arguments: LIB = the name of the library (and the package)
411 dnl NAME = a presentable version of the library's name
412 dnl VERSION = version of the library
413 dnl PACKAGE = package name to pass on to AM_INIT_AUTOMAKE
415 dnl Use: Sets up various useful variables. This macro calls
416 dnl AM_INIT_AUTOMAKE, which might be considered useful. It also
417 dnl provides variables for the use of `lib-config.in'.
419 AC_DEFUN([mdw_INIT_LIB],
420 [AM_INIT_AUTOMAKE(ifelse([$4], [], [$1], [$4]), [$3])
421 LIBRARY="$1" AC_SUBST(LIBRARY)
422 LIBNAME="$2" AC_SUBST(LIBNAME)])
424 dnl --- *@-mdw_LIB_CONFIG-@* ---
426 dnl Author: Mark Wooding
428 dnl Synopsis: mdw_LIB_CONFIG(LIB, NAME, VERSION, IF-FOUND, IF-NOT-FOUND)
430 dnl Arguments: LIB = the name of the library (and its configuration program)
431 dnl NAME = a presentable version of the library's name
432 dnl VERSION = version of library required
433 dnl IF-FOUND = what to do if found
434 dnl IF-NOT-FOUND = what to do if not found
436 dnl Use: Configures a library client program, using a configuration
437 dnl script provided by the library maintainer.
439 dnl The default version is 1.0.0pre0; the default action is to
440 dnl add everything to the CFLAGS and LIBS variables, and complain
441 dnl if the library couldn't be found.
443 dnl The variable LIB_VERSION contains the version number of
444 dnl the library; LIB_CFLAGS is the C compiler flags required
445 dnl and LIB_LIBS is the linker flags.
447 AC_DEFUN([mdw_LIB_CONFIG],
448 [pushdef([upname], translit([$1], [a-z], [A-Z]))dnl
449 AC_MSG_CHECKING([for $2 library])
450 if $1-config --check $3 >/dev/null 2>&1; then
451 upname[]_VERSION=`$1-config --version`
452 upname[]_CFLAGS=`$1-config --cflags`
453 upname[]_LIBS=`$1-config --libs`
454 AC_SUBST(upname[]_VERSION)
455 AC_SUBST(upname[]_CFLAGS)
456 AC_SUBST(upname[]_LIBS)
458 [CFLAGS="$CFLAGS $upname[]_CFLAGS"
459 LIBS="$upname[]_LIBS $LIBS"],
461 AC_MSG_RESULT([$upname[]_VERSION])
464 AC_MSG_ERROR([$2 library not found or too old.]),
466 AC_MSG_RESULT([not found])
470 dnl --- *@-mdw_MLIB-@* ---
472 dnl Author: Mark Wooding
474 dnl Synopsis: mdw_MLIB(VERSION, IF-FOUND, IF-NOT-FOUND
476 dnl Arguments: VERSION = version of library required
477 dnl IF-FOUND = what to do if found
478 dnl IF-NOT-FOUND = what to do if not found
480 dnl Use: Configures an mLib client program.
482 AC_DEFUN([mdw_MLIB], [mdw_LIB_CONFIG(mLib, mLib, $@)])
484 dnl --- *@-mdw_MGLIB-@* ---
486 dnl Author: Mark Wooding
488 dnl Synopsis: mdw_MGLIB(VERSION, IF-FOUND, IF-NOT-FOUND
490 dnl Arguments: VERSION = version of library required
491 dnl IF-FOUND = what to do if found
492 dnl IF-NOT-FOUND = what to do if not found
494 dnl Use: Configures an mgLib client program.
496 AC_DEFUN([mdw_MGLIB],
497 [AC_REQUIRE([mdw_MLIB], [mdw_MLIB([2.0.3])])
498 mdw_LIB_CONFIG(mgLib, mgLib, $@)])
500 dnl --- *@-mdw_CATACOMB-@* ---
502 dnl Author: Mark Wooding
504 dnl Synopsis: mdw_CATACOMB([VERSION], [IF-FOUND], [IF-NOT-FOUND])
506 dnl Arguments: VERSION = version of Catacomb required
507 dnl IF-FOUND = what to do if found
508 dnl IF-NOT-FOUND = what to do if not found
510 dnl Use: Configures the program as a Catacomb client.
512 AC_DEFUN([mdw_CATACOMB],
513 [AC_REQUIRE([mdw_MLIB], [mdw_MLIB([2.0.3])])
514 mdw_LIB_CONFIG(catacomb, Catacomb, $@)])
516 dnl --- *@-mdw_PK-@* ---
518 dnl Author: Mark Wooding
520 dnl Synopsis: mdw_PK([VERSION], [IF-FOUND], [IF-NOT-FOUND])
522 dnl Arguments: VERSION = version of PK required
523 dnl IF-FOUND = what to do if found
524 dnl IF-NOT-FOUND = what to do if not found
526 dnl Use: Configures the program as a PK client.
529 [AC_REQUIRE([mdw_MLIB], [mdw_MLIB([2.0.3])])
530 mdw_LIB_CONFIG(pk, PK, $@)])
532 dnl --- *@-mdw_OPT_NDEBUG-@* ---
534 dnl Author: Mark Wooding
536 dnl Synopsis: mdw_OPT_NDEBUG
540 dnl Use: Turns on the `NDEBUG' flag, to disable useful things like
543 AC_DEFUN([mdw_OPT_NDEBUG],
544 [AC_ARG_ENABLE(debugging,
545 [ --disable-debugging spews vast swathes of useless information],
546 [if test "$enableval" = "no"; then
547 AC_DEFINE([NDEBUG], [1],
548 [Define to turn off assertions and other debugging. Not recommended.])
551 dnl --- *@-mdw_OPT_EFENCE-@* ---
553 dnl Author: Mark Wooding
555 dnl Synopsis: mdw_OPT_EFENCE
559 dnl Use: Links with the Electric Fence library.
561 AC_DEFUN([mdw_OPT_EFENCE],
562 [AC_ARG_WITH(electric-fence,
563 [ --with-electric-fence link programs with Electric Fence],
564 [if test "$withval" = "yes"; then
565 AC_CHECK_LIB(efence, malloc)
568 dnl --- *@-mdw_OPT_TRACE-@* ---
570 dnl Author: Mark Wooding
572 dnl Synopsis: mdw_OPT_TRACE
576 dnl Use: Turns on the `NTRACE' flag, to disable useful things like
579 AC_DEFUN([mdw_OPT_TRACE],
580 [AC_ARG_ENABLE(tracing,
581 [ --disable-tracing disable output of trace information],
582 [if test "$enableval" = "no"; then
583 AC_DEFINE([NTRACE], [1], [Define to turn off tracing.])
586 dnl --- *@-mdw_OPT_mLib_TRACK-@* ---
588 dnl Author: Mark Wooding
590 dnl Synopsis: mdw_OPT_mLib_TRACK(PROGRAM)
592 dnl Arguments: PROGRAM = name of this program or package.
594 dnl Use: Controls the unsupported mLib memory tracker. The
595 dnl following are defined:
597 dnl --enable-track turns on malloc tracking
598 dnl --enable-blame-PROGRAM tracks malloc contexts in PROGRAM
600 dnl There must be a separate `blame' option for each program,
601 dnl so that the various blame options in a hierarchy get
602 dnl propagated properly. This is an obsolete feature from the
603 dnl days when mLib was provided as a subdirectory of other
606 AC_DEFUN([mdw_OPT_mLib_TRACK],
607 [AC_REQUIRE([mdw_OPT_TRACE])
609 [ --enable-track enable tracking of malloc and free],
610 [AC_DEFINE([TRACK_ENABLE], [1],
611 [Define to turn on memory tracking. Doesn't work properly.])])
612 AC_ARG_ENABLE(blame-$1,
614 track malloc contexts while in $1],
615 [AC_DEFINE([TRACK_BLAME], [1],
616 [Define to track mallocs in this code.])])])
618 dnl --- *@-mdw_OPT_mLib_DEBUG-@* ---
620 dnl Author: Mark Wooding
622 dnl Synopsis: mdw_OPT_mLib_DEBUG(PROGRAM)
624 dnl Arguments: PROGRAM = name of this program or package.
626 dnl Use: Provides all of the above debugging options.
628 AC_DEFUN([mdw_OPT_mLib_DEBUG],
629 [AC_REQUIRE([mdw_OPT_NDEBUG])
630 AC_REQUIRE([mdw_OPT_mLib_TRACK], [mdw_OPT_mLib_TRACK([$1])])])
632 dnl --- *@-mdw_DEFINE_PATHS-@*
634 dnl Author: Mark Wooding
636 dnl Synopsis: mdw_DEFINE_PATHS(CODE)
638 dnl Arguments: CODE = shell script code to execute
640 dnl Use: Fixes up various variables so that pathname defines can be
641 dnl defined. Within CODE, you may use the following macros:
643 dnl mdw_PROG(NAME) Transformed program name
645 dnl mdw_PATH(PATH) Expanded path (may contain variables)
647 dnl mdw_DEFINE_PROG(SYMBOL, PROG)
648 dnl Define a symbol as a transformed
651 dnl mdw_DEFINE_PATH(SYMBOL, NAME)
652 dnl Define a symbol as an expanded path
654 AC_DEFUN([mdw_DEFINE_PATHS],
655 [mdw_prefix=$prefix mdw_exec_prefix=$exec_prefix
656 mdw_transform=`echo "$program_transform_name"|sed 's,\\\\\\\\,\\\\,g; s,\\$\\$,$,g'`
657 test "$prefix" = "NONE" && prefix=$ac_default_prefix
658 test "$exec_prefix" = "NONE" && exec_prefix=$prefix
660 prefix=$mdw_prefix exec_prefix=$mdw_exec_prefix])
662 AC_DEFUN([mdw_PROG], [`echo "$1"|sed "$mdw_transform"`])
663 AC_DEFUN([mdw_PATH], [dnl
667 *\\$[]*) t=\`eval echo "$t"\`;; dnl
671 AC_DEFUN([mdw_DEFINE_PROG],
672 [AC_DEFINE_UNQUOTED([$1], ["mdw_PROG([$2])"],
673 [Program name for $2.])])
674 AC_DEFUN([mdw_DEFINE_PATH], [AC_DEFINE_UNQUOTED([$1], ["mdw_PATH([$2])"],
675 [Pathname for $2.])])
677 dnl --- *@-mdw_DIR_TEXMF-@* ---
679 dnl Author: Mark Wooding
681 dnl Synopsis: mdw_DIR_TEXMF
685 dnl Use: Sets the substitution `texmfdir' as a sensible TeX install
688 AC_DEFUN([mdw_DIR_TEXMF], [
689 AC_ARG_WITH([texmfdir],
690 [ --with-texmfdir=DIR set the TeX install directory to DIR],
692 [AC_MSG_CHECKING([where to put installed TeX files])
694 texmfdir='${datadir}/texmf'
696 '${datadir}/texmf' '${prefix}/lib/texmf' \
697 '${prefix}/texmf' '${libdir}/lib/texmf'; do
698 if test -d "mdw_PATH([$d])"; then
703 AC_MSG_RESULT([$texmfdir])])])
706 dnl --- *@-mdw_MANEXT-@* ---
708 dnl Author: Mark Wooding
710 dnl Synopsis: mdw_MANEXT
714 dnl Use: Sets the substitution `manext' for man page extensions.
716 AC_DEFUN([mdw_MANEXT], [
717 AC_ARG_WITH([man-ext],
718 [ --with-man-ext=EXT give manpages the EXT extension (e.g., foo.3EXT)],
719 [manext=$withval], [manext=mLib])
722 dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*