| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | #! /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 interactions between the 'portability' and 'extra-portability'# warning categories:#   1. '-Wextra-portability' must imply '-Wportability'.#   2. '-Wno-portability' must imply '-Wno-extra-portability'.#   3. '-Wall' must imply '-Wextra-portability'.. test-init.sh# We want (almost) complete control over automake options.AUTOMAKE="$am_original_AUTOMAKE --foreign -Werror"cat >>configure.ac <<ENDAC_PROG_CCAC_PROG_RANLIBAC_OUTPUTEND$ACLOCAL## First, a setup where only an extra-portability warning is present# (no "simple" portability-warnings are).#cat >Makefile.am <<ENDEXTRA_LIBRARIES = libfoo.alibfoo_a_SOURCES = foo.cEND# Sanity check: extra-portability warnings causes the expected error.AUTOMAKE_fails -Wextra-portabilitygrep 'requires.*AM_PROG_AR' stderr# Warnings in extra-portability category are not enabled by default.$AUTOMAKE# -Wall enables extra-portability.AUTOMAKE_fails -Wallgrep 'requires.*AM_PROG_AR' stderr# Disabling portability disables extra-portability as well.$AUTOMAKE -Wextra-portability -Wno-portability$AUTOMAKE -Wall -Wno-portability## Now, a setup where also a "simple" portability warning is present.#echo 'var = $(foo--bar)' >> Makefile.am# Enabling extra-portability enables portability as well ...AUTOMAKE_fails -Wextra-portabilitygrep 'foo--bar' stderrgrep 'requires.*AM_PROG_AR' stderr# ... even if it had been previously disabled.AUTOMAKE_fails -Wno-portability -Wextra-portabilitygrep 'foo--bar' stderrgrep 'requires.*AM_PROG_AR' stderr# Disabling extra-portability leaves portability intact (1).AUTOMAKE_fails -Wportability -Wno-extra-portabilitygrep 'foo--bar' stderrgrep 'requires.*AM_PROG_AR' stderr && exit 1# Disabling extra-portability leaves portability intact (2).AUTOMAKE_fails -Wall -Wno-extra-portabilitygrep 'foo--bar' stderrgrep 'requires.*AM_PROG_AR' stderr && exit 1# Enabling portability does not enable extra-portability.AUTOMAKE_fails -Wportabilitygrep 'foo--bar' stderrgrep 'requires.*AM_PROG_AR' stderr && exit 1# Disabling portability disables extra-portability.$AUTOMAKE -Wno-portability$AUTOMAKE -Wextra-portability -Wno-portability$AUTOMAKE -Wall -Wno-portability:
 |