From: Stefano Lattarini Date: Wed, 6 Apr 2011 16:49:44 +0000 (+0200) Subject: java: check_JAVA does not cause compilation by "make all" anymore X-Git-Tag: ng-0.5a~216^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=38f41a03549259cc1a70d5da10b082b1ba86d04b;p=thirdparty%2Fautomake.git 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. --- diff --git a/ChangeLog b/ChangeLog index 505d5d989..d82d36388 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2011-04-09 Stefano Lattarini + + 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 Clarify regex code in depcomp. diff --git a/NEWS b/NEWS index 6bd67f62f..3cd5ab079 100644 --- 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". New in 1.11: diff --git a/THANKS b/THANKS index 040da9857..593ebc50b 100644 --- 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 diff --git a/automake.in b/automake.in index d74730dcc..a8ec749e1 100755 --- a/automake.in +++ b/automake.in @@ -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"); + } } diff --git a/tests/Makefile.am b/tests/Makefile.am index c894864f4..bf07f2b0e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -421,6 +421,7 @@ interp2.test \ java.test \ java2.test \ java3.test \ +java-check.test \ javaprim.test \ javasubst.test \ ldadd.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 6a4ae9258..d8bf050e7 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -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 index 000000000..fd3fc961c --- /dev/null +++ b/tests/java-check.test @@ -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 . + +# 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 + +: