* COPYING, ChangeLog, ChangeLog.00, ChangeLog.01, ChangeLog.02,
[platform/upstream/automake.git] / tests / ansi5.test
1 #! /bin/sh
2 # Copyright (C) 2001, 2002, 2003  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 # Test for ansi2knr in another directory.
22
23 required=gcc
24 . ./defs || exit 1
25
26 cat > configure.in << 'END'
27 AC_INIT(one/joe.c)
28 AM_INIT_AUTOMAKE(liver, 0.23)
29 AC_PROG_CC
30 AM_C_PROTOTYPES
31 AC_OUTPUT(Makefile one/Makefile two/Makefile)
32 END
33
34 cat > Makefile.am << 'END'
35 SUBDIRS = one two
36 END
37
38 mkdir one two
39
40 cat > one/Makefile.am << 'END'
41 AUTOMAKE_OPTIONS = ansi2knr
42 bin_PROGRAMS = joe
43 END
44
45 cat > two/Makefile.am << 'END'
46 AUTOMAKE_OPTIONS = ../one/ansi2knr
47 bin_PROGRAMS = maude
48 END
49
50 cat > one/joe.c << 'END'
51 #include <stdio.h>
52 int
53 main (int argc, char *argv[])
54 {
55    printf ("joe\n");
56    return 0;
57 }
58 END
59
60 cat > two/maude.c << 'END'
61 #include <stdio.h>
62 int
63 main (int argc, char *argv[])
64 {
65    printf ("maude\n");
66    return 0;
67 }
68 END
69
70 set -e
71
72 $ACLOCAL
73 $AUTOCONF
74 $AUTOMAKE -a
75 # Ignore user CFLAGS.
76 CFLAGS=
77 export CFLAGS
78 CC=gcc ./configure
79
80 # This is ugly!  If we set U at make time then the "wrong" file gets
81 # included.
82 find . -name '*.Po' -print \
83 | while read file; do
84     base="`echo $file | sed -e 's/\.Po//'`"
85     mv $file ${base}_.Po
86 done
87
88 # So is this!  If we set ANSI2KNR on the make command line then the
89 # wrong value is passed to two's Makefile.
90 mv one/Makefile one/Makefile.old
91 sed -e 's,ANSI2KNR =,ANSI2KNR = ./ansi2knr,' < one/Makefile.old > one/Makefile
92
93 U=_ $MAKE -e
94 ./one/joe
95 ./two/maude