source: trunk/essentials/sys-devel/automake-1.9/tests/yacc7.test

Last change on this file was 3086, checked in by bird, 18 years ago

automake 1.9.6

File size: 1.9 KB
Line 
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 2, 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
27required=bison
28. ./defs || exit 1
29
30cat >> configure.in << 'END'
31AC_PROG_CC
32AC_PROG_YACC
33AC_OUTPUT
34END
35
36cat > Makefile.am << 'END'
37bin_PROGRAMS = foo
38foo_SOURCES = foo.y
39AM_YFLAGS = -d
40
41check-dist: distdir
42 test -f $(distdir)/foo.y
43 test -f $(distdir)/foo.c
44 test -f $(distdir)/foo.h
45END
46
47# The %union will cause Bison to output `#line's in y.tab.h too.
48cat > foo.y << 'END'
49%union
50{
51 int i;
52 char c;
53}
54%%
55WORD: "up";
56%%
57END
58
59set -e
60
61$ACLOCAL
62$AUTOMAKE -a
63$AUTOCONF
64./configure
65
66$MAKE foo.h
67
68test -f foo.h
69
70rm -f foo.h foo.c
71$MAKE check-dist
72
73# We should be able to recover if foo.h is deleted.
74
75rm -f foo.h
76$MAKE foo.h
77test -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
84test -f foo.h
85test -f foo.c
86$MAKE distclean
87test -f foo.h
88test -f foo.c
89# ... but maintainer-clean should.
90./configure
91$MAKE maintainer-clean
92test ! -f foo.h
93test ! -f foo.c
94:
Note: See TracBrowser for help on using the repository browser.