test harness: improve catching of usage errors in script 'test-driver'
[platform/upstream/automake.git] / t / subobjname.sh
1 #! /bin/sh
2 # Copyright (C) 2002-2013 Free Software Foundation, Inc.
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2, or (at your option)
7 # any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 # Make sure we reuse variables whenever possible, to limit
18 # combinational explosion.  (This test is named after the &subobjname
19 # sub in Automake).
20
21 . test-init.sh
22
23 cat >> configure.ac << 'END'
24 AC_PROG_CC
25 AM_CONDITIONAL([FOO1], [some test])
26 AM_CONDITIONAL([FOO2], [some test])
27 AM_CONDITIONAL([FOO3], [some test])
28 AC_OUTPUT
29 END
30
31 cat > Makefile.am << 'END'
32 noinst_PROGRAMS = c d
33
34 if FOO1
35 A1=a1.c
36 endif
37
38 if FOO2
39 A2=a2.c
40 endif
41
42 if FOO3
43 A3=a3.c
44 endif
45
46 B=$(A1) $(A2) $(A3)
47
48 c_SOURCES=$(B)
49 d_SOURCES=$(B)
50 END
51
52 $ACLOCAL
53 $AUTOMAKE -a
54
55 # Sanity check: make sure am_c_OBJECTS and am_d_OBJECTS are used
56 # in the Makefile.  (This is an internal detail, so better make
57 # sure we update this test if the naming changes in the future.)
58 grep '^am_c_OBJECTS = ' Makefile.in
59 grep '^am_d_OBJECTS = ' Makefile.in
60
61 # Now the actual test.  Are both values equal?
62 cobj=$(sed -n '/^am_c_OBJECTS = / {
63                  s/.* = \(.*\)$/\1/
64                  p
65                }' Makefile.in)
66 dobj=$(sed -n '/^am_d_OBJECTS = / {
67                  s/^.* = \(.*\)$/\1/
68                  p
69               }' Makefile.in)
70 test "$cobj" = "$dobj"
71
72 :