1 | #! /bin/sh
|
---|
2 | # Copyright (C) 2002 Free Software Foundation, Inc.
|
---|
3 | #
|
---|
4 | # This file is part of GNU Automake.
|
---|
5 | #
|
---|
6 | # GNU Automake is free software; you can redistribute it and/or modify
|
---|
7 | # it under the terms of the GNU General Public License as published by
|
---|
8 | # the Free Software Foundation; either version 2, or (at your option)
|
---|
9 | # any later version.
|
---|
10 | #
|
---|
11 | # GNU Automake is distributed in the hope that it will be useful,
|
---|
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
14 | # GNU General Public License for more details.
|
---|
15 | #
|
---|
16 | # You should have received a copy of the GNU General Public License
|
---|
17 | # along with Automake; see the file COPYING. If not, write to
|
---|
18 | # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
---|
19 | # Boston, MA 02111-1307, USA.
|
---|
20 |
|
---|
21 | # Check that Automake warns about variables containing spaces
|
---|
22 | # and other non-POSIX characters.
|
---|
23 |
|
---|
24 | . ./defs || exit 1
|
---|
25 |
|
---|
26 | set -e
|
---|
27 |
|
---|
28 | cat >Makefile.am <<'EOF'
|
---|
29 | L01 = $(shell echo *)
|
---|
30 | L02 = $$(not an error)
|
---|
31 | L03 = $$(this is)$${ok too}
|
---|
32 | L04 = $(nextvariableisbad)$(addsuffix .a, $(A))
|
---|
33 | L05 = "$(bad boy)"
|
---|
34 | L06 = $(this:is= ok)
|
---|
35 | L07 = ${three errors}${on this} $(long line)
|
---|
36 | L08$(o u c h): $(wildcard *.c)
|
---|
37 | ${another error}
|
---|
38 | echo $${ok-this is}
|
---|
39 | L11: $(thisis) $(ok)
|
---|
40 | ${here}
|
---|
41 | EOF
|
---|
42 |
|
---|
43 | $ACLOCAL
|
---|
44 | # Make sure this warning is print in the `portability' category.
|
---|
45 | $AUTOMAKE --warnings=no-error,none,portability 2>stderr
|
---|
46 | cat stderr
|
---|
47 |
|
---|
48 | # Lines number are printed in error message.
|
---|
49 | # Use them to make sure errors are diagnosed against the right lines.
|
---|
50 |
|
---|
51 | # No error expected for these lines.
|
---|
52 | grep 1: stderr
|
---|
53 | grep 2: stderr && exit 1
|
---|
54 | grep 3: stderr && exit 1
|
---|
55 | grep 4: stderr
|
---|
56 | grep 5: stderr
|
---|
57 | grep 6: stderr && exit 1
|
---|
58 | grep 7: stderr
|
---|
59 | grep 8: stderr
|
---|
60 | grep 9: stderr
|
---|
61 | grep 10: stderr && exit 1
|
---|
62 | grep 11: stderr && exit 1
|
---|
63 | grep 12: stderr && exit 1
|
---|
64 |
|
---|
65 | # Now check some individual values.
|
---|
66 | grep 'shell echo' stderr
|
---|
67 | grep 'nextvariableisbad' stderr && exit 1
|
---|
68 | grep 'addsuffix' stderr
|
---|
69 | grep 'bad boy' stderr
|
---|
70 | grep 'ok' stderr && exit 1
|
---|
71 | grep 'three errors' stderr
|
---|
72 | grep 'on this' stderr
|
---|
73 | grep 'long line' stderr
|
---|
74 | grep 'o u c h' stderr
|
---|
75 | grep 'wildcard' stderr
|
---|
76 | grep 'another error' stderr
|
---|
77 | grep 'thisis' stderr && exit 1
|
---|
78 | grep 'here' stderr && exit 1
|
---|
79 |
|
---|
80 | # None of these errors be diagnosed with -Wno-portability
|
---|
81 | $AUTOMAKE -Wno-portability
|
---|
82 |
|
---|
83 | # Likewise if we add this in the Makefile.am
|
---|
84 | # (although this makes some difference internally: AUTOMAKE_OPTIONS is
|
---|
85 | # processed far later).
|
---|
86 | echo 'AUTOMAKE_OPTIONS = -Wno-portability' >> Makefile.am
|
---|
87 | $AUTOMAKE
|
---|