Hash :
91aa2b0b
Author :
Date :
2002-05-16T20:36:36
* automake.in (conditional_true_when): Return false if $WHEN == FALSE.
(conditional_is_redundant): Simplify.
(conditional_implies_one_of,
variable_not_always_defined_in_cond): New functions
(macro_define): Reject appends if the variable is not defined in
all conditions where `+=' applies.
(invert_conditions): Rewrite. Before this patch,
invert_conditions("A_TRUE B_TRUE", "A_TRUE B_FALSE", "A_FALSE")
would return ("A_FALSE B_TRUE", "A_FALSE B_TRUE"), which seems
wrong (these conditions implies "A_FALSE"). Now it outputs (),
which just means the input conditions cover all cases.
(variable_conditions_permutations): Never output FALSE conditions.
* tests/pluseq2.test, tests/pluseq3.test: Define data_DATA
in the CHECK_FALSE condition to fix the test.
* tests/pluseq5.test: Actually check the diagnostic.
* tests/pluseq9.test: New file.
* tests/Makefile.am (TESTS): Add pluseq9.test.
#! /bin/sh
# Test for another `+=' problem. Report from Brian Jones.
. $srcdir/defs || exit 1
echo 'AM_CONDITIONAL(CHECK, true)' >> configure.in
cat > Makefile.am << 'END'
if CHECK
INCLUDES = abc
endif
INCLUDES += def
END
$ACLOCAL || exit 1
$AUTOMAKE 2>stderr && exit 1
cat stderr # for debugging
# We expect the following diagnostic:
#
# Makefile.am:4: Cannot apply `+=' because `INCLUDES' is not defined in
# Makefile.am:4: the following conditions:
# Makefile.am:4: CHECK_FALSE
# Makefile.am:4: Either define `INCLUDES' in these conditions, or use
# Makefile.am:4: `+=' in the same conditions as the definitions.
# Is CHECK_FALSE mentioned?
grep ':.*CHECK_FALSE$' stderr || exit 1
# Is there only one missing condition?
test `grep ': ' stderr | wc -l` = 1 || exit 1
: