chiark / gitweb /
Generally bring up-to-date.
[cfd] / aclocal.glob
1 dnl -*-autoconf-*-                                        *@--GLOB-HEADER--@*
2 dnl
3 dnl Common library of autoconf macros
4 dnl
5 dnl (c) 1997 Mark Wooding, except for macros and documentation where noted.
6 dnl
7
8 dnl----- Licensing notice ---------------------------------------------------
9 dnl
10 dnl This file is part of the Common Files Distribution (`common')
11 dnl
12 dnl `Common' is free software; you can redistribute it and/or modify
13 dnl it under the terms of the GNU General Public License as published by
14 dnl the Free Software Foundation; either version 2 of the License, or
15 dnl (at your option) any later version.
16 dnl
17 dnl `Common' is distributed in the hope that it will be useful,
18 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
19 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 dnl GNU General Public License for more details.
21 dnl
22 dnl You should have received a copy of the GNU General Public License
23 dnl along with `common'; if not, write to the Free Software Foundation,
24 dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26 dnl *@--NOTICE--@* Common File Distribution
27
28 dnl --- *@-mdw_AUTO_VERSION-@* ---
29 dnl
30 dnl Author:     Mark Wooding
31 dnl
32 dnl Synopsis:   mdw_AUTO_VERSION
33 dnl
34 dnl Arguments:  ---
35 dnl
36 dnl Use:        Defines an m4 macro AUTO_VERSION which contains the current
37 dnl             version number, worked out in some clever way.
38
39 dnl AC_DEFUN([mdw_AUTO_VERSION], [nobody cares...])
40 m4_define([mdw_AUTO_VERSION], [m4_define([AUTO_VERSION], m4_esyscmd([
41   if test -d .git && version=$(git describe --abbrev=4 2>/dev/null); then
42     case "$(git diff-index --name-only HEAD)" in
43       "") ;; *) version="$version+" ;;
44     esac
45   elif cat RELEASE 2>/dev/null; then
46     version=$(cat RELEASE)
47   elif test -f debian/changelog; then
48     version=$(sed -n '/^.*(\(.*\)).*$/ { s::\1:p; q; }' debian/changelog)
49   else
50     echo UNKNOWN
51   fi
52   echo -n $version
53 ]))])
54
55 dnl --- *@-mdw_LIBTOOL_VERSION_INFO-@* ---
56 dnl
57 dnl Author:     Mark Wooding
58 dnl
59 dnl Synopsis:   mdw_LIBTOOL_VERSION
60 dnl
61 dnl Arguments:  ---
62 dnl
63 dnl Use:        Decodes the PACKAGE_VERSION variable as a libtool
64 dnl             version-info string.  Strictly speaking, this is very
65 dnl             naughty.
66
67 AC_DEFUN([mdw_LIBTOOL_VERSION_INFO], [
68   set -- $(echo $PACKAGE_VERSION |
69   sed 's:[^.*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$]:\1 \2 \3:'
70   )
71   LIBTOOL_VERSION_INFO="$(expr $[]1 + $[]2):$[]3:$[]2"
72   AC_SUBST([LIBTOOL_VERSION_INFO])
73 ])
74
75 dnl --- *@-mdw_DECL_ENVIRON-@* ---
76 dnl
77 dnl Author:     Mark Wooding
78 dnl
79 dnl Synopsis:   mdw_DECL_ENVIRON
80 dnl
81 dnl Arguments:  ---
82 dnl
83 dnl Use:        Searches for a declaration of the global `environ' variable.
84 dnl             If one is found in one of the `usual' places, DECL_ENVIRON
85 dnl             is defined as a preprocessor symbol.
86
87 AC_DEFUN([mdw_DECL_ENVIRON],
88 [AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
89 [AC_EGREP_CPP([\<environ\>],
90 [#include <sys/types.h>
91 #if HAVE_UNISTD_H
92 #include <unistd.h>
93 #endif
94 #if STDC_HEADERS
95 #include <stdlib.h>
96 #include <stddef.h>
97 #endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
98 if test $mdw_cv_environ = yes; then
99   AC_DEFINE([DECL_ENVIRON], [1],
100             [Define if you have the `environ' vector of environment variables.])
101 fi])
102
103 dnl --- *@-mdw_DEFINE_PATHS-@*
104 dnl
105 dnl Author:     Mark Wooding
106 dnl
107 dnl Synopsis:   mdw_DEFINE_PATHS(CODE)
108 dnl
109 dnl Arguments:  CODE = shell script code to execute
110 dnl
111 dnl Use:        Fixes up various variables so that pathname defines can be
112 dnl             defined.  Within CODE, you may use the following macros:
113 dnl
114 dnl             mdw_PROG(NAME)          Transformed program name
115 dnl
116 dnl             mdw_PATH(PATH)          Expanded path (may contain variables)
117 dnl
118 dnl             mdw_DEFINE_PROG(SYMBOL, PROG)
119 dnl                                     Define a symbol as a transformed
120 dnl                                     program name.
121 dnl
122 dnl             mdw_DEFINE_PATH(SYMBOL, NAME)
123 dnl                                     Define a symbol as an expanded path
124
125 AC_DEFUN([mdw_DEFINE_PATHS],
126 [mdw_prefix=$prefix mdw_exec_prefix=$exec_prefix
127 mdw_transform=`echo "$program_transform_name"|sed 's,\\\\\\\\,\\\\,g; s,\\$\\$,$,g'`
128 test "$prefix" = "NONE" && prefix=$ac_default_prefix
129 test "$exec_prefix" = "NONE" && exec_prefix=$prefix
130 $1
131 prefix=$mdw_prefix exec_prefix=$mdw_exec_prefix])
132
133 AC_DEFUN([mdw_PROG], [`echo "$1"|sed "$mdw_transform"`])
134 AC_DEFUN([mdw_PATH], [dnl
135 `t="$1"; dnl
136 while :; do dnl
137 case "$t" in dnl
138 *\\$[]*) t=\`eval echo "$t"\`;; dnl
139 *) break;; dnl
140 esac; done; dnl
141 echo "$t"`])
142 AC_DEFUN([mdw_DEFINE_PROG],
143          [AC_DEFINE_UNQUOTED([$1], ["mdw_PROG([$2])"],
144                              [Program name for $2.])])
145 AC_DEFUN([mdw_DEFINE_PATH], [AC_DEFINE_UNQUOTED([$1], ["mdw_PATH([$2])"],
146                                                 [Pathname for $2.])])
147
148 dnl --- *@-mdw_MANEXT-@* ---
149 dnl
150 dnl Author:     Mark Wooding
151 dnl
152 dnl Synopsis:   mdw_MANEXT
153 dnl
154 dnl Arguments:  ---
155 dnl
156 dnl Use:        Sets the substitution `manext' for man page extensions.
157
158 AC_DEFUN([mdw_MANEXT], [
159 AC_ARG_WITH([man-ext],
160 [  --with-man-ext=EXT      give manpages the EXT extension (e.g., foo.3EXT)],
161 [manext=$withval], [manext=mLib])
162 AC_SUBST(manext)])
163
164 dnl----- That's all, folks --------------------------------- *@--GLOB-END--@*