Hello Dennis. Thanks for the report, but what you're describing is indeed a user error, not an automake/autoconf bug. I'm thus closing this bug report as invalid.
Details follow ... On Saturday 05 February 2011, Dennis Schridde wrote: > When I write configure.ac as quoted below and run: > aclocal -I m4 > autoconf > automake > the latter will respond with: > "configure.ac:7: missing m4 quoting, macro depth 2" > That's because you're underquoting the call to `AM_COND_IF'. > Changing the AS_IF line to: > AS_IF([test -x /bin],[ > fixes that. (Of course also insert the obvious ']') > It would be better to fix the `AM_COND_IF' line. See below. > When I then run ./configure (after running autoconf and automake again), I > get > this error: > ./configure: line 2428: syntax error near unexpected token `(' > That's because you're underquoting the call to `AC_MSG_ERROR'. > The cause is that the error message is cut off at (before) the ',' comma. > This can be fixed by changing the AM_COND_IF line to: > AM_COND_IF([CONDITION],,[ > (Of course also insert the obvious ']') > It would be better to fix the `AC_MSG_ERROR' line. See below. > Since other macros defined by autoconf and automake do not have to be quoted > in this way, > Yes, they do. See: <http://www.gnu.org/software/autoconf/manual/html_node/Quotation-Rule-Of-Thumb.html> and for more details: <http://www.gnu.org/software/autoconf/manual/html_node/M4-Quotation.html> > I assume that there is a quoting problem specific to AM_COND_IF. > I.e. AM_COND_IF does not quote its arguments hard enough, or something > similar. > No, the underquoting is in your macro calls. > > --- configure.ac --- > AC_INIT([test], [0]) > AC_CONFIG_MACRO_DIR([m4]) > AM_INIT_AUTOMAKE > > AM_CONDITIONAL([CONDITION],[test -x /tmp]) > AS_IF([test -x /bin], > AM_COND_IF([CONDITION],, > AC_MSG_ERROR([comma separated, message]) > ) > ) > > AC_OUTPUT([Makefile]) > FWIW, I'd write this as: AC_INIT([test], [0]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE(foreign) AM_CONDITIONAL([CONDITION],[test -x /tmp]) AS_IF([test -x /bin], [AM_COND_IF([CONDITION], [], [AC_MSG_ERROR([comma separated, message])])]) AC_OUTPUT([Makefile]) Sorry for the curt answer, but I'm in a hurry right now. HTH, Stefano