test harness: improve catching of usage errors in script 'test-driver'
[platform/upstream/automake.git] / t / distcheck-hook2.sh
1 #! /bin/sh
2 # Copyright (C) 2011-2013 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 <http://www.gnu.org/licenses/>.
16
17 # Check that no 'distcheck-hook' target is created automatically by
18 # Automake, and that a used-defined 'distcheck-hook' is *not* honored
19 # in a subpackage Makefile.am.
20
21 . test-init.sh
22
23 cat >> configure.ac << 'END'
24 AC_CONFIG_SUBDIRS([subpkg])
25 AC_OUTPUT
26 END
27
28 mkdir subpkg
29
30 cat > subpkg/configure.ac << 'END'
31 AC_INIT([subpkg], [1.0])
32 AM_INIT_AUTOMAKE
33 AC_CONFIG_FILES([Makefile])
34 AC_OUTPUT
35 END
36
37 cat > Makefile.am <<'END'
38 distcheck-hook:
39         ls -l $(distdir)
40         chmod u+w $(distdir)
41         : > $(distdir)/dc-hook-has-run
42         chmod a-w $(distdir)
43 check-local:
44         ls -l $(srcdir)
45         test -f $(srcdir)/dc-hook-has-run
46 END
47
48 cat > subpkg/Makefile.am <<'END'
49 check-local:
50         ls -l $(srcdir)
51         test ! -r $(srcdir)/dc-hook-has-run
52 END
53
54 $ACLOCAL
55 $AUTOMAKE
56 $AUTOCONF
57 cd subpkg
58 $ACLOCAL
59 $AUTOMAKE
60 $AUTOCONF
61 cd ..
62
63 # For debugging.
64 $FGREP 'distcheck-hook' Makefile.in subpkg/Makefile.in
65
66 $FGREP 'distcheck-hook' subpkg/Makefile.in && exit 1
67 $FGREP '$(MAKE) $(AM_MAKEFLAGS) distcheck-hook' Makefile.in
68 grep '^distcheck-hook:' Makefile.in
69
70 ./configure
71
72 $MAKE
73 $MAKE check && exit 1
74 cd subpkg
75 $MAKE check
76 cd ..
77 $MAKE distcheck
78
79 :