e0d666403e34ba6e9c44df585cfd37f92a2625f6
[platform/upstream/automake.git] / tests / yacc4.test
1 #! /bin/sh
2 # Copyright (C) 2001, 2002  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 # Some simple tests of ylwrap functionality.
22
23 required='bison gcc'
24 . ./defs || exit 1
25
26 cat > configure.in << 'END'
27 AC_INIT
28 AC_CONFIG_AUX_DIR([.])
29 AM_INIT_AUTOMAKE(foo, 0.1)
30 PACKAGE=foo
31 VERSION=0.1
32 AC_PROG_CC
33 AC_PROG_YACC
34 AC_OUTPUT(Makefile)
35 END
36
37 cat > Makefile.am << 'END'
38 bin_PROGRAMS = foo bar
39 foo_SOURCES = parse.y foo.c
40 bar_SOURCES = bar.y foo.c
41 END
42
43 # First parser.
44 cat > parse.y << 'END'
45 %{
46 int yylex () {return 0;}
47 void yyerror (char *s) {}
48 %}
49 %%
50 foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
51 END
52
53 # Second parser.
54 cat > bar.y << 'END'
55 %{
56 int yylex () {return 0;}
57 void yyerror (char *s) {}
58 %}
59 %%
60 fubar : 'f' 'o' 'o' 'b' 'a' 'r' {};
61 END
62
63 cat > foo.c << 'END'
64 int main () { return 0; }
65 END
66
67 set -e
68
69 $ACLOCAL
70 $AUTOCONF
71 $AUTOMAKE -a
72
73 test -f ylwrap
74
75 mkdir sub
76 cd sub
77
78 ../configure
79 $MAKE
80
81 grep '^#.*/sub/\.\./' bar.c && exit 1
82 grep '^#.*/sub/\.\./' parse.c && exit 1
83
84 # Make distclean must not erase bar.c nor parse.c (by GNU standards) ...
85 $MAKE distclean
86 test -f bar.c
87 test -f parse.c
88 # ... but maintainer-clean should.
89 ../configure
90 $MAKE maintainer-clean
91 test ! -f bar.c
92 test ! -f parse.c
93 :
94
95 exit 0