97abd0312fdba2a6d68f0eef0354c4d7a033737a
[platform/upstream/automake.git] / tests / overrid.test
1 #! /bin/sh
2 # Copyright (C) 2003, 2004, 2006  Free Software Foundation, Inc.
3 #
4 # This file is part of GNU Automake.
5 #
6 # GNU Automake is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2, or (at your option)
9 # any later version.
10 #
11 # GNU Automake is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with Automake; see the file COPYING.  If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 # Boston, MA 02110-1301, USA.
20
21 # Make sure automake -Woverride suggests using TARGET-local instead
22 # of TARGET when possible.
23
24 . ./defs || exit 1
25
26 set -e
27
28 cat >> configure.in << 'END'
29 AM_CONDITIONAL([COND], [:])
30 END
31
32 cat > Makefile.am << 'END'
33 install:
34         :
35 installcheck:
36         :
37 html:
38         :
39 clean-am:
40         :
41
42 if COND
43 ps: mine
44         :
45 endif
46 END
47
48 $ACLOCAL
49 $AUTOMAKE -Wno-override
50 AUTOMAKE_fails
51 grep ':.*install-local' stderr && exit 1 # There is no such thing as install-local
52 grep ':.*installcheck-local' stderr
53 grep ':.*html-local' stderr
54 # Make sure overriding *-am targets suggest using *-local, not *-am.
55 grep ':.*clean-am-local' stderr && exit 1
56 grep ':.*clean-local' stderr
57
58 # Conditional overrides ought to be diagnosed, but it can't be done yet.
59 # See the FIXME in Automake::Rule::define.  Once this is fixed, the grep below
60 # will fail.  If you see the failure, it means you fixed Automake.  Well done!
61 # Just strip out the next '&& exit 1' and this comment.
62 grep ':.*overrides.*ps' stderr && exit 1
63
64 # Test for another issue.  Overriding html: should cause only one
65 # html: rule to be output.
66 test `grep '^html:' Makefile.in | wc -l` = 1
67
68 # ps: should be output in two conditions
69 test `grep '[^-]ps:' Makefile.in | wc -l` = 2
70 grep '@COND_TRUE@ps: mine' Makefile.in
71 grep '@COND_FALSE@ps: ps-am' Makefile.in