source: trunk/essentials/sys-devel/automake-1.8/tests/yacc6.test

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

automake 1.8.5

File size: 2.1 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., 59 Temple Place - Suite 330,
19# Boston, MA 02111-1307, USA.
20
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.
25
26required='gcc bison GNUmake'
27. ./defs || exit 1
28
29set -e
30
31cat >> configure.in << 'END'
32AC_CONFIG_AUX_DIR([aux])
33AC_PROG_CC
34AC_PROG_YACC
35AC_CONFIG_FILES([sub/Makefile])
36AC_OUTPUT
37END
38
39cat > Makefile.am << 'END'
40SUBDIRS = sub
41
42test-time-unchanged:
43 test `ls -1t sub/main.$(OBJEXT) z | sed 1q` = z
44test-time-changed:
45 test `ls -1t sub/main.$(OBJEXT) z | sed 1q` = sub/main.$(OBJEXT)
46END
47
48mkdir aux sub
49
50cat > sub/Makefile.am << 'END'
51bin_PROGRAMS = foo bar
52AM_YFLAGS = -d
53foo_SOURCES = foo.y main.c
54foo_CPPFLAGS = -DFOO
55bar_SOURCES = bar.y main.c
56END
57
58cat > sub/foo.y << 'END'
59%{
60int yylex () {return 0;}
61void yyerror (char *s) {}
62%}
63%token TOKEN
64%%
65foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
66END
67
68cp sub/foo.y sub/bar.y
69
70cat >sub/main.c <<'EOF'
71#ifdef FOO
72# include "foo.h"
73#else
74# include "bar.h"
75#endif
76
77int
78main()
79{
80 return 0;
81}
82EOF
83
84$ACLOCAL
85$AUTOCONF
86$AUTOMAKE -a
87test -f aux/ylwrap
88test ! -f ylwrap
89test ! -f sub/ylwrap
90$FGREP '(top_srcdir)/aux/ylwrap' sub/Makefile.in
91./configure
92$MAKE
93grep '#.*line.*foo.y' sub/foo.c
94grep '#.*line.*bar.y' sub/bar.c
95
96$sleep
97: > z
98$sleep
99touch 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
Note: See TracBrowser for help on using the repository browser.