The following code from my configuration.ac file does not work (note the nested square brackets with [default=no]):
AC_ARG_ENABLE(debug,
[ --enable-debug build with debugging support [default=no].],
[DEBUG="$enableval"],
[DEBUG="no"]
)
How can I escape those brackets?
Found it! From this tutorial:
M4 arguments are quoted with [ and ]. There is NO WAY to escape these, however, you have several options if you wish to insert ['s or ]'s:
- Use a `Quadrigraph'. @<:@ gives you [ and @:>@ gives you ].
- Balance your quotes. M4 will turn [[]] in to []. Beware of using this in arguments to macros. Sometimes, you need to double quote as well ([[[]]]).
- Change the quoting using: changequote(<<,>>) to change the quoting to << and >>. The autoconf documentation (rightly, in my opinion) warns against the (over) use of this, since it can lead to unexpected results.
- Avoid [ and ] where ever possible. This is my personal choice.
My new code is therefore:
AC_ARG_ENABLE(debug,
AS_HELP_STRING(
[--enable-debug],
[build with debugging symbols @<:@default=no@:>@]),
[enable_debug="$enableval"],
[enable_debug="no"]
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With