maint: Update HACKING
[automake.git] / t / remake-recurs-user.sh
blob665dc3d164713f839cf88c472a2538b61650340c
1 #! /bin/sh
2 # Copyright (C) 2012-2017 Free Software Foundation, Inc.
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.
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.
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/>.
17 # Remake rules and user-defined recursive rules.
19 . test-init.sh
21 cat >> configure.ac << 'END'
22 m4_include([extra-targets.m4])
23 AC_CONFIG_FILES([sub/Makefile])
24 AC_OUTPUT
25 END
27 echo 'AM_EXTRA_RECURSIVE_TARGETS([foo])' > extra-targets.m4
29 cat > Makefile.am << 'END'
30 SUBDIRS = sub
31 all-local: foo
32 foo-local:
33 : > foo
34 bar-local:
35 : > bar
36 MOSTLYCLEANFILES = foo
37 END
39 mkdir sub
40 cat > sub/Makefile.am << 'END'
41 foo-local:
42 : > foo2
43 MOSTLYCLEANFILES = foo2
44 bar-local: later-target
45 END
47 $ACLOCAL
48 $AUTOCONF
49 $AUTOMAKE
51 ./configure
53 $MAKE
54 test -f foo
55 test -f sub/foo2
56 test ! -f bar
57 test ! -f sub/zardoz
58 $MAKE distcheck
60 $sleep
62 echo 'AM_EXTRA_RECURSIVE_TARGETS([bar])' >> extra-targets.m4
64 cat >> Makefile.am <<'END'
65 MOSTLYCLEANFILES += bar oof
66 all-local: bar
67 foo-local: oof
68 oof:
69 : > $@
70 END
72 echo 'include $(srcdir)/more.am' >> sub/Makefile.am
74 cat > sub/more.am << 'END'
75 later-target:
76 : > zardoz
77 DISTCLEANFILES = zardoz
78 END
80 using_gmake || $MAKE Makefile
81 $MAKE
82 test -f foo
83 test -f oof
84 test -f sub/foo2
85 test -f bar
86 test -f sub/zardoz
87 $MAKE distcheck