GNU Info

Info Node: (autoconf.info)Changed Quotation

(autoconf.info)Changed Quotation


Next: New Macros Up: Autoconf 2.13
Enter node , (file) or (file)node

Changed Quotation
-----------------

   The most important changes are invisible to you: the implementation
of most macros have completely changed.  This allowed more
factorization of the code, better error messages, a higher uniformity
of the user's interface etc.  Unfortunately, as a side effect, some
construct which used to (miraculously) work might break starting with
Autoconf 2.50.  The most common culprit is bad quotation.

   For instance, in the following example, the message is not properly
quoted:

     AC_INIT
     AC_CHECK_HEADERS(foo.h,,
     AC_MSG_ERROR(cannot find foo.h, bailing out))
     AC_OUTPUT

Autoconf 2.13 simply ignores it:

     $ autoconf-2.13; ./configure --silent
     creating cache ./config.cache
     configure: error: cannot find foo.h
     $

while Autoconf 2.50 will produce a broken `configure':

     $ autoconf-2.50; ./configure --silent
     configure: error: cannot find foo.h
     ./configure: exit: bad non-numeric arg `bailing'
     ./configure: exit: bad non-numeric arg `bailing'
     $

   The message needs to be quoted, and the `AC_MSG_ERROR' invocation
too!

     AC_INIT
     AC_CHECK_HEADERS(foo.h,,
                      [AC_MSG_ERROR([cannot find foo.h, bailing out])])
     AC_OUTPUT

   Many many (and many more) Autoconf macros were lacking proper
quotation, including no less than... `AC_DEFUN' itself!

     $ cat configure.in
     AC_DEFUN([AC_PROG_INSTALL],
     [# My own much better version
     ])
     AC_INIT
     AC_PROG_INSTALL
     AC_OUTPUT
     $ autoconf-2.13
     autoconf: Undefined macros:
     ***BUG in Autoconf--please report*** AC_FD_MSG
     ***BUG in Autoconf--please report*** AC_EPI
     configure.in:1:AC_DEFUN([AC_PROG_INSTALL],
     configure.in:5:AC_PROG_INSTALL
     $ autoconf-2.50
     $


automatically generated by info2www version 1.2.2.9