02f868ea70a0c063febd5287ff6d209c83f7c378
[platform/upstream/automake.git] / tests / yacc5.test
1 #! /bin/sh
2 # Copyright (C) 2001, 2002, 2003  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 of yacc functionality, derived from GNU binutils
22 # by Tim Van Holder.
23
24 . ./defs || exit 1
25
26 set -e
27
28 cat > configure.in << 'END'
29 AC_INIT
30 AM_INIT_AUTOMAKE(nonesuch, nonesuch)
31 AC_PROG_CC
32 AM_PROG_CC_C_O
33 AC_PROG_YACC
34 AC_OUTPUT(Makefile)
35 END
36
37 cat > Makefile.am << 'END'
38 bin_PROGRAMS = maude
39 maude_SOURCES = sub/maude.y
40 END
41
42 mkdir sub
43
44 : > sub/maude.y
45
46 $ACLOCAL
47 $AUTOMAKE -a
48
49 grep '^maude\.c:' Makefile.in
50
51
52 ## Try again with subdir-objects.
53
54 cat > Makefile.am << 'END'
55 AUTOMAKE_OPTIONS = subdir-objects
56 bin_PROGRAMS = maude
57 maude_SOURCES = sub/maude.y
58 END
59
60 $ACLOCAL
61 $AUTOMAKE -a
62
63 # No rule needed, the default .y.c: inference rule is enough.
64 grep '^sub/maude\.c:' Makefile.in && exit 1
65
66
67 ## Try again with per-exe flags.
68
69 cat > Makefile.am << 'END'
70 bin_PROGRAMS = maude
71 maude_SOURCES = sub/maude.y
72 ## A particularly trickey case.
73 maude_YFLAGS = -d
74 END
75
76 $ACLOCAL || exit 1
77 $AUTOMAKE -a || exit 1
78
79 # Rule should use maude_YFLAGS.
80 grep 'AM_YFLAGS.*maude' Makefile.in && exit 1
81
82 # Silly regression.
83 grep 'maudec' Makefile.in && exit 1
84
85 # Make sure the .o file is required.
86 grep '^am_maude_OBJECTS.*maude' Makefile.in