Hi,

I am a newbie in autoconf, just trying to create my first project using
the tools. Spent a lot of time understanding why autoreconf finishes
with error:

> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: not using Libtool
> autoreconf: running: /usr/bin/autoconf
> autoreconf: running: /usr/bin/autoheader
> autoreconf: running: automake --add-missing --no-force
> configure.ac:3: installing `./install-sh'
> configure.ac:3: installing `./missing'
> configure.ac:4: required file `config.h.in' not found
> autoreconf: automake failed with exit status: 1

autoheader completed without error, so config.h.in should exists...
Finally I found the cause of the problem. Here is my configure.ac file:

AC_PREREQ([2.66])
AC_INIT([autoheader-bug], [0.1], [bug-autoconf@gnu.org])
AM_INIT_AUTOMAKE([ foreign -Wall -Werror ])
AC_CONFIG_HEADERS([ config.h ])
AC_CONFIG_FILES([ Makefile ])
AC_OUTPUT

The problem caused by a space before config.h. autoheader successfully
created ".in" file (note: it is a hidden file), but automake looks for
"config.h.in". autoheader incorrectly gets name of the first file:

# We template only the first CONFIG_HEADER.
$config_h =~ s/ .*//;

Deleting everything starting from the first space is a bad idea.
Something like this works better:

$config_h =~ s/\A\s*(\S+).*\z/$1/;

See all the files in the attached archive. It includes configure.ac,
Makefile.am, two scripts (to run autoreconf and clean the directory),
and autoreconf output.

I run it on Fedora Linux 14 (x86_64), autoheader (GNU Autoconf) 2.66
(autoconf-2.66-2.fc14.noarch).

--Van

Attachment: autoheader-bug.tgz
Description: application/compressed-tar

Reply via email to