1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>
Autoconf Macro: ax_subst_with
</title>
<link rel="stylesheet" type="text/css" href="ac-archive.css">
</head>
<body>
<table summary="web navigation" style="width:100%;">
<tbody>
<tr>
<td style="width:50%;" align="center">
<a href="http://autoconf-archive.cryp.to/ax_subst_with.m4">Download M4
Source</a>
</td>
<td style="width:50%;" align="center">
<a href="macros-by-category.html">Macro Index Page</a>
</td>
</tr>
</tbody>
</table>
<hr>
<h1>
ax_subst_with
</h1>
<h2>
Synopsis
</h2>
<p class="indent" style="white-space:nowrap;">
<code>AX_SUBST_WITH([varname])</code>
</p>
<h2>
Description
</h2>
<div class="indent">
<p>
a very simple macro but also very helpful - the varname is usually the one
from an AC_ARG_ENABLE or AC_ARG_WITH option. it is transliterated into
uppercase and a prefix WITH_ and WITHOUT_ that are both _SUBSTed.
</p>
<p>
Only one of these is set to "#" while the other is empty. In other words a
call like AC_WITHNONE(enable-call) will create two SUBST-symbols as
WITH_ENABLE_CALL and WITHOUT_ENABLE_CALL. When the varname had been set to
something not "no" or "0" or ":" or "false" then it results in
</p>
<pre>
WITH_ENABLE_CALL="" ; WITHOUT_ENABLE_CALL="#"
</pre>
<p>
which you can use in your Makefile quite easily as if using an
AM_CONDITIONAL but which can be also parsed by normal make
</p>
<p>
USE = @WITH_ENABLE_CALL@ -Denabled USE = @WITHOUT_ENABLE_CALL@
-Dnot_enabled
</p>
</div>
<h2>
Author
</h2>
<p class="indent">
Guido Draheim <guidod@gmx.de>
</p>
<h2>
Last Modified
</h2>
<p class="indent">
2005-01-22
</p>
<h2>
M4 Source Code
</h2>
<div class="indent">
<pre class="m4source">
dnl AX_SUBST_WITH_IF(flag,cond) - not unlike AM_CONDITIONAL
AC_DEFUN([AX_SUBST_WITH_IF],[dnl
pushdef([VAR_WITH], patsubst(translit([with_$1], [a-z], [A-Z]), -, _))dnl
pushdef([VAR_WITHOUT], patsubst(translit([without_$1], [a-z], [A-Z]), -, _))dnl
AC_SUBST(VAR_WITH)
AC_SUBST(VAR_WITHOUT)
if $2; then
VAR_WITH=""
VAR_WITHOUT="#"
else
VAR_WITH="#"
VAR_WITHOUT=""
fi
popdef([VAR_WITHOUT])dnl
popdef([VAR_WITH])dnl
])
dnl AX_SUBST_WITH(varname [,default]) - not unlike AM_CONDITIONAL
AC_DEFUN([AX_SUBST_WITH],[dnl
pushdef([VAR], patsubst(translit([with_$1], [A-Z], [a-z]), -, _))dnl
pushdef([VAR_WITH], patsubst(translit([with_$1], [a-z], [A-Z]), -, _))dnl
pushdef([VAR_WITHOUT], patsubst(translit([without_$1], [a-z], [A-Z]), -, _))dnl
pushdef([VAR_WITHVAL], patsubst(translit([withval_$1], [a-z], [A-Z]), -, _))dnl
AC_SUBST(VAR_WITH)
AC_SUBST(VAR_WITHOUT)
VAR_WITHVAL=`echo "$VAR"`
test ".$VAR_WITHVAL" = "." && VAR_WITHVAL="m4_ifval([$2],[$2],no)"
test ".$VAR_WITHVAL" = ".:" && VAR_WITHVAL="no"
test ".$VAR_WITHVAL" = ".0" && VAR_WITHVAL="no"
test ".$VAR_WITHVAL" = ".no" && VAR_WITHVAL="no"
test ".$VAR_WITHVAL" = ".false" && VAR_WITHVAL="no"
if test ".$VAR_WITHVAL" != ".no" ; then
VAR_WITH=""
VAR_WITHOUT="#"
else
VAR_WITH="#"
VAR_WITHOUT=""
fi
popdef([VAR_WITHVAL])dnl
popdef([VAR_WITHOUT])dnl
popdef([VAR_WITH])dnl
popdef([VAR])dnl
])
dnl AX_SUBST_WITH_DEFINE(varname [,default]) - not unlike AM_CONDITIONAL
AC_DEFUN([AX_SUBST_WITH_DEFINE],[dnl
pushdef([VAR], patsubst(translit([with_$1], [A-Z], [a-z]), -, _))dnl
pushdef([VAR_WITH], patsubst(translit([with_$1], [a-z], [A-Z]), -, _))dnl
pushdef([VAR_WITHOUT], patsubst(translit([without_$1], [a-z], [A-Z]), -, _))dnl
pushdef([VAR_WITHVAL], patsubst(translit([withval_$1], [a-z], [A-Z]), -, _))dnl
AC_SUBST(VAR_WITH)
AC_SUBST(VAR_WITHOUT)
VAR_WITHVAL=`echo "$VAR"`
test ".$VAR_WITHVAL" = "." && VAR_WITHVAL="m4_ifval([$2],[$2],no)"
test ".$VAR_WITHVAL" = ".:" && VAR_WITHVAL="no"
test ".$VAR_WITHVAL" = ".0" && VAR_WITHVAL="no"
test ".$VAR_WITHVAL" = ".no" && VAR_WITHVAL="no"
test ".$VAR_WITHVAL" = ".false" && VAR_WITHVAL="no"
if test ".$VAR_WITHVAL" != ".no" ; then
VAR_WITH=""
VAR_WITHOUT="#"
case "$VAR_WITHVAL" in
[[0123456789]]*) ;;
[yes)] VAR_WITHVAL="1" ;;
[*)] VAR_WITHVAL=`echo "\"$VAR_WITHVAL\"" | sed -e 's,"",",g'` ;;
esac
else
VAR_WITH="#"
VAR_WITHOUT=""
fi
if test ".$VAR_WITHVAL" != ".no" ; then
AC_DEFINE_UNQUOTED(VAR_WITH, $VAR_WITHVAL,
[whether $1 feature is enabled])
fi dnl
popdef([VAR_WITHVAL])dnl
popdef([VAR_WITHOUT])dnl
popdef([VAR_WITH])dnl
popdef([VAR])dnl
])
dnl backward compatibility helpers
AC_DEFUN([AX_SUBST_WITH_ARG],[dnl
pushdef([VAR], patsubst(translit([with_$1], [A-Z], [a-z]), -, _))dnl
m4_ifvaln([$2],[test ".$VAR" = "." && VAR="$2"])dnl
AX_SUBST_WITH([$1],[$2])
popdef([VAR])dnl
])
AC_DEFUN([AX_SUBST_WITH_DEFINE_ARG],[dnl
pushdef([VAR], patsubst(translit([with_$1], [A-Z], [a-z]), -, _))dnl
m4_ifvaln([$2],[test ".$VAR" = "." && VAR="$2"])dnl
AX_SUBST_WITH_DEFINE([$1],[$2])
popdef([VAR])dnl
])
</pre>
</div>
</body>
</html>
|