autoconf: Changed Quotation

1 
1 18.6.1 Changed Quotation
1 ------------------------
1 
1 The most important changes are invisible to you: the implementation of
1 most macros have completely changed.  This allowed more factorization of
1 the code, better error messages, a higher uniformity of the user's
1 interface etc.  Unfortunately, as a side effect, some construct which
1 used to (miraculously) work might break starting with Autoconf 2.50.
1 The most common culprit is bad quotation.
1 
1    For instance, in the following example, the message is not properly
1 quoted:
1 
1      AC_INIT
1      AC_CHECK_HEADERS(foo.h, ,
1        AC_MSG_ERROR(cannot find foo.h, bailing out))
1      AC_OUTPUT
1 
1 Autoconf 2.13 simply ignores it:
1 
1      $ autoconf-2.13; ./configure --silent
1      creating cache ./config.cache
1      configure: error: cannot find foo.h
1      $
1 
1 while Autoconf 2.50 produces a broken `configure':
1 
1      $ autoconf-2.50; ./configure --silent
1      configure: error: cannot find foo.h
1      ./configure: exit: bad non-numeric arg `bailing'
1      ./configure: exit: bad non-numeric arg `bailing'
1      $
1 
1    The message needs to be quoted, and the `AC_MSG_ERROR' invocation
1 too!
1 
1      AC_INIT([Example], [1.0], [bug-example@example.org])
1      AC_CHECK_HEADERS([foo.h], [],
1        [AC_MSG_ERROR([cannot find foo.h, bailing out])])
1      AC_OUTPUT
1 
1    Many many (and many more) Autoconf macros were lacking proper
1 quotation, including no less than... `AC_DEFUN' itself!
1 
1      $ cat configure.in
1      AC_DEFUN([AC_PROG_INSTALL],
1      [# My own much better version
1      ])
1      AC_INIT
1      AC_PROG_INSTALL
1      AC_OUTPUT
1      $ autoconf-2.13
1      autoconf: Undefined macros:
1      ***BUG in Autoconf--please report*** AC_FD_MSG
1      ***BUG in Autoconf--please report*** AC_EPI
1      configure.in:1:AC_DEFUN([AC_PROG_INSTALL],
1      configure.in:5:AC_PROG_INSTALL
1      $ autoconf-2.50
1      $
1