Testsuite: do not use `chmod -R' when cleaning up.
[automake.git] / tests / yacc5.test
blob8b00ed806de493a5ee16f76b35d3fe9fc933192f
1 #! /bin/sh
2 # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2, or (at your option)
7 # any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
17 # Test of yacc functionality, derived from GNU binutils
18 # by Tim Van Holder.
20 . ./defs || Exit 1
22 set -e
24 cat > configure.in << 'END'
25 AC_INIT
26 AM_INIT_AUTOMAKE(nonesuch, nonesuch)
27 AC_PROG_CC
28 AM_PROG_CC_C_O
29 AC_PROG_YACC
30 AC_OUTPUT(Makefile)
31 END
33 cat > Makefile.am << 'END'
34 bin_PROGRAMS = maude
35 maude_SOURCES = sub/maude.y
36 END
38 mkdir sub
40 : > sub/maude.y
42 $ACLOCAL
43 $AUTOMAKE -a
45 grep '^maude\.c:' Makefile.in
48 ## Try again with subdir-objects.
50 cat > Makefile.am << 'END'
51 AUTOMAKE_OPTIONS = subdir-objects
52 bin_PROGRAMS = maude
53 maude_SOURCES = sub/maude.y
54 END
56 $ACLOCAL
57 $AUTOMAKE -a
59 # No rule needed, the default .y.c: inference rule is enough.
60 grep '^sub/maude\.c:' Makefile.in && Exit 1
63 ## Try again with per-exe flags.
65 cat > Makefile.am << 'END'
66 bin_PROGRAMS = maude
67 maude_SOURCES = sub/maude.y
68 ## A particularly trickey case.
69 maude_YFLAGS = -d
70 END
72 $ACLOCAL || Exit 1
73 $AUTOMAKE -a || Exit 1
75 # Rule should use maude_YFLAGS.
76 grep 'AM_YFLAGS.*maude' Makefile.in && Exit 1
78 # Silly regression.
79 grep 'maudec' Makefile.in && Exit 1
81 # Make sure the .o file is required.
82 grep '^am_maude_OBJECTS.*maude' Makefile.in