blob: 17567c0fc6ec713307436eb70f5676c4a39b51ca [file] [log] [blame]
#! /bin/sh
# Copyright (C) 2010-2013 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Make sure that, if AC_CONFIG_AUX_DIR is not specified, Automake tries
# to use '.', '..' and '../..', in precisely that order.
. test-init.sh
nil=__no_such_program
unset NONESUCH || :
cat >>configure.ac << END
AM_MISSING_PROG([NONESUCH],[$nil])
AC_OUTPUT
END
mkdir d3
mkdir d3/d2
mkdir d3/d2/d1
mkdir d3/d2/d1/d0
echo 'echo %%d3%% $*' > d3/missing
chmod +x d3/missing
echo 'echo %%d2%% $*' > d3/d2/missing
chmod +x d3/d2/missing
echo 'echo %%d1%% $*' > d3/d2/d1/missing
chmod +x d3/d2/d1/missing
echo 'echo %%d0%% $*' > d3/d2/d1/d0/missing
chmod +x d3/d2/d1/d0/missing
mv configure.ac d3/d2/d1/d0/
cd d3/d2/d1/d0
cat > Makefile.am << 'EOF'
.PHONY: test
test:
$(NONESUCH) >$(out)
EOF
$ACLOCAL
$AUTOCONF
# ------------------------------------------- #
: We must end up with AC_CONFIG_AUX_DIR = . #
# ------------------------------------------- #
: > install-sh
$AUTOMAKE
./configure
out=out0 $MAKE test
cat out0
grep "%%d0%%.*$nil" out0
grep '%%d[123]' out0 && exit 1
rm -f missing install-sh
# -------------------------------------------- #
: We must end up with AC_CONFIG_AUX_DIR = .. #
# -------------------------------------------- #
# Automake finds 'install-sh' in '.', so it assumes that auxdir is '.';
# but it won't find 'missing' in '.', so it will fail.
: > install-sh
AUTOMAKE_fails
grep 'required file.*[^.]\./missing.*not found' stderr
rm -f install-sh
# Now things should work.
: > ../install-sh
$AUTOMAKE
./configure
out=out1 $MAKE test
cat out1
grep "%%d1%%.*$nil" out1
grep '%%d[023]' out1 && exit 1
rm -f ../missing ../install-sh
# ----------------------------------------------- #
: We must end up with AC_CONFIG_AUX_DIR = ../.. #
# ----------------------------------------------- #
# Automake finds 'install-sh' in '.', so it assumes that auxdir is '.';
# but it won't find 'missing' in '.', so it will fail.
: > install-sh
AUTOMAKE_fails
grep 'required file.*[^.]\./missing.*not found' stderr
rm -f install-sh
# Automake finds 'install-sh' in '..', so it assumes that auxdir is '..';
# but it won't find 'missing' in '.', so it will fail.
: > ../install-sh
AUTOMAKE_fails
grep 'required file.*[^.]\.\./missing.*not found' stderr
rm -f ../install-sh
# Now things should work.
: > ../../install-sh
$AUTOMAKE
./configure
out=out2 $MAKE test
cat out2
grep "%%d2%%.*$nil" out2
grep '%%d[013]' out2 && exit 1
rm -f ../../missing ../../install-sh
# --------------------------------------------------------- #
: AC_CONFIG_AUX_DIR will not be found: Automake must fail #
# --------------------------------------------------------- #
AUTOMAKE_fails
grep 'required file.*missing.*not found' stderr
: