Avoid leaking TEST_LOG_COMPILER in environment of test scripts.
[automake.git] / tests / cond4.test
blobcc569d6a6509551754c9b41f5c71465e37338f05
1 #! /bin/sh
2 # Copyright (C) 1998, 2001, 2002 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 <http://www.gnu.org/licenses/>.
17 # Another sources-in-conditional test. Report from Tim Goodwin.
19 required='GNUmake gcc'
20 . ./defs || Exit 1
22 cat > configure.in << 'END'
23 AC_INIT(Makefile.am)
24 AM_INIT_AUTOMAKE(foo,0.0)
25 AC_PROG_CC
26 AM_CONDITIONAL(ONE, test "x$CONDITION1" = "xtrue")
27 AM_CONDITIONAL(TWO, test "x$CONDITION2" = "xtrue")
28 AC_OUTPUT(Makefile)
29 END
31 cat > Makefile.am << 'END'
32 bin_PROGRAMS = targ
34 if ONE
35 OPT1 = one.c
36 endif
38 if TWO
39 OPT2 = two.c
40 endif
42 targ_SOURCES = main.c $(OPT1) $(OPT2)
44 echo-objects:
45 @echo $(targ_OBJECTS)
46 END
48 $ACLOCAL || Exit 1
49 $AUTOMAKE || Exit 1
51 # We should not output useless definitions.
52 test "`grep '^@TWO_FALSE@' Makefile.in | wc -l`" -eq 0 || Exit 1
54 $AUTOCONF || Exit 1
56 # Ignore user CFLAGS.
57 CFLAGS=
58 export CFLAGS
60 CONDITION1=true CONDITION2=true ./configure || Exit 1
61 msgtt=`$MAKE --no-print-directory echo-objects`
62 CONDITION1=true CONDITION2=false ./configure || Exit 1
63 msgtf=`$MAKE --no-print-directory echo-objects`
64 CONDITION1=false CONDITION2=true ./configure || Exit 1
65 msgft=`$MAKE --no-print-directory echo-objects`
66 CONDITION1=false CONDITION2=false ./configure || Exit 1
67 msgff=`$MAKE --no-print-directory echo-objects`
69 echo $msgtt
70 echo $msgtf
71 echo $msgft
72 echo $msgff
74 test "$msgtt" = "main.o one.o two.o" || Exit 1
75 test "$msgtf" = "main.o one.o" || Exit 1
76 test "$msgft" = "main.o two.o" || Exit 1
77 test "$msgff" = "main.o" || Exit 1