autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AC_CONFIG_COMMANDS does not handle an empty second argument.


From: Zack Weinberg
Subject: AC_CONFIG_COMMANDS does not handle an empty second argument.
Date: Fri, 1 Feb 2002 15:27:10 -0800
User-agent: Mutt/1.3.27i

In 2.13, an AC_OUTPUT line that specified INIT-CMDS but no EXTRA-CMDS
was fine: the generated configure script worked.  In 2.5x, the same
AC_OUTPUT line produces a configure script that will write a malformed
config.status.

The bug is actually in AC_CONFIG_COMMANDS: it can be reproduced by
this modern script:

$ cat configure.ac
AC_INIT(test, 0)
AC_PREREQ(2.52)
AC_CONFIG_COMMANDS(default, , [echo hi there])
AC_OUTPUT

$ autoconf
$ ./configure
configure: creating ./config.status
hi there
./config.status: 233: Syntax error: "done" unexpected (expecting ")")

Here's the problem chunk of shell:

cat >>$CONFIG_STATUS <<\EOF

#
# CONFIG_COMMANDS section.
#
for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`

  case $ac_dest in
  esac
done
EOF

Note the empty case statement.

Replacing that AC_CONFIG_COMMANDS line with

AC_CONFIG_COMMANDS(default, [true], [echo hi there])

produces a correct script:

  case $ac_dest in
    default ) true ;;
  esac

This construct really did appear in Apache's configure.in; this is not
a hypothetical problem.

zw



reply via email to

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