]> sourceware.org Git - automake.git/commitdiff
2001-08-08 Richard Boulton <richard@tartarus.org>
authorRichard Boulton <richard@tartarus.org>
Wed, 8 Aug 2001 17:42:25 +0000 (17:42 +0000)
committerRichard Boulton <richard@tartarus.org>
Wed, 8 Aug 2001 17:42:25 +0000 (17:42 +0000)
* tests/cond18.test: New file.
* tests/cond19.test: New file.
* tests/cond20.test: New file.
* tests/cond4.test: Updated to check the generated _OBJECTS more
thoroughly.
* tests/Makefile.am (TESTS): Added cond18.test, cond19.test and
cond20.test

ChangeLog
tests/Makefile.am
tests/Makefile.in
tests/cond18.test [new file with mode: 0755]
tests/cond19.test [new file with mode: 0755]
tests/cond20.test [new file with mode: 0755]
tests/cond4.test

index 76ae5ce19c1d6b0d095cca1f12bd224ece98abf9..51bef8e6215e488d29a60da5a058460a99b2c2ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2001-08-08  Richard Boulton <richard@tartarus.org>
+
+       * tests/cond18.test: New file.
+       * tests/cond19.test: New file.
+       * tests/cond20.test: New file.
+       * tests/cond4.test: Updated to check the generated _OBJECTS more
+       thoroughly.
+       * tests/Makefile.am (TESTS): Added cond18.test, cond19.test and
+       cond20.test
+
 2001-08-08  Richard Boulton <richard@tartarus.org>
 
        * automake.in (file_contents_internal): if a rule is conditionally
index 174cf3a84a62cbab3183e008097688ad76e8062a..8590ae6fa70de80dc797422ca61bbb44e147d720 100644 (file)
@@ -71,6 +71,9 @@ cond14.test \
 cond15.test \
 cond16.test \
 cond17.test \
+cond18.test \
+cond19.test \
+cond20.test \
 condincl.test \
 condincl2.test \
 condlib.test \
index 11c605d1862ccdc21f0162f659b86695d56c43ee..215e8f3aa179a8838204cc6c5fc12a6e6d8adbed 100644 (file)
@@ -139,6 +139,9 @@ cond14.test \
 cond15.test \
 cond16.test \
 cond17.test \
+cond18.test \
+cond19.test \
+cond20.test \
 condincl.test \
 condincl2.test \
 condlib.test \
diff --git a/tests/cond18.test b/tests/cond18.test
new file mode 100755 (executable)
index 0000000..c1e2b03
--- /dev/null
@@ -0,0 +1,55 @@
+#! /bin/sh
+
+# Regression test for substitution references to conditional variables.
+# Report from Richard Boulton
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AM_CONDITIONAL(COND1, true)
+AM_CONDITIONAL(COND2, true)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+
+var1 = dlmain
+
+if COND1
+var2 = $(var1:=.c) foo.cc
+else
+var2 = $(var1:=.c)
+endif
+
+if COND2
+var3 = $(var2:.cc=.c)
+else
+var3 = $(var2:.cc=.c)
+endif
+
+helldl_SOURCES = $(var3)
+
+echorule:
+       @echo $(helldl_SOURCES) $(helldl_OBJECTS)
+
+bin_PROGRAMS = helldl
+END
+
+$needs_autoconf
+(gcc -v) > /dev/null 2>&1 || exit 77
+$needs_gnu_make
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+CC='gcc' ./configure
+
+val=`$MAKE --no-print-directory echorule`;
+echo $val
+test "x$val" = "xdlmain.c foo.c dlmain.o foo.o"
diff --git a/tests/cond19.test b/tests/cond19.test
new file mode 100755 (executable)
index 0000000..7e9513d
--- /dev/null
@@ -0,0 +1,69 @@
+#! /bin/sh
+
+# Regression test for substitution references to conditional variables.
+# Report from Richard Boulton
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AM_CONDITIONAL(COND1, test "x$CONDITION1" = "xtrue")
+AM_CONDITIONAL(COND2, test "x$CONDITION2" = "xtrue")
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+
+var1 = dlmain
+
+if COND1
+var2 = $(var1:=.c)
+else
+var2 = $(var1:=.c)
+endif
+
+if COND2
+var3 = $(var2:.c=a.c)
+var4 = $(var2:.c=b.c)
+else
+var3 = $(var2:.c=b.c)
+var4 = $(var2:.c=a.c)
+endif
+
+helldl_SOURCES = $(var3:.c=1.c) $(var4:.c=2.c)
+
+echorule:
+       @echo $(helldl_SOURCES) $(helldl_OBJECTS)
+
+bin_PROGRAMS = helldl
+END
+
+$needs_autoconf
+(gcc -v) > /dev/null 2>&1 || exit 77
+$needs_gnu_make
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+CONDITION1=true CONDITION2=true CC='gcc' ./configure
+vala=`$MAKE --no-print-directory echorule`;
+CONDITION1=true CONDITION2=false CC='gcc' ./configure
+valb=`$MAKE --no-print-directory echorule`;
+CONDITION1=false CONDITION2=true CC='gcc' ./configure
+valc=`$MAKE --no-print-directory echorule`;
+CONDITION1=false CONDITION2=false CC='gcc' ./configure
+vald=`$MAKE --no-print-directory echorule`;
+
+echo $vala
+echo $valb
+echo $valc
+echo $vald
+test "x$vala" = "xdlmaina1.c dlmainb2.c dlmaina1.o dlmainb2.o" || exit 1
+test "x$valb" = "xdlmainb1.c dlmaina2.c dlmainb1.o dlmaina2.o" || exit 1
+test "x$valc" = "xdlmaina1.c dlmainb2.c dlmaina1.o dlmainb2.o" || exit 1
+test "x$vald" = "xdlmainb1.c dlmaina2.c dlmainb1.o dlmaina2.o" || exit 1
diff --git a/tests/cond20.test b/tests/cond20.test
new file mode 100755 (executable)
index 0000000..6c17c11
--- /dev/null
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+# Regression test for recursion handling in substitution references to
+# conditional variables.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(hello,0.23)
+AC_PROG_CC
+AM_CONDITIONAL(COND1, true)
+AC_OUTPUT(Makefile)
+END
+
+cat > Makefile.am << 'END'
+
+var1 = $(var2)
+
+if COND1
+var2 = $(var1:=.c) foo.cc
+else
+var2 = $(var1:=.c)
+endif
+
+helldl_SOURCES = $(var2)
+
+bin_PROGRAMS = helldl
+END
+
+$needs_autoconf
+
+set -e
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a && exit 1
+$AUTOMAKE -a 2>&1| grep "recursively defined"
index 51a13e4caba9af69792fd454f72db4fddd247ceb..fd268542e529171c864ef55f0ebc8f6067f76f67 100755 (executable)
@@ -5,10 +5,11 @@
 . $srcdir/defs || exit 1
 
 cat > configure.in << 'END'
-AM_INIT_AUTOMAKE(nonesuch, nonesuch)
+AC_INIT(Makefile.am)
+AM_INIT_AUTOMAKE(foo,0.0)
 AC_PROG_CC
-AM_CONDITIONAL(ONE, true)
-AM_CONDITIONAL(TWO, false)
+AM_CONDITIONAL(ONE, test "x$CONDITION1" = "xtrue")
+AM_CONDITIONAL(TWO, test "x$CONDITION2" = "xtrue")
 AC_OUTPUT(Makefile)
 END
 
@@ -24,9 +25,36 @@ OPT2 = two.c
 endif
 
 targ_SOURCES = main.c $(OPT1) $(OPT2)
+
+echo-objects:
+       @echo $(targ_OBJECTS)
 END
 
+$needs_autoconf
+
 $ACLOCAL || exit 1
 $AUTOMAKE || exit 1
-
-test "`grep TWO_FALSE Makefile.in | wc -l`" -eq 2
+test "`grep TWO_FALSE Makefile.in | wc -l`" -eq 2 || exit 1
+
+$AUTOCONF || exit 1
+(gcc -v) > /dev/null 2>&1 || exit 77
+$needs_gnu_make
+
+CC='gcc' CONDITION1=true CONDITION2=true ./configure || exit 1
+msgtt=`$MAKE --no-print-directory echo-objects`
+CC='gcc' CONDITION1=true CONDITION2=false ./configure || exit 1
+msgtf=`$MAKE --no-print-directory echo-objects`
+CC='gcc' CONDITION1=false CONDITION2=true ./configure || exit 1
+msgft=`$MAKE --no-print-directory echo-objects`
+CC='gcc' CONDITION1=false CONDITION2=false ./configure || exit 1
+msgff=`$MAKE --no-print-directory echo-objects`
+
+echo $msgtt
+echo $msgtf
+echo $msgft
+echo $msgff
+
+test "$msgtt" = "main.o one.o two.o" || exit 1
+test "$msgtf" = "main.o one.o" || exit 1
+test "$msgft" = "main.o two.o" || exit 1
+test "$msgff" = "main.o" || exit 1
This page took 0.038877 seconds and 5 git commands to generate.