Merge branch 'minor'
[automake.git] / t / am-default-source-ext.sh
blob082c7a1fb8b322ccfacee65b79574da468d6cf11
1 #! /bin/sh
2 # Copyright (C) 2008-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 # AM_DEFAULT_SOURCE_EXT
19 required='cc c++'
20 . test-init.sh
22 cat >> configure.ac << 'END'
23 AC_PROG_CC
24 AC_PROG_CXX
25 AC_CONFIG_FILES([sub/Makefile sub2/Makefile])
26 AM_CONDITIONAL([COND], [:])
27 AC_OUTPUT
28 END
30 mkdir sub sub2
32 cat > Makefile.am << 'END'
33 SUBDIRS = sub sub2
34 bin_PROGRAMS = foo
35 END
37 cat > sub/Makefile.am << 'END'
38 bin_PROGRAMS = bar baz
39 AM_DEFAULT_SOURCE_EXT = .cpp
40 END
42 cat > sub2/Makefile.am << 'END'
43 bin_PROGRAMS = bla
44 if COND
45 AM_DEFAULT_SOURCE_EXT = .foo .quux
46 endif
47 SUFFIXES = .foo .c
48 .foo.c:
49 cat $< >$@
50 BUILT_SOURCES = bla.c
51 CLEANFILES = bla.c
52 END
54 cat > foo.c << 'END'
55 int main () { return 0; }
56 END
58 cp foo.c sub/bar.cpp
59 cp foo.c sub/baz.cpp
60 cp foo.c sub2/bla.foo
62 $ACLOCAL
63 $AUTOCONF
65 # Conditional AM_DEFAULT_SOURCE_EXT does not work yet :-(
66 # (this limitation could be lifted).
67 AUTOMAKE_fails --add-missing
68 grep 'defined conditionally' stderr
70 sed '/^if/d; /^endif/d' sub2/Makefile.am > t
71 mv -f t sub2/Makefile.am
73 # AM_DEFAULT_SOURCE_EXT can only assume one value
74 # (lifting this limitation is not such a good idea).
75 AUTOMAKE_fails --add-missing
76 grep 'at most one value' stderr
78 sed 's/ \.quux//' sub2/Makefile.am > t
79 mv -f t sub2/Makefile.am
81 $AUTOMAKE --add-missing
83 ./configure
84 $MAKE
85 $MAKE distcheck