[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19964: automake fails if files named “install.sh” and “install-sh” a
From: |
Nick Bowler |
Subject: |
bug#19964: automake fails if files named “install.sh” and “install-sh” are found in the parent directory |
Date: |
Fri, 27 Feb 2015 16:02:04 -0500 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
> Assuming project.tar.gz contains the source code of a project using
> the autotools as its build system:
>
> $ tar xf project.tar.gz
> $ cd project/
> $ touch ../install-sh ../install.sh
> $ autoreconf -vif
> autoreconf: Entering directory `.'
> […]
> BUG.am: error: 'install.sh' is an anachronism; use 'install-sh' instead
> […]
> autoreconf: automake failed with exit status: 1
Full test case:
% mkdir foo
% cat >foo/configure.ac <<'EOF'
AC_INIT([test], [0])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF
% touch foo/Makefile.am
% touch install-sh install.sh
% (cd foo && autoreconf -i)
configure.ac:2: installing '../missing'
BUG.am: error: 'install.sh' is an anachronism; use 'install-sh' instead
autoreconf-2.69: automake failed with exit status: 1
Note how it actually copies the missing script to ".." as well, and NOT
into the package directory. If we remove just ../install.sh automake
will still copy files into "..", and 'make dist' will fail to include
them in the tarball.
> You probably have reasons to look in .. or ../.. (and I would be
> quite interested to hear them, actually)
I imagine it is for subprojects, so that the scripts are not copied into
every one. Which unfortunately means changing the automake behaviour
could break this usage...
However, there is a workaround. If you add AC_CONFIG_AUX_DIR([.]) to
configure.ac, then this will cause Automake to not look in .. or ../..,
and things should work properly.
Cheers,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)