504dcf6d132c4c892d4a5e66baf5c7b9a2e3dd1b
[platform/upstream/automake.git] / tests / distcom2.test
1 #! /bin/sh
2 # Copyright (C) 2001, 2002, 2004, 2006, 2010, 2011 Free Software
3 # Foundation, Inc.
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2, or (at your option)
8 # any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18 # Test to make sure that depcomp and compile are added to DIST_COMMON.
19 # Report from Pavel Roskin.  Report of problems with `--no-force' from
20 # Scott James Remnant (Debian #206299)
21
22 . ./defs || Exit 1
23
24 cat >> configure.in << 'END'
25 AC_PROG_CC
26 AM_PROG_CC_C_O
27 AC_CONFIG_FILES([subdir/Makefile])
28 AC_OUTPUT
29 END
30
31 cat > Makefile.am << 'END'
32 SUBDIRS = subdir
33 END
34
35 mkdir subdir
36 : > subdir/foo.c
37
38 cat > subdir/Makefile.am << 'END'
39 noinst_PROGRAMS = foo
40 foo_SOURCES = foo.c
41 foo_CFLAGS = -DBAR
42 END
43
44 $ACLOCAL
45
46 for opt in '' --no-force; do
47
48   $AUTOMAKE $opt --add-missing
49
50   test -f compile
51   test -f depcomp
52
53   for dir in . subdir; do
54     # FIXME: the logic of this check and other similar ones in other
55     # FIXME: `distcom*.test' files should be factored out in a common
56     # FIXME: subroutine in `defs'...
57     sed -n -e "
58       /^DIST_COMMON =.*\\\\$/ {
59         :loop
60         p
61         n
62         t clear
63         :clear
64         s/\\\\$/\\\\/
65         t loop
66         s/$/ /
67         s/[$tab ][$tab ]*/ /g
68         p
69         n
70       }" $dir/Makefile.in > $dir/dc.txt
71   done
72
73   cat dc.txt # For debugging.
74   cat subdir/dc.txt # Likewise.
75
76   $FGREP ' $(top_srcdir)/depcomp ' subdir/dc.txt
77   # The `compile' script will be listed in the DIST_COMMON of the top-level
78   # Makefile because it's required in configure.in (by AM_PROG_CC_C_O).
79   $FGREP ' $(top_srcdir)/compile ' dc.txt || $FGREP ' compile ' dc.txt
80
81 done
82
83 :