Merge branch 'minor'
[automake.git] / t / subobjname.sh
blobf3aa28d5567b035e6b11d67f4a81d666acb46f2a
1 #! /bin/sh
2 # Copyright (C) 2002-2017 Free Software Foundation, Inc.
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.
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.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
17 # Make sure we reuse variables whenever possible, to limit
18 # combinational explosion. (This test is named after the &subobjname
19 # sub in Automake).
21 . test-init.sh
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
31 cat > Makefile.am << 'END'
32 noinst_PROGRAMS = c d
34 if FOO1
35 A1=a1.c
36 endif
38 if FOO2
39 A2=a2.c
40 endif
42 if FOO3
43 A3=a3.c
44 endif
46 B=$(A1) $(A2) $(A3)
48 c_SOURCES=$(B)
49 d_SOURCES=$(B)
50 END
52 $ACLOCAL
53 $AUTOMAKE -a
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
61 # Now the actual test. Are both values equal?
62 cobj=$(sed -n '/^am_c_OBJECTS = / {
63 s/.* = \(.*\)$/\1/
65 }' Makefile.in)
66 dobj=$(sed -n '/^am_d_OBJECTS = / {
67 s/^.* = \(.*\)$/\1/
69 }' Makefile.in)
70 test "$cobj" = "$dobj"