diff options
author | Mathieu Lirzin <mthl@gnu.org> | 2017-09-20 00:08:59 +0200 |
---|---|---|
committer | Mathieu Lirzin <mthl@gnu.org> | 2017-09-20 00:08:59 +0200 |
commit | 7508174f4a6c19eeda89a7e18b8d1398fe85ccf0 (patch) | |
tree | 2938ba28267cfc6d6cba0b763f80e4b32ce49b03 /t/auxdir-autodetect.sh | |
parent | c2757b974cb4c182333859edb45a01194550bc0e (diff) | |
parent | ced195a8556b68eab3dd0887e07a97c6ae4917bf (diff) | |
download | automake-7508174f4a6c19eeda89a7e18b8d1398fe85ccf0.tar.gz |
Merge branch 'minor'
Diffstat (limited to 't/auxdir-autodetect.sh')
-rw-r--r-- | t/auxdir-autodetect.sh | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/t/auxdir-autodetect.sh b/t/auxdir-autodetect.sh new file mode 100644 index 000000000..16db5f1b0 --- /dev/null +++ b/t/auxdir-autodetect.sh @@ -0,0 +1,130 @@ +#! /bin/sh +# Copyright (C) 2010-2017 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 <https://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 + +: |