| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | #! /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 automake lex support ensures that lex-generated C# files use correct "#line" directives.  Try also with the# 'subdir-object' option enabled.# See also sister test 'yacc-line.sh'.required='cc lex'. test-init.shcat >> configure.ac << 'END'AC_CONFIG_FILES([sub/Makefile])AC_PROG_CCAC_PROG_LEXAC_OUTPUTENDmkdir dir sub sub/dircat > Makefile.am << 'END'SUBDIRS = subbin_PROGRAMS = foo barLDADD = $(LEXLIB)bar_LFLAGS = -vfoo_SOURCES = zardoz.lbar_SOURCES = dir/quux.l## Avoid spurious failures with Solaris make.zardoz.@OBJEXT@: zardoz.cbar-quux.@OBJEXT@: bar-quux.cENDcat > sub/Makefile.am << 'END'AUTOMAKE_OPTIONS = subdir-objectsnoinst_PROGRAMS = foo bar## We already used $(LEXLIB) above, so try @LEXLIB@ now.LDADD = @LEXLIB@foo_LFLAGS = -vfoo_SOURCES = zardoz.lbar_SOURCES = dir/quux.l## Avoid spurious failures with Solaris make.foo-zardoz.@OBJEXT@: foo-zardoz.cdir/quux.@OBJEXT@: dir/quux.cENDcat > zardoz.l << 'END'%{#define YY_NO_UNISTD_H 1%}%%"END"  return EOF;.%%int main (){  while (yylex () != EOF)    ;  return 0;}/* Avoid possible link errors. */int yywrap (void){  return 1;}ENDcp zardoz.l dir/quux.lcp zardoz.l sub/zardoz.lcp zardoz.l sub/dir/quux.lc_outputs='zardoz.c bar-quux.c sub/foo-zardoz.c sub/dir/quux.c'$ACLOCAL$AUTOCONF# FIXME: stop disabling the warnings in the 'unsupported' category# FIXME: once the 'subdir-objects' option has been mandatory.$AUTOMAKE -a -Wno-unsupportedfor vpath in : false; do  if $vpath; then    srcdir=..    mkdir build    cd build  else    srcdir=.  fi  $srcdir/configure  $MAKE  # For debugging,  ls -l . sub sub/dir  $EGREP 'line|\.l' $c_outputs  grep '#.*line.*build.*\.l' $c_outputs && exit 1  # Adjusted "#line" should not contain reference to the absolute  # srcdir.  $EGREP '#.*line *"?/.*\.l' $c_outputs && exit 1  # Adjusted "#line" should not contain reference to the default  # output file names, e.g., 'lex.yy.c'.  grep '#.*line.*lex\.yy' $c_outputs && exit 1  # Look out for a silly regression.  grep "#.*\.l.*\.l" $c_outputs && exit 1  if $vpath; then    grep '#.*line.*"\.\./zardoz\.l"' zardoz.c    grep '#.*line.*"\.\./dir/quux\.l"' bar-quux.c    grep '#.*line.*"\.\./\.\./sub/zardoz\.l"' sub/foo-zardoz.c    grep '#.*line.*"\.\./\.\./sub/dir/quux\.l"' sub/dir/quux.c  else    grep '#.*line.*"zardoz\.l"' zardoz.c    grep '#.*line.*"dir/quux\.l"' bar-quux.c    grep '#.*line.*"zardoz\.l"' sub/foo-zardoz.c    grep '#.*line.*"dir/quux\.l"' sub/dir/quux.c  fi  cd $srcdirdone:
 |