1#! /bin/sh
2# Copyright (C) 2012-2021 Free Software Foundation, Inc.
3#
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2, or (at your option)
7# any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program.  If not, see <https://www.gnu.org/licenses/>.
16
17# Remake rules and user-defined recursive rules.
18
19. test-init.sh
20
21cat >> configure.ac << 'END'
22m4_include([extra-targets.m4])
23AC_CONFIG_FILES([sub/Makefile])
24AC_OUTPUT
25END
26
27echo 'AM_EXTRA_RECURSIVE_TARGETS([foo])' > extra-targets.m4
28
29cat > Makefile.am << 'END'
30SUBDIRS = sub
31all-local: foo
32foo-local:
33	: > foo
34bar-local:
35	: > bar
36MOSTLYCLEANFILES = foo
37END
38
39mkdir sub
40cat > sub/Makefile.am << 'END'
41foo-local:
42	: > foo2
43MOSTLYCLEANFILES = foo2
44bar-local: later-target
45END
46
47$ACLOCAL
48$AUTOCONF
49$AUTOMAKE
50
51./configure
52
53$MAKE
54test -f foo
55test -f sub/foo2
56test ! -f bar
57test ! -f sub/zardoz
58$MAKE distcheck
59
60$sleep
61
62echo 'AM_EXTRA_RECURSIVE_TARGETS([bar])' >> extra-targets.m4
63
64cat >> Makefile.am <<'END'
65MOSTLYCLEANFILES += bar oof
66all-local: bar
67foo-local: oof
68oof:
69	: > $@
70END
71
72echo 'include $(srcdir)/more.am' >> sub/Makefile.am
73
74cat > sub/more.am << 'END'
75later-target:
76	: > zardoz
77DISTCLEANFILES = zardoz
78END
79
80using_gmake || $MAKE Makefile
81$MAKE
82test -f foo
83test -f oof
84test -f sub/foo2
85test -f bar
86test -f sub/zardoz
87$MAKE distcheck
88
89:
90