Hello, In the Autoconf manual we read:
==== When you use the same text in a macro argument, you must therefore have an extra quotation level (since one is stripped away by the macro substitution). In general, then, it is a good idea to use double quoting for all literal string arguments, either around just the problematic portions, or over the entire argument: AC_MSG_WARN([[AC_DC] stinks --Iron Maiden]) AC_MSG_WARN([[AC_DC stinks --Iron Maiden]]) However, the above example triggers a warning about a possibly unexpanded macro when running autoconf, because it collides with the namespace of macros reserved for the Autoconf language. To be really safe, you can use additional escaping (either a quadrigraph, or creative shell constructs) to silence that particular warning: echo "Hard rock was here! --AC""_DC" AC_MSG_WARN([[AC@&t@_DC stinks --Iron Maiden]]) ==== https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Autoconf-Language.html#Autoconf-Language Note what it says: "triggers a warning". However, it seems in some cases, using a word that looks like it could be a macro triggers a hard error, not just a warning: $ autoreconf -iv autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal configure.ac:4: warning: macro 'AM_DC' not found in library autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: running: /usr/bin/autoconf configure.ac:4: error: possibly undefined macro: AM_DC If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. autoreconf: /usr/bin/autoconf failed with exit status: 1 Any ideas which it is: is it actually forbidden, or should it be just a warning? I intend to put information about this here: http://buildsystem-manual.sourceforge.net/Macro-name-quoting.html#Macro-name-quoting , which I've adapted from the test in the automake manual. Contents of files: $ cat configure.ac AC_INIT([helloprog], [1.0]) AM_INIT_AUTOMAKE echo AM_DC rocks AC_CONFIG_FILES([Makefile]) AC_OUTPUT $ cat Makefile.am AUTOMAKE_OPTIONS=foreign dist-xz $