Mimic Paul Eggert's changes to Autoconf.
[automake.git] / tests / vars3.test
blob9f1d0dbad9b1a2cff189b13d96aa76a92d678921
1 #! /bin/sh
2 # Copyright (C) 2002 Free Software Foundation, Inc.
4 # This file is part of GNU Automake.
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.
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.
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.
21 # Check that Automake warns about variables containing spaces
22 # and other non-POSIX characters.
24 . ./defs || exit 1
26 set -e
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
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
48 # Lines number are printed in error message.
49 # Use them to make sure errors are diagnosed against the right lines.
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
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
80 # None of these errors be diagnosed with -Wno-portability
81 $AUTOMAKE -Wno-portability
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