1#! /bin/sh 2# Copyright (C) 2001-2021 Free Software Foundation, Inc. 3# 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. 8# 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. 13# 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/>. 16 17# Make sure depcomp does not needlessly update headers and objects 18# for yacc rules. This test still fails with FreeBSD make (but passes 19# with NetBSD make). 20 21required='cc yacc' 22. test-init.sh 23 24cat >> configure.ac << 'END' 25AC_PROG_CC 26AC_PROG_YACC 27AC_OUTPUT 28END 29 30cat > Makefile.am << 'END' 31bin_PROGRAMS = foo 32AM_YFLAGS = -d 33foo_SOURCES = foo.y main.c 34BUILT_SOURCES = foo.h 35.PHONY: test-time-unchanged test-time-changed 36test-time-unchanged: 37 is_newest foo.y foo.h main.$(OBJEXT) 38test-time-changed: 39 is_newest main.$(OBJEXT) foo.y foo.h 40END 41 42cat > foo.y << 'END' 43%{ 44int yylex () { return 0; } 45void yyerror (const char *s) {} 46%} 47%token TOKEN 48%% 49foobar : 'f' 'o' 'o' 'b' 'a' 'r' {}; 50END 51 52 53cat > main.c << 'END' 54#include "foo.h" 55int main(void) 56{ 57 return yyparse (); 58} 59END 60 61$ACLOCAL 62$AUTOCONF 63$AUTOMAKE -a 64 65# Try to enable dependency tracking if possible, even if that means 66# using slow dependency extractors. 67./configure --enable-dependency-tracking 68$MAKE 69ls -l # For debugging. 70 71$sleep 72touch foo.y 73$MAKE 74$MAKE test-time-unchanged 75$sleep 76sed 's/TOKEN/TEKON/g' foo.y > t 77mv -f t foo.y 78$MAKE 79$MAKE test-time-changed 80 81: 82