* configure.ac, NEWS: Bump version to 1.8b.
[automake.git] / tests / yacc6.test
blob41bcb0c296f1d2aa8d6ec4a8b5b060d4c6d87110
1 #! /bin/sh
2 # Copyright (C) 2001, 2002, 2003, 2004 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 # Test to make sure ylwrap put in right location.
22 # Report from Tim Van Holder.
23 # Also make sure depcomp does not needlessly update headers.
24 # Report from Paolo Bonzini.
26 required='gcc bison GNUmake'
27 . ./defs || exit 1
29 set -e
31 cat > configure.in << 'END'
32 AC_INIT([yacc6], [1.0])
33 AC_CONFIG_AUX_DIR([aux1])
34 AM_INIT_AUTOMAKE
35 AC_CONFIG_FILES([Makefile])
36 AC_PROG_CC
37 AC_PROG_YACC
38 AC_CONFIG_FILES([sub/Makefile])
39 AC_OUTPUT
40 END
42 cat > Makefile.am << 'END'
43 SUBDIRS = sub
45 test-time-unchanged:
46 test `ls -1t sub/main.$(OBJEXT) z | sed 1q` = z
47 test-time-changed:
48 test `ls -1t sub/main.$(OBJEXT) z | sed 1q` = sub/main.$(OBJEXT)
49 END
51 mkdir aux1 sub
53 cat > sub/Makefile.am << 'END'
54 bin_PROGRAMS = foo bar
55 AM_YFLAGS = -d
56 foo_SOURCES = foo.y main.c
57 foo_CPPFLAGS = -DFOO
58 bar_SOURCES = bar.y main.c
59 END
61 cat > sub/foo.y << 'END'
63 int yylex () {return 0;}
64 void yyerror (char *s) {}
66 %token TOKEN
68 foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
69 END
71 cp sub/foo.y sub/bar.y
73 cat >sub/main.c <<'EOF'
74 #ifdef FOO
75 # include "foo.h"
76 #else
77 # include "bar.h"
78 #endif
80 int
81 main()
83 return 0;
85 EOF
87 $ACLOCAL
88 $AUTOCONF
89 $AUTOMAKE -a
90 test -f aux1/ylwrap
91 test ! -f ylwrap
92 test ! -f sub/ylwrap
93 $FGREP '(top_srcdir)/aux1/ylwrap' sub/Makefile.in
94 ./configure
95 $MAKE
96 grep '#.*line.*foo.y' sub/foo.c
97 grep '#.*line.*bar.y' sub/bar.c
99 $sleep
100 : > z
101 $sleep
102 touch sub/bar.y
103 $MAKE
104 $MAKE test-time-unchanged
105 $sleep
106 $PERL -pi -e s/TOKEN/TEKON/g sub/bar.y
107 $MAKE
108 $MAKE test-time-changed