355a28d50c6ab5ffddcd24d2203891c876b3922f
[platform/upstream/automake.git] / tests / suffix11.test
1 #! /bin/sh
2 # Copyright (C) 2002, 2003  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., 51 Franklin Street, Fifth Floor,
19 # Boston, MA 02110-1301, USA.
20
21 # Tests that Automake understands multiple suffix rules on the same line.
22 # PR/371 and PR/372: Reported by Duncan Gibson.
23 # We also check for suffixes containing `-'.
24
25 . ./defs || exit 1
26
27 set -e
28
29 cat >>configure.in <<EOF
30 AC_PROG_CC
31 AC_OUTPUT
32 EOF
33
34 cat >Makefile.am << 'END'
35 bin_PROGRAMS = foo bar baz
36 foo_SOURCES = foo.x_
37 bar_SOURCES = bar.y-z
38 baz_SOURCES = baz1.x_ baz2.y-z
39 .y-z.c .x_.c:
40         cp $< $@
41   .z_.c   .w_.x_ :
42         cp $< $@
43
44
45 print:
46         @echo BEGIN: $(foo_OBJECTS) :END
47         @echo BEGIN: $(bar_OBJECTS) :END
48         @echo BEGIN: $(baz_OBJECTS) :END
49 END
50
51 $ACLOCAL
52 $AUTOCONF
53 # What we do is not portable.  Automake should warn.
54 AUTOMAKE_fails -a
55 grep 'Inference rules can have only one target before the colon' stderr
56 # But this should work anyway.
57 $AUTOMAKE -a -Wno-portability
58 ./configure
59 env OBJEXT=foo $MAKE -e print >stdout
60 cat stdout
61 grep 'BEGIN: foo.foo :END' stdout
62 grep 'BEGIN: bar.foo :END' stdout
63 grep 'BEGIN: baz1.foo baz2.foo :END' stdout