> 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/)