Software versions: automake (GNU automake) 1.14.1 aclocal (GNU automake) 1.14.1 autoconf (GNU Autoconf) 2.69 autoreconf (GNU Autoconf) 2.69
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 $ rm ../install-sh ../install.sh $ autoreconf -vif autoreconf: Entering directory `.' […] autoreconf: Leaving directory `.' $ echo $? 0 It seems to be related to this code (taken from the last git revision) # The default auxiliary directory is the first # of ., .., or ../.. that contains install-sh. # Assume . if install-sh doesn't exist yet. for my $dir (qw (. .. ../..)) { if (-f "$dir/install-sh") { $config_aux_dir = $dir; last; } } Which sets $config_aux_dir to "..", but then later we look for install.sh in that directory err_am "'install.sh' is an anachronism; use 'install-sh' instead" if -f $config_aux_dir . '/install.sh'; You probably have reasons to look in .. or ../.. (and I would be quite interested to hear them, actually), but I don’t think it should fail in the specific case I described above. I don’t think it’s safe to assume that the parent directory of a project is not filled with garbage (mine was full or random files, including a install.sh and install-sh files, for some reasons). Plus, it was really, really hard for me to understand which “install.sh” file this error was talking about, since I could not find any such file in my working directory or any sub-directory. Regards -- Florent