Merge branch master into maint after 1.12 release
[platform/upstream/automake.git] / t / warnopts.sh
1 #! /bin/sh
2 # Copyright (C) 2002-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 # Make sure that we can enable or disable warnings on a per-file basis.
18
19 . ./defs || Exit 1
20
21 cat >>configure.ac <<END
22 AC_CONFIG_FILES([sub/Makefile])
23 AC_OUTPUT
24 END
25
26 mkdir sub
27
28 # These two Makefile contain the same errors, but have different
29 # warnings disabled.
30
31 cat >Makefile.am <<END
32 AUTOMAKE_OPTIONS = -Wno-obsolete
33 INCLUDES = -Ifoo
34 foo_SOURCES = unused
35 SUBDIRS = sub
36 END
37
38 cat >sub/Makefile.am <<END
39 AUTOMAKE_OPTIONS = -Wno-syntax
40 INCLUDES = -Ifoo
41 foo_SOURCES = unused
42 END
43
44 $ACLOCAL
45 AUTOMAKE_fails
46 # The expected diagnostic is
47 #   Makefile.am:3: warning: variable 'foo_SOURCES' is defined but no program or
48 #                           library has 'foo' as canonical name (possible typo)
49 #   sub/Makefile.am:2: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS'
50 grep '^Makefile.am:.*foo_SOURCES' stderr
51 grep '^sub/Makefile.am:.*INCLUDES' stderr
52 grep '^sub/Makefile.am:.*foo_SOURCES' stderr && Exit 1
53 grep '^Makefile.am:.*INCLUDES' stderr && Exit 1
54 # Only three lines of warnings.
55 test `grep -v 'warnings are treated as errors' stderr | wc -l` = 3
56
57 # On fast machines the autom4te.cache created during the above run of
58 # $AUTOMAKE is likely to have the same time stamp as the configure.ac
59 # created below; thus causing traces for the old configure.ac to be
60 # used.  We could do '$sleep', but it's faster to erase the
61 # directory.  (Erase autom4te*.cache, not autom4te.cache, because some
62 # bogus installations of Autoconf use a versioned cache).
63 rm -rf autom4te*.cache
64
65 # If we add a global -Wnone, all warnings should disappear.
66 cat >configure.ac <<END
67 AC_INIT([warnopts], [1.0])
68 AM_INIT_AUTOMAKE([-Wnone])
69 AC_CONFIG_FILES([Makefile sub/Makefile])
70 AC_OUTPUT
71 END
72 $ACLOCAL
73 $AUTOMAKE