maint: Update HACKING
[automake.git] / t / suffix9.sh
blob4a997d67a1fd7a9ba390276379657f8d41902708
1 #! /bin/sh
2 # Copyright (C) 2002-2017 Free Software Foundation, Inc.
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2, or (at your option)
7 # any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
17 # Make sure that Automake choose the shorter route between suffixes
18 # (related to PR/37)
20 . test-init.sh
22 cat >>configure.ac << 'END'
23 AC_PROG_CC
24 END
26 $ACLOCAL
28 # x_ -> y -> c -> o
29 # \________/
31 # Automake should follow the bottom route: x_ -> c -> o because
32 # it is shorter.
34 # It should not take the "-> y ->" route. We use 'y' here so that
35 # then Automake will complains that YACC is not defined and the test will
36 # fail when this happens.
38 cat >Makefile.am << 'END'
39 bin_PROGRAMS = foo
40 foo_SOURCES = foo.x_
42 .x_.y:
43 cp $< $@
44 .x_.c:
45 cp $< $@
46 END
48 $AUTOMAKE -a
50 # Idem with the rules the another order.
52 cat >Makefile.am << 'END'
53 bin_PROGRAMS = foo
54 foo_SOURCES = foo.x_
56 .x_.c:
57 cp $< $@
58 .x_.y:
59 cp $< $@
60 END
62 $AUTOMAKE -a