test defs: move in 't/ax/test-defs.sh'
[platform/upstream/automake.git] / t / mkdirp-deprecation.sh
1 #! /bin/sh
2 # Copyright (C) 2012 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 the AM_PROG_MKDIR_P macro is deprecated; it will be
18 # be removed in the next major Automake release.  But also check
19 # that it still works as expected in the current release series.
20
21 . ./defs || exit 1
22
23 cat >> configure.ac << 'END'
24 AM_PROG_MKDIR_P
25 AC_CONFIG_FILES([sub/Makefile])
26 AC_OUTPUT
27 END
28
29 cat > Makefile.am << 'END'
30 SUBDIRS = sub
31 all-local:
32         $(mkdir_p) . dir1/a
33         @mkdir_p@ . dir2/b
34 check-local: all
35         test -d dir1/a
36         test -d dir2/b
37         test -d dir3/c
38         test -d dir3/d
39 END
40
41 mkdir sub
42 cat > sub/Makefile.am << 'END'
43 # '$(mkdir_p)' should continue to work even in subdir makefiles.
44 all-local:
45         $(mkdir_p) .. ../dir3/c
46         @mkdir_p@ .. ../dir3/d
47 END
48
49 grep_err ()
50 {
51   loc='^configure.ac:4:'
52   grep "$loc.*AM_PROG_MKDIR_P.*deprecated" stderr
53   grep "$loc.* use .*AC_PROG_MKDIR_P" stderr
54   grep "$loc.* use '\$(MKDIR_P)' instead of '\$(mkdir_p)'.*Makefile" stderr
55 }
56
57 $ACLOCAL
58
59 $AUTOCONF -Werror -Wobsolete 2>stderr && { cat stderr >&2; exit 1; }
60 cat stderr >&2
61 grep_err
62
63 $AUTOCONF -Werror -Wno-obsolete
64
65 AUTOMAKE_fails
66 grep_err
67 AUTOMAKE_fails --verbose -Wnone -Wobsolete
68 grep_err
69
70 $AUTOMAKE -Wno-obsolete
71
72 ./configure
73 $MAKE check-local
74 $MAKE distcheck
75
76 :