Tag
Hash :
4fae2af0
Author :
Date :
2002-07-01T16:10:35
Handle multiple suffix rules with the same input extension. For PR automake/37. * automake.in (suffix_rules_default): New variable. (suffix_rules): Redefine as a hash of hashes of pairs. (initialize_per_input): Setup suffix_rules_default from suffix_rules on first call, an override suffix_rules with suffix_rules_default on following calls. (struct) <output_extensions>: New attribute. (register_language): Set the default for output_extensions. Call register_suffix_rule for each suffix. (derive_suffix, handle_languages): Adjust to the new definition of $suffix. (register_suffix_rule): New function. (rule_define): Call register_suffix_rule. * tests/suffix8.test, tests/suffix9.test, tests/suffix10.test: New files. * tests/Makefile.am (TESTS): Add them.
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
#! /bin/sh
# Make sure that Automake choose the shorter route between suffixes
# (related to PR/37)
. $srcdir/defs || exit 1
set -e
echo AC_PROG_CC >>configure.in
# x_ -> y -> c -> o
# \________/
#
# Automake should follow the bottom route: x_ -> c -> o because
# it is shorter.
#
# It should not take the "-> y ->" route. We use `y' here so that
# then Automake will complains that YACC is not defined and the test will
# fail when this happens.
cat >Makefile.am << 'END'
bin_PROGRAMS = foo
foo_SOURCES = foo.x_
.x_.y:
cp $< $@
.x_.c:
cp $< $@
END
$ACLOCAL
$AUTOMAKE -a
# Idem with the rules the another order.
cat >Makefile.am << 'END'
bin_PROGRAMS = foo
foo_SOURCES = foo.x_
.x_.c:
cp $< $@
.x_.y:
cp $< $@
END
$AUTOMAKE -a