111 lines
2.7 KiB
Bash
111 lines
2.7 KiB
Bash
#!/bin/sh
|
|
# Copyright (C) 2009-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 <http://www.gnu.org/licenses/>.
|
|
|
|
# Check user extensibility of silent-rules mode.
|
|
|
|
. test-init.sh
|
|
|
|
cat >>configure.ac <<'EOF'
|
|
AC_CONFIG_FILES([sub/Makefile])
|
|
AC_OUTPUT
|
|
EOF
|
|
|
|
# We delegate all the work to the subdir makefile. This is done
|
|
# to ensure any command-line setting of $(V) gets correctly passed
|
|
# down to recursive make invocations.
|
|
echo SUBDIRS = sub > Makefile.am
|
|
|
|
mkdir sub
|
|
cat > sub/Makefile.am <<'EOF'
|
|
AUTOMAKE_OPTIONS = -Wno-portability-recursive
|
|
my_verbose = $(my_verbose_$(V))
|
|
my_verbose_ = $(my_verbose_$(AM_DEFAULT_VERBOSITY))
|
|
my_verbose_0 = @echo " XGEN $@";
|
|
|
|
all-local: foo gen-headers
|
|
|
|
list = 0 1 2
|
|
.PHONY: gen-headers
|
|
gen-headers:
|
|
@headers=`for i in $(list); do echo sub/$$i.h; done`; \
|
|
if $(AM_V_P); then set -x; else \
|
|
echo " GEN [headers]"; \
|
|
fi; \
|
|
rm -f $$headers || exit 1; \
|
|
## Only fake header generation.
|
|
: generate-header --flags $$headers
|
|
|
|
foo: foo.in
|
|
$(my_verbose)cp $(srcdir)/foo.in $@
|
|
EXTRA_DIST = foo.in
|
|
CLEANFILES = foo
|
|
EOF
|
|
|
|
: > sub/foo.in
|
|
|
|
$ACLOCAL
|
|
$AUTOMAKE --add-missing
|
|
$AUTOCONF
|
|
|
|
do_check ()
|
|
{
|
|
case ${1-} in
|
|
--silent) silent=:;;
|
|
--verbose) silent=false;;
|
|
*) fatal_ "do_check(): incorrect usage";;
|
|
esac
|
|
shift
|
|
$MAKE clean
|
|
run_make -M -- ${1+"$@"}
|
|
if $silent; then
|
|
$FGREP 'cp ' output && exit 1
|
|
$FGREP 'generate-header' output && exit 1
|
|
$FGREP 'rm -f' output && exit 1
|
|
grep '[012]\.h' output && exit 1
|
|
grep '^ XGEN foo$' output
|
|
grep '^ GEN \[headers\]$' output
|
|
else
|
|
$FGREP 'GEN ' output && exit 1
|
|
$FGREP 'cp ./foo.in foo' output
|
|
# Be prepared to handle "creative quoting" in the shell traces.
|
|
# See automake bug#14760.
|
|
ok=false
|
|
for q in '' \' \"; do
|
|
files="${q}sub/0.h${q} ${q}sub/1.h${q} ${q}sub/2.h${q}"
|
|
$FGREP "rm -f $files" output || continue
|
|
$FGREP "generate-header --flags $files" output || continue
|
|
ok=:
|
|
break
|
|
done
|
|
$ok || exit 1
|
|
unset ok
|
|
fi
|
|
}
|
|
|
|
./configure --enable-silent-rules
|
|
do_check --silent
|
|
do_check --verbose V=1
|
|
|
|
$MAKE distclean
|
|
|
|
./configure --disable-silent-rules
|
|
do_check --verbose
|
|
do_check --silent V=0
|
|
|
|
$MAKE distclean
|
|
|
|
:
|