1#! /bin/sh 2# Copyright (C) 2011-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# Test to make sure automatic dependency tracking work with Lex/C. 18# Test suggested by PR automake/6. 19 20required='cc lex' 21. test-init.sh 22 23cat >> configure.ac << 'END' 24AC_PROG_CC 25AM_PROG_LEX 26AC_OUTPUT 27END 28 29cat > Makefile.am << 'END' 30bin_PROGRAMS = zoo 31zoo_SOURCES = joe.l 32LDADD = $(LEXLIB) 33 34.PHONY: test-deps-exist 35test-deps-exist: 36 ls -l $(DEPDIR) ;: For debugging. 37 test -f $(DEPDIR)/joe.Po 38 39.PHONY: test-obj-updated 40test-obj-updated: joe.$(OBJEXT) 41 is_newest joe.$(OBJEXT) my-hdr.h 42END 43 44cat > joe.l << 'END' 45%{ 46#define YY_NO_UNISTD_H 1 47%} 48%% 49"foo" return EOF; 50. 51%% 52#include "my-hdr.h" 53int main (void) 54{ 55 printf("%s\n", MESSAGE); 56 return 0; 57} 58/* Avoid possible link errors. */ 59int yywrap (void) 60{ 61 return 1; 62} 63END 64 65cat > my-hdr.h <<'END' 66#include <stdio.h> 67#define MESSAGE "Hello, World!" 68END 69 70$ACLOCAL 71$AUTOMAKE -a 72 73$FGREP joe.Po Makefile.in 74 75$AUTOCONF 76# Try to enable dependency tracking if possible, even if that means 77# using slow dependency extractors. 78./configure --enable-dependency-tracking 79 80$MAKE test-deps-exist 81$MAKE 82cross_compiling || test "$(./zoo)" = 'Hello, World!' || exit 1 83 84$sleep 85cat >> my-hdr.h << 'END' 86#undef MESSAGE 87#define MESSAGE "Howdy, Earth!" 88END 89$MAKE test-obj-updated 90$MAKE 91cross_compiling || test "$(./zoo)" = 'Howdy, Earth!' || exit 1 92 93: 94