* doc/automake.texi (Future of aclocal): Make clearer that
[automake.git] / tests / yacc6.test
blob108bc20b63a3e53415d073ea2ab6ac61488c25a5
1 #! /bin/sh
2 # Copyright (C) 2001, 2002, 2003 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'
27 . ./defs || exit 1
29 set -e
31 cat >> configure.in << 'END'
32 AC_CONFIG_AUX_DIR([aux])
33 AC_PROG_CC
34 AC_PROG_YACC
35 AC_CONFIG_FILES([sub/Makefile])
36 AC_OUTPUT
37 END
39 cat > Makefile.am << 'END'
40 SUBDIRS = sub
42 test-time-unchanged:
43 test `ls -1t sub/main.$(OBJEXT) z | sed 1q` = z
44 test-time-changed:
45 test `ls -1t sub/main.$(OBJEXT) z | sed 1q` = sub/main.$(OBJEXT)
46 END
48 mkdir aux sub
50 cat > sub/Makefile.am << 'END'
51 bin_PROGRAMS = foo bar
52 AM_YFLAGS = -d
53 foo_SOURCES = foo.y main.c
54 foo_CPPFLAGS = -DFOO
55 bar_SOURCES = bar.y main.c
56 END
58 cat > sub/foo.y << 'END'
60 int yylex () {return 0;}
61 void yyerror (char *s) {}
63 %token TOKEN
65 foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
66 END
68 cp sub/foo.y sub/bar.y
70 cat >sub/main.c <<'EOF'
71 #ifdef FOO
72 # include "foo.h"
73 #else
74 # include "bar.h"
75 #endif
77 int
78 main()
80 return 0;
82 EOF
84 $ACLOCAL
85 $AUTOCONF
86 $AUTOMAKE -a
87 test -f aux/ylwrap
88 test ! -f ylwrap
89 test ! -f sub/ylwrap
90 $FGREP '(top_srcdir)/aux/ylwrap' sub/Makefile.in
91 ./configure
92 $MAKE
93 grep '#.*line.*foo.y' sub/foo.c
94 grep '#.*line.*bar.y' sub/bar.c
96 $sleep
97 : > z
98 $sleep
99 touch sub/bar.y
100 $MAKE
101 $MAKE test-time-unchanged
102 $sleep
103 $PERL -pi -e s/TOKEN/TEKON/g sub/bar.y
104 $MAKE
105 $MAKE test-time-changed