This patch is from https://bugs.gnu.org/59994.
* t/cond35.sh: This patch is related to an effort to prepare
Automake for future GCC/Clang versions which set c99 as default
standard to be used.
In the current version of flex, not having unistd.h leads to
implicit function declarations that are not compatible with C99.
A future version of flex will (hopefully) make the "NO_UNISTD"
flag a no-op, and include unistd.h by default.
Also, while flex-dedicated tests had this macro set,
yacc tests did not, despite their use of flex.
For consistency, all the yacc/flex related tests now have the
"--never-interactive" option set in AM_LFLAGS, and do not try
define an isatty function.
* t/lex-clean-cxx.sh: Likewise.
* t/lex-clean.sh: Likewise.
* t/lex-depend-cxx.sh: Likewise.
* t/lex-depend.sh: Likewise.
* t/lex-header.sh: Likewise.
* t/lex-lib-external.sh: Likewise.
* t/lex-lib.sh: Likewise.
* t/lex-libobj.sh: Likewise.
* t/lex-line.sh: Likewise.
* t/lex-multiple.sh: Likewise.
* t/lex-nodist.sh: Likewise.
* t/lex-noyywrap.sh: Likewise.
* t/lex-pr204.sh: Likewise.
* t/lex-subobj-nodep.sh: Likewise.
* t/lex3.sh: Likewise.
* t/lex5.sh: Likewise.
* t/lexvpath.sh: Likewise.
* t/silent-lex.sh: Likewise.
* t/silent-many-languages.sh: Likewise.
* t/silent-yacc-headers.sh: Likewise.
* t/silent-yacc.sh: Likewise.
* t/subpkg-yacc.sh: Likewise.
* t/suffix10.tap: Likewise.
* t/yacc-auxdir.sh: Likewise.
* t/yacc-basic.sh: Likewise.
* t/yacc-bison-skeleton-cxx.sh: Likewise.
* t/yacc-bison-skeleton.sh: Likewise.
* t/yacc-clean-cxx.sh: Likewise.
* t/yacc-clean.sh: Likewise.
* t/yacc-cxx-grepping.sh: Likewise.
* t/yacc-cxx.sh: Likewise.
* t/yacc-d-basic.sh: Likewise.
* t/yacc-d-cxx.sh: Likewise.
* t/yacc-d-vpath.sh: Likewise.
* t/yacc-deleted-headers.sh: Likewise.
* t/yacc-depend.sh: Likewise.
* t/yacc-depend2.sh: Likewise.
* t/yacc-dist-nobuild-subdir.sh: Likewise.
* t/yacc-dist-nobuild.sh: Likewise.
* t/yacc-dry.sh: Likewise.
* t/yacc-grepping.sh: Likewise.
* t/yacc-grepping2.sh: Likewise.
* t/yacc-headers-and-dist-pr47.sh: Likewise.
* t/yacc-line.sh: Likewise.
* t/yacc-misc.sh: Likewise.
* t/yacc-mix-c-cxx.sh: Likewise.
* t/yacc-nodist.sh: Likewise.
* t/yacc-pr204.sh: Likewise.
* t/yacc-subdir.sh: Likewise.
* t/yacc-vpath.sh: Likewise.
* t/yacc-weirdnames.sh: Likewise.
* t/yflags-cmdline-override.sh: Likewise.
* t/yflags-cxx.sh: Likewise.
* t/yflags-d-false-positives.sh: Likewise.
* t/yflags-force-conditional.sh: Likewise.
* t/yflags-force-override.sh: Likewise.
* t/yflags-var-expand.sh: Likewise.
* t/yflags.sh: Likewise.
cat > Makefile.am <<'EOF'
AM_YFLAGS = -d
+AM_LFLAGS = --never-interactive
BUILT_SOURCES = tparse.h
test $($FGREP -c 'tparse.h:' Makefile.in) -eq 1
cat > tscan.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
%%
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar baz qux
foo_SOURCES = mainfoo.cc parsefoo.lxx
extern "C"
#endif
YY_DECL;
-#define YY_NO_UNISTD_H 1
-int isatty (int fd) { return 0; }
%}
%%
"GOOD" return EOF;
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar baz qux
foo_SOURCES = main.c lexer.l
END
cat > lexer.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"GOOD" return EOF;
.
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
noinst_PROGRAMS = joe moe
joe_SOURCES = joe.ll
moe_SOURCES = moe.l++
extern "C"
#endif
YY_DECL;
-#define YY_NO_UNISTD_H 1
-int isatty (int fd) { return 0; }
%}
%%
"foo" return EOF;
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = zoo
zoo_SOURCES = joe.l
LDADD = $(LEXLIB)
END
cat > joe.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"foo" return EOF;
.
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = lexer.l main.c mylex.h
foo_LFLAGS = --header-file=mylex.h
cat > lexer.l << 'END'
%option noyywrap
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"GOOD" return EOF;
.
END
cat > main.c <<'END'
-#define YY_NO_UNISTD_H 1
#include "mylex.h"
int main (void)
{
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = lexer
lexer_SOURCES = foo.l
lexer_LDADD = $(LEXLIB)
END
cat > foo.l <<'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"GOOD" return EOF;
.
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = lexer
lexer_SOURCES = foo.l
lexer_LDADD = $(LEXLIB)
END
cat > foo.l <<'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
noinst_PROGRAMS = foo
foo_SOURCES = foo.l
foo_LDADD = $(LEXLIB) $(LIBOBJS)
END
cat > foo.l <<'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
mkdir dir sub sub/dir
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
SUBDIRS = sub
bin_PROGRAMS = foo bar
LDADD = $(LEXLIB)
END
cat > sub/Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
AUTOMAKE_OPTIONS = subdir-objects
noinst_PROGRAMS = foo bar
## We already used $(LEXLIB) above, so try @LEXLIB@ now.
END
cat > zardoz.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
AC_OUTPUT
END
-cat > Makefile.am << 'END'
+cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = zardoz
zardoz_SOURCES = main.c
END
cat > 0.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"VANILLA" { printf (":%s:\n", yytext); return 121; }
. { printf (":%s:\n", yytext); return 1; }
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
.PHONY: test-build test-dist
test-build: all
ls -l
lexer.l:
rm -f $@ $@-t
:; { : \
- && echo '%{' \
- && echo '#define YY_NO_UNISTD_H 1' \
- && echo '%}' \
&& echo '%%' \
&& echo '"GOOD" return EOF;' \
&& echo '.'; \
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = foo.l
cat > foo.l << 'END'
%option noyywrap
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"GOOD" return EOF;
.
# The LEXER2 intermediate variable is there to make sure Automake
# matches 'nodist_' against the right variable name...
cat > Makefile.am << 'EOF'
+AM_LFLAGS = --never-interactive
+
EXTRA_PROGRAMS = foo
LEXER2 = lexer2.l
nodist_foo_SOURCES = lexer.l $(LEXER2)
EOF
cat > lexer.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"GOOD" return EOF;
.
cat >Makefile.am <<\END
AUTOMAKE_OPTIONS = subdir-objects
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = p1 p2
p1_SOURCES = sub1/s1.l
p2_SOURCES = sub2/s2.l
mkdir sub1 sub2
cat >sub1/s1.l <<\END
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
noinst_PROGRAMS = foo
foo_SOURCES = foo.l
END
cat > foo.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"GOOD" return EOF;
.
cat > Makefile.am << 'END'
AUTOMAKE_OPTIONS = subdir-objects
LDADD = @LEXLIB@
+AM_LFLAGS = --never-interactive
bin_PROGRAMS = foo/foo
foo_foo_SOURCES = foo/foo.l
mkdir foo
cat > foo/foo.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = lexer.l foo.c
LDADD = $(LEXLIB)
# Original lexer, with a "foobar" comment
cat > lexer.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
# New lexer, with 'fubar' comment.
cat > ../lexer.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
# New lexer, with 'maude' comment.
cat > ../lexer.l << 'END'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
EOF
cat > Makefile.am <<'EOF'
+AM_LFLAGS = --never-interactive
+
# Need generic and non-generic rules.
bin_PROGRAMS = foo1 foo2
foo1_SOURCES = foo.l
cat > sub/Makefile.am <<'EOF'
AUTOMAKE_OPTIONS = subdir-objects
+AM_LFLAGS = --never-interactive
+
# Need generic and non-generic rules.
bin_PROGRAMS = bar1 bar2
bar1_SOURCES = bar.l
EOF
cat > foo.l <<'EOF'
-%{
-#define YY_NO_UNISTD_H 1
-%}
%%
"END" return EOF;
.
ba2_LFLAGS = -n
ba2_LDADD = $(LEXLIB)
AM_YFLAGS = -d
+AM_LFLAGS = --never-interactive
BUILT_SOURCES = baz6.h
EOF
cat > Makefile.am <<'EOF'
# Need generic and non-generic rules.
AM_YFLAGS = -d
+AM_LFLAGS = --never-interactive
bin_PROGRAMS = foo bar
foo_SOURCES = parse.y
bar_SOURCES = $(foo_SOURCES)
EOF
cat > Makefile.am <<'EOF'
+AM_LFLAGS = --never-interactive
+
# Need generic and non-generic rules.
bin_PROGRAMS = foo1 foo2
foo1_SOURCES = foo.y
cat > sub/Makefile.am <<'EOF'
AUTOMAKE_OPTIONS = subdir-objects
+AM_LFLAGS = --never-interactive
+
# Need generic and non-generic rules.
bin_PROGRAMS = bar1 bar2
bar1_SOURCES = bar.y
EOF
cat >lib/Makefile.am <<'EOF'
+AM_LFLAGS = --never-interactive
+
noinst_LIBRARIES = liblib.a
liblib_a_SOURCES = src/x.c foo.y
EXTRA_liblib_a_SOURCES = bar.y
EOF
cat >Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = foo.x_
.x_.y:
SUBDIRS = sub
bin_PROGRAMS = foo
AM_YFLAGS = -d
+AM_LFLAGS = --never-interactive
+
foo_SOURCES = foo.y
END
cat > sub/Makefile.am << 'END'
bin_PROGRAMS = bar
AM_YFLAGS = -d
+AM_LFLAGS = --never-interactive
+
bar_SOURCES = bar.y main.c
END
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar
foo_SOURCES = parse.y foo.c
bar_SOURCES = $(foo_SOURCES)
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = zardoz
zardoz_SOURCES = zardoz.yy foo.cc
bin_PROGRAMS = zardoz
zardoz_SOURCES = zardoz.y foo.c
AM_YFLAGS = -d --skeleton glr.c
+AM_LFLAGS = --never-interactive
+
BUILT_SOURCES = zardoz.h
END
mkdir sub1 sub2
cat > sub1/Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar baz qux
foo_SOURCES = mainfoo.cc parsefoo.yxx
mkdir sub1 sub2
cat > sub1/Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar baz qux
foo_SOURCES = main.c parse.y
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar baz qux
foo_SOURCES = foo.y++
bar_SOURCES = bar.ypp
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo1 foo2 foo3 foo4
foo1_SOURCES = parse1.yy foo.cc
foo2_SOURCES = parse2.y++ bar.c++
mkdir foo bar baz
cat > foo/Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = zardoz
zardoz_SOURCES = parse.y main.c
.PHONY: echo-distcom
# These makefiles will be extended later.
cat > Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
.PHONY: echo-distcom
echo-distcom:
@echo ' ' $(DIST_COMMON) ' '
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = parse.y foo.c
AM_YFLAGS = -d
END
cat > Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = p1 p2 p3 p4
# The order in which files are listed in the p*_SOURCES variables
# below is significant, since it causes make failures whenever
cat > Makefile.am << 'END'
bin_PROGRAMS = foo
AM_YFLAGS = -d
+AM_LFLAGS = --never-interactive
+
foo_SOURCES = foo.y main.c
BUILT_SOURCES = foo.h
END
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
AM_YFLAGS = -d
foo_SOURCES = foo.y main.c
cat > Makefile.am <<'END'
AUTOMAKE_OPTIONS = subdir-objects
+AM_LFLAGS = --never-interactive
+
noinst_PROGRAMS = foo bar
foo_SOURCES = sub/parse.y
bar_SOURCES = $(foo_SOURCES)
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foobar zardoz
foobar_SOURCES = parse.y main.c
zardoz_SOURCES = $(foobar_SOURCES)
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
AM_YFLAGS = -d
bin_PROGRAMS = foo
foo_SOURCES = foo.c parse.y
$ACLOCAL
cat > Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = zardoz
zardoz_SOURCES = zardoz.y
END
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = maude
maude_SOURCES = sub/maude.y
END
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = foo.y
AM_YFLAGS = -d
mkdir dir sub sub/dir
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
SUBDIRS = sub
bin_PROGRAMS = foo bar
AM_YFLAGS = -d
cat > sub/Makefile.am << 'END'
AUTOMAKE_OPTIONS = subdir-objects
+AM_LFLAGS = --never-interactive
+
noinst_PROGRAMS = foo bar
foo_YFLAGS = -d
foo_SOURCES = zardoz.y
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar
foo_SOURCES = parse.y foo.c
bar_SOURCES = bar.y foo.c
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = c1 c2 cxx1 cxx2 cxx3
AM_YFLAGS = -d
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
SUBDIRS = sub1 sub2
.PHONY: test-build test-dist
test-build: all
# sure Automake match 'nodist_' against the right
# variable name...
cat > Makefile.am << 'EOF'
+AM_LFLAGS = --never-interactive
+
AM_YFLAGS = -d
EXTRA_PROGRAMS = foo
PARSE2 = parse2.y
cat > Makefile.am << 'END'
AUTOMAKE_OPTIONS = subdir-objects
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo/foo
foo_foo_SOURCES = foo/parse.y
AM_YFLAGS = -d
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = parse.y foo.c
END
END
cat > Makefile.am << 'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar foo2 bar2
foo_SOURCES = parse.y.y
END
cat > Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = foo.y
# A minor automake wart: automake doesn't generate code to clean
cat > Makefile.am <<'END'
AUTOMAKE_OPTIONS = no-dependencies
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar
foo_SOURCES = main.cc foo.yy
bar_SOURCES = main.cc bar.y++
$ACLOCAL
cat > Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = zardoz foobar
zardoz_SOURCES = zardoz.y
foobar_SOURCES = foobar.y
cat > Makefile.am <<'END'
AUTOMAKE_OPTIONS = no-dependencies
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar
foo_SOURCES = foo.y main.c
bar_SOURCES = $(foo_SOURCES)
END
cat > Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo
foo_SOURCES = foo.y
# Don't do this in a real-life Makefile.am!
$ACLOCAL
cat > Makefile.am <<'END'
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar
foo_SOURCES = foo.y
bar_SOURCES = bar.y
cat > Makefile.am <<'END'
AUTOMAKE_OPTIONS = no-dependencies
+AM_LFLAGS = --never-interactive
+
bin_PROGRAMS = foo bar
foo_SOURCES = main.c foo.y
bar_SOURCES = main.c bar.y