| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | #! /bin/sh# Copyright (C) 2011-2017 Free Software Foundation, Inc.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program.  If not, see <http://www.gnu.org/licenses/>.# Check that .c and .h files derived from non-distributed .y sources# are cleaned by "make clean", while .c and .h files derived from# distributed .y sources are cleaned by "make maintainer-clean".# See also sister test 'yacc-cxx-clean.sh'.required='cc yacc'. test-init.shcat >> configure.ac << 'END'AC_PROG_CCAC_PROG_YACCAC_CONFIG_FILES([sub1/Makefile sub2/Makefile])AC_OUTPUTENDcat > Makefile.am << 'END'# Use two subdirectories, one to test with '-d' in YFLAGS, the# other one to test with empty YFLAGS.SUBDIRS = sub1 sub2ENDmkdir sub1 sub2cat > sub1/Makefile.am << 'END'bin_PROGRAMS = foo bar baz quxfoo_SOURCES = main.c parse.ybar_SOURCES = main.c parse.ybar_YFLAGS = $(AM_YFLAGS)baz_SOURCES = main.cnodist_baz_SOURCES = baz.yqux_SOURCES = main.cnodist_qux_SOURCES = baz.yqux_YFLAGS = $(AM_YFLAGS)baz.y:	cp $(srcdir)/parse.y $@CLEANFILES = baz.yENDcat > sub2/Makefile.am << 'END'include $(top_srcdir)/sub1/Makefile.amAM_YFLAGS = -dENDcat > sub1/parse.y << 'END'%{int yylex () { return (getchar ()); }void yyerror (char *s) {}%}%%x : 'x' { };ENDcp sub1/parse.y sub2/parse.ycat > sub1/main.c << 'END'int main (){  return yyparse ();}ENDcp sub1/main.c sub2/main.c$ACLOCAL$AUTOCONF$AUTOMAKE -a./configurecp config.status config.sav$MAKEls -l . sub1 sub2# Sanity checks.test -f sub1/parse.ytest -f sub1/parse.ctest -f sub1/bar-parse.ctest -f sub1/baz.ytest -f sub1/baz.ctest -f sub1/qux-baz.ctest -f sub2/parse.ytest -f sub2/parse.ctest -f sub2/parse.htest -f sub2/bar-parse.ctest -f sub2/bar-parse.htest -f sub2/baz.ytest -f sub2/baz.ctest -f sub2/baz.htest -f sub2/qux-baz.ctest -f sub2/qux-baz.hfor target in clean distclean; do  $MAKE $target  ls -l . sub1 sub2  test -f sub1/parse.y  test -f sub1/parse.c  test -f sub1/bar-parse.c  test ! -e sub1/baz.y  test ! -e sub1/baz.c  test ! -e sub1/qux-baz.c  test -f sub2/parse.y  test -f sub2/parse.c  test -f sub2/parse.h  test -f sub2/bar-parse.c  test -f sub2/bar-parse.h  test ! -e sub2/baz.y  test ! -e sub2/baz.c  test ! -e sub2/baz.h  test ! -e sub2/qux-baz.c  test ! -e sub2/qux-baz.hdonecp config.sav config.status./config.status # Re-create 'Makefile'.$MAKE maintainer-cleanls -l . sub1 sub2test -f sub1/parse.ytest ! -e sub1/parse.ctest ! -e sub1/bar-parse.ctest -f sub2/parse.ytest ! -e sub2/parse.ctest ! -e sub2/parse.htest ! -e sub2/bar-parse.ctest ! -e sub2/bar-parse.h:
 |