* lib/Automake/Variable.pm (define): Rework the way we check
[automake.git] / tests / yacc4.test
blob2150917da1411ec3b0bd5567f81354d7ed457b90
1 #! /bin/sh
2 # Copyright (C) 2001, 2002 Free Software Foundation, Inc.
4 # This file is part of GNU Automake.
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.
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.
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., 59 Temple Place - Suite 330,
19 # Boston, MA 02111-1307, USA.
21 # Some simple tests of ylwrap functionality.
23 required='bison gcc'
24 . ./defs || exit 1
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
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
43 # First parser.
44 cat > parse.y << 'END'
46 int yylex () {return 0;}
47 void yyerror (char *s) {}
50 foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
51 END
53 # Second parser.
54 cat > bar.y << 'END'
56 int yylex () {return 0;}
57 void yyerror (char *s) {}
60 fubar : 'f' 'o' 'o' 'b' 'a' 'r' {};
61 END
63 cat > foo.c << 'END'
64 int main () { return 0; }
65 END
67 set -e
69 $ACLOCAL
70 $AUTOCONF
71 $AUTOMAKE -a
73 test -f ylwrap
75 mkdir sub
76 cd sub
78 ../configure
79 $MAKE
81 grep '^#.*/sub/\.\./' bar.c && exit 1
82 grep '^#.*/sub/\.\./' parse.c && exit 1
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
95 exit 0