* COPYING, lib/COPYING: Update to GPLv3. All uses changed.
[platform/upstream/automake.git] / tests / yacc7.test
1 #! /bin/sh
2 # Copyright (C) 2001, 2002, 2003, 2004  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 3, 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., 51 Franklin Street, Fifth Floor,
19 # Boston, MA 02110-1301, USA.
20
21 # Test to make sure dependencies are generated correctly for .h files.
22 # Report from Richard Boulton.
23 #
24 # Also check that the sources of the generated parser are distributed.
25 # PR/47.
26
27 required=bison
28 . ./defs || exit 1
29
30 cat >> configure.in << 'END'
31 AC_PROG_CC
32 AC_PROG_YACC
33 AC_OUTPUT
34 END
35
36 cat > Makefile.am << 'END'
37 bin_PROGRAMS = foo
38 foo_SOURCES = foo.y
39 AM_YFLAGS = -d
40
41 check-dist: distdir
42         test -f $(distdir)/foo.y
43         test -f $(distdir)/foo.c
44         test -f $(distdir)/foo.h
45 END
46
47 # The %union will cause Bison to output `#line's in y.tab.h too.
48 cat > foo.y << 'END'
49 %union
50 {
51   int i;
52   char c;
53 }
54 %%
55 WORD: "up";
56 %%
57 END
58
59 set -e
60
61 $ACLOCAL
62 $AUTOMAKE -a
63 $AUTOCONF
64 ./configure
65
66 $MAKE foo.h
67
68 test -f foo.h
69
70 rm -f foo.h foo.c
71 $MAKE check-dist
72
73 # We should be able to recover if foo.h is deleted.
74
75 rm -f foo.h
76 $MAKE foo.h
77 test -f foo.h
78
79 # Make sure `#line ... y.tab.h' gets replaced.
80 $FGREP 'y.tab.h' foo.h && exit 1
81
82 # Make distclean must not erase foo.c nor foo.h (by GNU standards) ...
83 $MAKE foo.c
84 test -f foo.h
85 test -f foo.c
86 $MAKE distclean
87 test -f foo.h
88 test -f foo.c
89 # ... but maintainer-clean should.
90 ./configure
91 $MAKE maintainer-clean
92 test ! -f foo.h
93 test ! -f foo.c
94 :