| 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 autoconf; 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
|
|---|