From: Alexandre Duret-Lutz Date: Thu, 19 Sep 2002 07:59:37 +0000 (+0000) Subject: * automake.in (require_variables): Search variable definitions X-Git-Tag: Release-1-6f~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d1007ccd0a8410e3f3c90524b37524211a9fb8c;p=thirdparty%2Fautomake.git * automake.in (require_variables): Search variable definitions in any condition implied by $cond. * tests/cond25.test: New file. * tests/Makefile.am (TESTS): Add cond25.test. Reported by Pavel Roskin. --- diff --git a/ChangeLog b/ChangeLog index 22d108412..9dccc4eb0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2002-09-19 Alexandre Duret-Lutz + * automake.in (require_variables): Search variable definitions + in any condition implied by $cond. + * tests/cond25.test: New file. + * tests/Makefile.am (TESTS): Add cond25.test. + Reported by Pavel Roskin. + * tests/subobj9.test: Skip this test on configure errors. 2002-09-18 Alexandre Duret-Lutz diff --git a/automake.in b/automake.in index ea8e86290..2e8820625 100755 --- a/automake.in +++ b/automake.in @@ -8947,13 +8947,26 @@ sub require_variables ($$$@) my $res = 0; $reason .= ' but ' unless $reason eq ''; + VARIABLE: foreach my $var (@vars) { # Nothing to do if the variable exists. The $configure_vars test # needed for strange variables like AMDEPBACKSLASH or ANSI2KNR # that are AC_SUBST'ed but never macro_define'd. - next if ((exists $var_value{$var} && exists $var_value{$var}{$cond}) - || exists $configure_vars{$var}); + next VARIABLE + if ((exists $var_value{$var} && exists $var_value{$var}{$cond}) + || exists $configure_vars{$var}); + + # If the variable exists but was not defined in $cond, + # look for any definition implied by $cond. + if (exists $var_value{$var}) + { + for my $vcond (keys %{$var_value{$var}}) + { + next VARIABLE + if (conditional_true_when ($vcond, $cond)); + } + } ++$res; diff --git a/tests/Makefile.am b/tests/Makefile.am index e1d0ab2b0..ef561ae74 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -90,6 +90,7 @@ cond21.test \ cond22.test \ cond23.test \ cond24.test \ +cond25.test \ condd.test \ condincl.test \ condincl2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index c53697c0d..fba367376 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -181,6 +181,7 @@ cond21.test \ cond22.test \ cond23.test \ cond24.test \ +cond25.test \ condd.test \ condincl.test \ condincl2.test \ diff --git a/tests/cond25.test b/tests/cond25.test new file mode 100755 index 000000000..f3eb5b799 --- /dev/null +++ b/tests/cond25.test @@ -0,0 +1,43 @@ +#!/bin/sh +# Copyright (C) 2002 Free Software Foundation, Inc. +# +# This file is part of GNU Automake. +# +# GNU Automake 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. +# +# GNU Automake 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 autoconf; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# Check that conditional primaries can use non-conditional directories. +# From Pavel Roskin. + +. ./defs + +set -e + +cat >>configure.in << 'EOF' +AM_CONDITIONAL([USE_FOO], [true]) +AC_PROG_CC +EOF + +cat >Makefile.am << 'EOF' +if USE_FOO +foo_PROGRAMS = foo +endif + +foodir = $(libdir)/foo +foo_SOURCES = foo.c +EOF + +$ACLOCAL +$AUTOMAKE