autoconf
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]