Tag
Hash :
0fff0a79
Author :
Date :
2005-06-23T22:19:56
* lib/Automake/Variable.pm (define, _new): Remember the helper variable created for the last conditional += on each variable, and only append further += in the same condition to this last helper variable, not to older helper variables. This way the order of the items appended to the variable is preserved. * tests/cond21.test: Adjust. * tests/cond38.test: New file. * tests/Makefile.am (TESTS): Add cond38.test. Report from Ed Hartnett.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
#!/bin/sh
# Copyright (C) 2005 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 Automake; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
# Check conditional variable ordering.
# Report from Ed Hartnett.
. ./defs
set -e
cat >>configure.in <<'EOF'
AM_CONDITIONAL([CASE_A], :)
AM_CONDITIONAL([CASE_B], :)
AC_OUTPUT
EOF
cat >>Makefile.am <<'EOF'
SUBDIRS = a
if CASE_A
SUBDIRS += b
endif
SUBDIRS += c
if CASE_A
SUBDIRS += d
if CASE_B
SUBDIRS += e
endif
SUBDIRS += f
endif
SUBDIRS += g
if CASE_B
SUBDIRS += h
endif
if CASE_B
SUBDIRS += iXYZ
SUBDIRS += jZYX
endif
print:
@echo BEG: $(SUBDIRS) :END
EOF
mkdir a b c d e f g h iXYZ jZYX
$ACLOCAL
$AUTOCONF
$AUTOMAKE
./configure
$MAKE print >stdout
cat stdout
# Check good ordering
grep 'BEG: a b c d e f g h iXYZ jZYX :END' stdout
# Make sure no extra variable was created for the last 3 items.
grep 'append.*=.* h iXYZ jZYX' Makefile