]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
java: check_JAVA does not cause compilation by "make all" anymore
authorStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 6 Apr 2011 16:49:44 +0000 (18:49 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 9 Apr 2011 21:23:03 +0000 (23:23 +0200)
Fixes automake bug#8234.

* automake.in (handle_java): Make stamp of class files built from
java sources in $(check_JAVA) a dependency of `check' target, not
`all' target.
* tests/java-check.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
* THANKS: Update.

Report from Petteri Räty.

ChangeLog
NEWS
THANKS
automake.in
tests/Makefile.am
tests/Makefile.in
tests/java-check.test [new file with mode: 0755]

index 505d5d9893e047b32573e003b4dfdf6c93ed2e19..d82d36388305023beb8d4e0163e07ff22b79bf85 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2011-04-09  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       java: check_JAVA does not cause compilation by "make all" anymore
+       Fixes automake bug#8234.
+       * automake.in (handle_java): Make stamp of class files built from
+       java sources in $(check_JAVA) a dependency of `check' target, not
+       `all' target.
+       * tests/java-check.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+       * NEWS: Update.
+       * THANKS: Update.
+       Report from Petteri Räty.
+
 2011-04-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        Clarify regex code in depcomp.
diff --git a/NEWS b/NEWS
index 6bd67f62f36187784025929a822401f7ef54470c..3cd5ab079ab87d7dace8fa5b3d63ae3e2687578a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -58,6 +58,9 @@ Bugs fixed in 1.11.0a:
     with Tru64/OSF 5.1 sh upon unreadable log files any more.
 
   - The makedepend depmode now works better with VPATH builds.
+
+  - Java sources specified with check_JAVA are not compiled anymore upon
+    "make all", but only upon "make check".
 \f
 New in 1.11:
 
diff --git a/THANKS b/THANKS
index 040da98575f912068e62cb4fb42617c4f6bdbfd1..593ebc50bc214fe0798481216f7354b21132d2d5 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -279,6 +279,7 @@ Peter O'Gorman              peter@pogma.com
 Peter Rosin            peda@lysator.liu.se
 Peter Seiderer         seiderer123@ciselant.de
 Petter Reinholdtsen    pere@hungry.com
+Petteri Räty          betelgeuse@gentoo.org
 Phil Edwards           phil@jaj.com
 Phil Nelson            phil@cs.wwu.edu
 Philip Fong            pwlfong@users.sourceforge.net
index d74730dccc797d0acfa9ae2c27a38315d9ac80a3..a8ec749e115a687f23c9d14d9e8bef50c96ba9da 100755 (executable)
@@ -5121,8 +5121,14 @@ sub handle_java
        $dir = $curs;
       }
 
-
-    push (@all, 'class' . $dir . '.stamp');
+    if ($dir eq 'check')
+      {
+        push (@check, "class$dir.stamp");
+      }
+    else
+      {
+        push (@all, "class$dir.stamp");
+      }
 }
 
 
index c894864f4eb0611b412eb84631afdd8d85bcfd5e..bf07f2b0ec6fc3c6e69b9b8c1a19183f29de8a9a 100644 (file)
@@ -421,6 +421,7 @@ interp2.test \
 java.test \
 java2.test \
 java3.test \
+java-check.test \
 javaprim.test \
 javasubst.test \
 ldadd.test \
index 6a4ae925884c80c0b810ce2e1f7288691fb5d408..d8bf050e7773b8913f0975c107fc798f4e6aa364 100644 (file)
@@ -691,6 +691,7 @@ interp2.test \
 java.test \
 java2.test \
 java3.test \
+java-check.test \
 javaprim.test \
 javasubst.test \
 ldadd.test \
diff --git a/tests/java-check.test b/tests/java-check.test
new file mode 100755 (executable)
index 0000000..fd3fc96
--- /dev/null
@@ -0,0 +1,67 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Make sure that check_JAVA causes *.class files to be built only with
+# "make check", and not also with "make all".
+# See automake bug#8234.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_CHECK_PROG([HAS_JAVAC], [javac], [:], [exit])
+($HAS_JAVAC 77); $HAS_JAVAC 77
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+check_JAVA = One.java Two.java
+END
+
+cat > One.java <<'END'
+class One { }
+END
+
+cat > Two.java <<'END'
+class Two { // Deliberately missing closing bracket.
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+inst=`pwd`/_inst
+
+./configure --prefix="$inst"
+
+$MAKE
+ls | $EGREP '\.(class|stamp)$' && Exit 1
+
+# Make Two.java compilable.
+echo '}' >> Two.java
+
+# "make check" should compile files in $(check_JAVA) ...
+$MAKE check
+ls -l # for debugging
+test -f One.class
+test -f Two.class
+# ... but should *not* install them.
+$FGREP checkdir Makefile && Exit 1
+$MAKE install
+test -d _inst && Exit 1
+
+: