123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #! /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 complains about *_YFLAGS variables which have
- # conditional content.
- . test-init.sh
- cat >> configure.ac <<'END'
- AC_PROG_CC
- # 'YFLAGS' is AC_SUBST'd by AC_PROG_YACC by default, but we
- # don't want this, since it might confuse our error messages.
- # Also, AM_SUBST_NOTMAKE seems not to help about this.
- # So we simply define $(YACC) by hand.
- AC_SUBST([YACC], [yacc])
- AM_CONDITIONAL([COND], [:])
- END
- $ACLOCAL
- cat > Makefile.am <<'END'
- bin_PROGRAMS = foo zardoz
- foo_SOURCES = foo.y
- zardoz_SOURCES = zardoz.y
- if COND
- AM_YFLAGS = -v
- zardoz_YFLAGS = -v
- endif COND
- END
- cat > Makefile1.am <<'END'
- bin_PROGRAMS = foo
- foo_SOURCES = foo.y
- ## This is a dummy comment to keep line count right.
- if COND
- YFLAGS = foo
- endif COND
- END
- cat > Makefile2.am <<'END'
- bin_PROGRAMS = foo
- foo_SOURCES = foo.y
- AM_YFLAGS = am_yflags
- if COND
- YFLAGS = yflags
- endif COND
- END
- cat > Makefile3.am <<'END'
- bin_PROGRAMS = foo
- foo_SOURCES = foo.y
- foo_YFLAGS = foo_yflags
- if COND
- YFLAGS = yflags
- endif COND
- END
- cat > Makefile4.am <<'END'
- bin_PROGRAMS = foo zardoz
- foo_SOURCES = foo.y
- zardoz_SOURCES = $(foo_SOURCES)
- YFLAGS =
- AM_YFLAGS = $(COND_VAR1)
- zardoz_YFLAGS = $(COND_VAR2:z=r)
- COND_VAR2 = foo
- if COND
- YFLAGS += -v
- COND_VAR2 += bar
- else !COND
- COND_VAR1 = -d
- endif !COND
- END
- cat > Makefile5.am <<'END'
- bin_PROGRAMS = foo zardoz
- foo_SOURCES = foo.y
- zardoz_SOURCES = zardoz.y
- YFLAGS = -v
- AM_YFLAGS = -v
- if COND
- zardoz_YFLAGS = -v
- endif
- END
- cat > Makefile6.am <<'END'
- bin_PROGRAMS = foo
- foo_SOURCES = foo.y
- foo_YFLAGS = -v
- if COND
- quux_YFLAGS = -v
- AM_YFLAGS = -v
- endif
- END
- : > ylwrap
- LC_ALL=C; export LC_ALL; # For grep regexes below.
- AUTOMAKE_fails -Wnone -Wunsupported Makefile
- grep '^Makefile\.am:5:.*AM_YFLAGS.* conditional contents' stderr
- grep '^Makefile\.am:6:.*zardoz_YFLAGS.* conditional contents' stderr
- for i in 1 2 3; do
- AUTOMAKE_fails -Wnone -Wunsupported Makefile$i
- grep "^Makefile$i\\.am:5:.*[^a-zA-Z0-9_]YFLAGS.* conditional contents" \
- stderr
- done
- AUTOMAKE_fails -Wnone -Wunsupported Makefile4
- grep '^Makefile4\.am:6:.*[^a-zA-Z0-9_]YFLAGS.* conditional contents' stderr
- grep '^Makefile4\.am:7:.*AM_YFLAGS.* conditional contents' stderr
- grep '^Makefile4\.am:8:.*zardoz_YFLAGS.* conditional contents' stderr
- # Now let's check we avoid false positives.
- # Disable 'gnu' warnings because we override the user variable 'YFLAGS'.
- AUTOMAKE_fails -Wno-gnu Makefile5
- grep -v '^Makefile5\.am:.*zardoz_YFLAGS' stderr \
- | grep -v ': warnings are treated as errors' \
- | grep . && exit 1
- # Disable 'gnu' warnings because we override the user variable 'YFLAGS'.
- $AUTOMAKE -Wno-gnu Makefile6
- :
|