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