doc: typos in test file.
[automake.git] / t / yacc-dist-nobuild-subdir.sh
blobc8fe4aad428b9206bbfc7fb49e46d3f64bc789d3
1 #! /bin/sh
2 # Copyright (C) 2011-2024 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 <https://www.gnu.org/licenses/>.
17 # Check that VPATH builds and "make distcheck" works with packages
18 # using yacc and the automake 'subdir-objects' option.
19 # Exposes automake bug#8485.
21 required='cc yacc'
22 . test-init.sh
24 # This test is bounded to fail for any implementation that
25 # triggers automake bug#7884.
26 useless_vpath_rebuild && skip_ "would trip on automake bug#7884"
28 cat >> configure.ac << 'END'
29 AC_PROG_CC
30 AC_PROG_YACC
31 AC_OUTPUT
32 END
34 mkdir sub
36 cat > sub/parse.y << 'END'
38 int yylex () { return 0; }
39 void yyerror (const char *s) {}
42 x : 'x' {};
44 int main (void)
46 return yyparse ();
48 END
50 cat > Makefile.am <<'END'
51 AUTOMAKE_OPTIONS = subdir-objects
52 AM_LFLAGS = --never-interactive
54 noinst_PROGRAMS = foo bar
55 foo_SOURCES = sub/parse.y
56 bar_SOURCES = $(foo_SOURCES)
57 AM_YFLAGS = -d
58 bar_YFLAGS =
59 END
61 $ACLOCAL
62 $AUTOCONF
63 $AUTOMAKE -a
65 ./configure
66 $MAKE distdir
68 # Yacc-derived C source and header files must be built and distributed.
70 test -f sub/parse.c
71 test -f sub/parse.h
72 test -f sub/bar-parse.c
73 test ! -e sub/bar-parse.h
75 test -f $distdir/sub/parse.c
76 test -f $distdir/sub/parse.h
77 test -f $distdir/sub/bar-parse.c
78 test ! -e $distdir/sub/bar-parse.h
80 # But they shouldn't be rebuilt in VPATH builds.
82 mkdir $distdir/build
83 chmod -R a-w $distdir
84 cd $distdir/build
85 chmod u+w .
86 # Try to enable dependency tracking even with slow dependency
87 # extractors, to improve coverage.
88 ../configure --enable-dependency-tracking YACC=false
89 $MAKE
90 ls -l sub/*.[ch] && exit 1
92 env DISTCHECK_CONFIGURE_FLAGS='YACC=false' $MAKE distcheck