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 | # Regression test for a bug reported by Ladislav Strojil.
|
---|
22 | # Using different extensions for the same language should not
|
---|
23 | # output the build rules several times.
|
---|
24 |
|
---|
25 | . ./defs
|
---|
26 |
|
---|
27 | set -e
|
---|
28 |
|
---|
29 | cat >>configure.in <<EOF
|
---|
30 | AC_PROG_CXX
|
---|
31 | EOF
|
---|
32 |
|
---|
33 | cat >Makefile.am <<EOF
|
---|
34 | bin_PROGRAMS = p q r
|
---|
35 | p_SOURCES = a.cc b.cpp c.cxx
|
---|
36 | q_SOURCES = sub/d.cc sub/e.cpp sub/f.cxx
|
---|
37 | r_SOURCES = g.cc h.cpp i.cxx
|
---|
38 | r_CXXFLAGS = -DFOO
|
---|
39 | EOF
|
---|
40 |
|
---|
41 | $ACLOCAL
|
---|
42 | $AUTOMAKE
|
---|
43 |
|
---|
44 | grep '\.o:' Makefile.in > rules
|
---|
45 | cat rules
|
---|
46 |
|
---|
47 | # Here is a example of bogus output. The rules are output several
|
---|
48 | # times.
|
---|
49 | #| .cc.o:
|
---|
50 | #| d.o: sub/d.cc
|
---|
51 | #| e.o: sub/e.cpp
|
---|
52 | #| f.o: sub/f.cxx
|
---|
53 | #| r-g.o: g.cc
|
---|
54 | #| r-h.o: h.cpp
|
---|
55 | #| r-i.o: i.cxx
|
---|
56 | #| .cpp.o:
|
---|
57 | #| d.o: sub/d.cc
|
---|
58 | #| e.o: sub/e.cpp
|
---|
59 | #| f.o: sub/f.cxx
|
---|
60 | #| r-g.o: g.cc
|
---|
61 | #| r-h.o: h.cpp
|
---|
62 | #| r-i.o: i.cxx
|
---|
63 | #| .cxx.o:
|
---|
64 | #| #d.o: sub/d.cc
|
---|
65 | #| #e.o: sub/e.cpp
|
---|
66 | #| #f.o: sub/f.cxx
|
---|
67 | #| #r-g.o: g.cc
|
---|
68 | #| #r-h.o: h.cpp
|
---|
69 | #| #r-i.o: i.cxx
|
---|
70 |
|
---|
71 | # Bail out if we find a duplicate.
|
---|
72 | $PERL -ne 'if (exists $a{$_}) { exit 1 } else { $a{$_} = 1 }' < rules
|
---|