summaryrefslogtreecommitdiff
path: root/t/recurs-user-many.sh
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2017-09-20 00:08:59 +0200
committerMathieu Lirzin <mthl@gnu.org>2017-09-20 00:08:59 +0200
commit7508174f4a6c19eeda89a7e18b8d1398fe85ccf0 (patch)
tree2938ba28267cfc6d6cba0b763f80e4b32ce49b03 /t/recurs-user-many.sh
parentc2757b974cb4c182333859edb45a01194550bc0e (diff)
parentced195a8556b68eab3dd0887e07a97c6ae4917bf (diff)
downloadautomake-7508174f4a6c19eeda89a7e18b8d1398fe85ccf0.tar.gz
Merge branch 'minor'
Diffstat (limited to 't/recurs-user-many.sh')
-rw-r--r--t/recurs-user-many.sh73
1 files changed, 73 insertions, 0 deletions
diff --git a/t/recurs-user-many.sh b/t/recurs-user-many.sh
new file mode 100644
index 000000000..c4a0f6481
--- /dev/null
+++ b/t/recurs-user-many.sh
@@ -0,0 +1,73 @@
+#! /bin/sh
+# Copyright (C) 2012-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/>.
+
+# Check that many user-defined recursive targets can be supported
+# at once, and that calls to 'AM_EXTRA_RECURSIVE_TARGETS' are
+# cumulative.
+
+. test-init.sh
+
+cat >> configure.ac <<'END'
+AC_CONFIG_FILES([sub/Makefile])
+## NOTE: extra white spaces, tabs, newlines and backslashes in the
+## lines below: on purpose.
+AM_EXTRA_RECURSIVE_TARGETS([ foo \
+ bar ])
+AC_SUBST([CLEANFILES], ['foo bar baz'])
+AC_OUTPUT
+# Yes, this appears after AC_OUTPUT. So what?
+AM_EXTRA_RECURSIVE_TARGETS([baz])
+END
+
+mkdir sub
+
+cat > Makefile.am <<'END'
+SUBDIRS = sub
+foo-local:
+ : > foo
+bar-local:
+ echo x > bar
+baz-local: ; touch baz
+check-local: foo bar baz
+ ls -l . sub ;: For debugging.
+ test -f foo
+ test -f bar
+ test -f baz
+ test -f sub/foo
+ test -f sub/bar
+ test -f sub/baz
+END
+
+cat > sub/Makefile.am <<'END'
+foo-local bar-local baz-local:
+ touch `echo $@ | sed 's/-local$$//'`
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+for t in foo bar baz; do
+ $FGREP "$t-am" Makefile.in
+ $FGREP "$t-am" sub/Makefile.in
+done
+
+./configure
+
+$MAKE check
+$MAKE distcheck
+
+: