[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: autoconf generates buggy configure
From: |
Akim Demaille |
Subject: |
Re: autoconf generates buggy configure |
Date: |
20 May 2002 12:17:38 +0200 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Common Lisp) |
| 1) text from inside an AC_HELP_STRING() macro was NOT placed in the
| help section. Instead, it was just willy-nilly put into the script
| itself. Since help text is not, in general, valid shell script,
| this caused errors. Other AC_HELP_STRING()'s behaved as expected.
This macro should never have existed, as it is quite not writable with
the current GNU M4. Just don't use [ ] in it. That's its problem
#1. Yes, it is a bug, we do agree. We just don't have the technology
to write one good implementation of it. So, please, don't use it when
[ and ] are needed. Use AC_ARG_ENABLE etc. with a literal as documentation.
| 2) case statements were completely hosed (no closing ')' on the
| match strings, a random 'fi' just dropped in between the match
| string and the execution clause, ...
|
|
| 3) if statements not closed: 'fi' or 'else' ommitted...
All these are typical of ``user-error or a buggy-configure.in'' :)
Just make sure you strictly follow the quotation rules (see the
documentation). If you don't, then, because of the silly Bourne Shell
syntax (I mean, I find the syntax itself silly, I'm not having an
Autoconf bias here) which has unbalanced `)', M4 will think your
case's `)' are macro invocation closers.
| Again, this is true for ac-2.53, ac-2.53a, and ac-2.52.
Sure! A broken configure.in is broken independently of the Autoconf
version :)
| --- cvs-1.11.2-orig/configure 2002-05-19 06:46:53.000000000 -0400
| +++ cvs-1.11.2/configure 2002-05-19 06:16:46.000000000 -0400
| @@ -848,6 +848,8 @@
| --disable-dependency-tracking Speeds up one-time builds
| --enable-dependency-tracking Do not reject slow dependency extractors
| --enable-encryption enable encryption support
| + --enable-client include code for running as a remote client
| + (default)
Post your AC_ARG_ENABLE invocation for `client' please.
| @@ -6037,6 +6039,7 @@
| #define HAVE_GETSPNAM 1
| _ACEOF
|
| +fi
Post your invocation which check for getspnam. I bet you embed an
AC_DEFINE which is not quoted. Read the documentation, it is fairly
explicit about this issue.
| @@ -6307,9 +6310,7 @@
|
| # So? What about this header?
| case $ac_header_compiler:$ac_header_preproc in
| - yes:no
| -fi
| -
| + yes:no )
Post your code, and see yourself that it includes a macro invocation
which is not quoted.
| @@ -9566,13 +9561,12 @@
| echo "$as_me: error: cannot find gdbm.h" >&2;}
| { (exit 1); exit 1; }; }
| fi
| -
| -,
This comma is another side effect of the underquotation: it was meant
to separate a macro's arguments, but before this comma, there is case
stmt that fooled M4.