Mimic Paul Eggert's changes to Autoconf.
[automake.git] / tests / yacc5.test
blob7ce843970fd9a350f7a6895ab0a1860092207b6f
1 #! /bin/sh
2 # Copyright (C) 2001, 2002 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 of yacc functionality, derived from GNU binutils
22 # by Tim Van Holder.
24 . ./defs || exit 1
26 cat > configure.in << 'END'
27 AC_INIT
28 AM_INIT_AUTOMAKE(nonesuch, nonesuch)
29 AC_PROG_CC
30 AM_PROG_CC_C_O
31 AC_PROG_YACC
32 AC_OUTPUT(Makefile)
33 END
35 cat > Makefile.am << 'END'
36 bin_PROGRAMS = maude
37 maude_SOURCES = sub/maude.y
38 END
40 mkdir sub
42 : > sub/maude.y
44 $ACLOCAL || exit 1
45 $AUTOMAKE -a || exit 1
47 grep '^maude\.c:' Makefile.in || exit 1
50 ## Try again with subdir-objects.
52 cat > Makefile.am << 'END'
53 AUTOMAKE_OPTIONS = subdir-objects
54 bin_PROGRAMS = maude
55 maude_SOURCES = sub/maude.y
56 END
58 $ACLOCAL || exit 1
59 $AUTOMAKE -a || exit 1
61 grep '^sub/maude\.c:' Makefile.in || exit 1
64 ## Try again with per-exe flags.
66 cat > Makefile.am << 'END'
67 bin_PROGRAMS = maude
68 maude_SOURCES = sub/maude.y
69 ## A particularly trickey case.
70 maude_YFLAGS = -d
71 END
73 $ACLOCAL || exit 1
74 $AUTOMAKE -a || exit 1
76 # Rule should use maude_YFLAGS.
77 grep 'AM_YFLAGS.*maude' Makefile.in && exit 1
79 # Silly regression.
80 grep 'maudec' Makefile.in && exit 1
82 # Make sure the .o file is required.
83 grep '^am_maude_OBJECTS.*maude' Makefile.in || exit 1
85 exit 0