From unknown Sat Sep 20 00:51:28 2025 X-Loop: help-debbugs@gnu.org Subject: bug#8434: java: cannot use JAVA with both dist_ and nodist_ prefixes Resent-From: Stefano Lattarini Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-automake@gnu.org Resent-Date: Wed, 06 Apr 2011 19:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 8434 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: 8434@debbugs.gnu.org X-Debbugs-Original-To: bug-automake@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.13021168205243 (code B ref -1); Wed, 06 Apr 2011 19:07:02 +0000 Received: (at submit) by debbugs.gnu.org; 6 Apr 2011 19:07:00 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q7Y4B-0001MT-Lh for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:07:00 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q7Y49-0001MC-RB for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:06:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q7Y43-0002Nd-38 for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:06:52 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, T_DKIM_INVALID, T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([199.232.76.165]:52247) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q7Y3y-0001JX-Q9 for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:06:51 -0400 Received: from [140.186.70.92] (port=55974 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q7Y3R-0007CK-6G for bug-automake@gnu.org; Wed, 06 Apr 2011 15:06:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q7Y2t-00029n-Q6 for bug-automake@gnu.org; Wed, 06 Apr 2011 15:05:41 -0400 Received: from mail-ww0-f49.google.com ([74.125.82.49]:64305) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q7Y2t-00029i-Lv for bug-automake@gnu.org; Wed, 06 Apr 2011 15:05:39 -0400 Received: by wwb39 with SMTP id 39so1859990wwb.30 for ; Wed, 06 Apr 2011 12:05:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:user-agent:mime-version :content-type:message-id; bh=Dp30RnCiQV3x2BrbKe+d8lnbK1ZjBSp8Utu7jouKaFA=; b=YD88bLhzyEzStwE7wOAWBZPWo5HAGPBeYmoRy7lRTNc8FWfZ0j7dj4KQXkI4gMmg55 FPJwbudVq1OSXlka+XxXYY0TPxDVcoKtGGJS1WdenjsMFjLPy43T1bHbTgS+YhYdBMY8 LWWqzELPnXFIdONQYkoJHiR8vI44UwidI++GM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:mime-version:content-type :message-id; b=TKxBTUX43smYRVE6NSARP6A1wLpoH1gBV6I1UeI4Toi+uzEMkNYq/Hk1KlBhAEiNn/ KvAEhi3ex1uXDveEEH9tFt4YodXQNquA7GDQ3bn5Eu7VMoqBIGdJxPWFv0dmZYCVBocn EORNf/Rm9SJX4gg8K/kbE/LkrjLmgEc4yOVHE= Received: by 10.216.72.20 with SMTP id s20mr1345134wed.80.1302116738799; Wed, 06 Apr 2011 12:05:38 -0700 (PDT) Received: from bigio.localnet (host36-103-dynamic.2-87-r.retail.telecomitalia.it [87.2.103.36]) by mx.google.com with ESMTPS id d6sm449217wer.26.2011.04.06.12.05.37 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 06 Apr 2011 12:05:38 -0700 (PDT) From: Stefano Lattarini Date: Wed, 6 Apr 2011 21:00:32 +0200 User-Agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_QhLnNnOvIDGdL6r" Message-Id: <201104062100.33332.stefano.lattarini@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-detected-operating-system: by eggs.gnu.org: Error: This connection is not (no longer?) in the cache. X-Received-From: 199.232.76.165 X-Spam-Score: -4.9 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.0 (-----) --Boundary-00=_QhLnNnOvIDGdL6r Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hello autoconfers. Currently, limitations in the Automake support for java enforce the restriction that only one `_JAVA' primary can be used in a given Makefile.am. Unfortunately, this (quite acceptable) limitation has the side effect that one cannot have both distributed and not distributed *.java files in a the same Makefile.am: $ cat Makefile.am dist_java_JAVA = a.java nodist_java_JAVA = b.java $ automake -a /usr/share/automake-1.11/am/java.am: JAVAC multiply defined in condition TRUE ... Makefile.am:2: while processing `nodist_java_JAVA' /usr/share/automake-1.11/am/java.am: ... `JAVAC' previously defined here Makefile.am:1: while processing `dist_java_JAVA' /usr/share/automake-1.11/am/java.am: CLASSPATH_ENV multiply defined in condition TRUE ... Makefile.am:2: while processing `nodist_java_JAVA' /usr/share/automake-1.11/am/java.am: ... `CLASSPATH_ENV' previously defined here Makefile.am:1: while processing `dist_java_JAVA' /usr/share/automake-1.11/am/java.am: JAVAROOT multiply defined in condition TRUE ... Makefile.am:2: while processing `nodist_java_JAVA' /usr/share/automake-1.11/am/java.am: ... `JAVAROOT' previously defined here Makefile.am:1: while processing `dist_java_JAVA' Makefile.am:2: multiple _JAVA primaries in use See also the attached testcase (for maint, v1.11-329-gd4df619). This bug is particularly annoying because *.java files listed with the `JAVA' primary are not included by default in the distribution. Ganted, one can always use EXTRA_DIST to work around this issue, but it would be nice if things Just Worked. Regards, Stefano --Boundary-00=_QhLnNnOvIDGdL6r Content-Type: application/x-shellscript; name="java-mix-dist-nodist.test" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="java-mix-dist-nodist.test" #! /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 . # Check that the JAVA primary can be used with both `dist_' and `nodist_' # modifiers in the same directory. . ./defs || Exit 1 distdir=$me-1.0 set -e cat >> configure.in << 'END' AC_OUTPUT END cat > Makefile.am << 'END' # This test does not require compilation of *.java files. JAVAC = false javadir = $(package) java_JAVA = Class1.java dist_java_JAVA = Class2.java nodist_java_JAVA = Class3.java Class3.java: @echo '$@ should not be generated!' >&2; exit 1 END : > Class1.java : > Class2.java $ACLOCAL $AUTOCONF $AUTOMAKE ./configure $MAKE distdir test -f $distdir/Class1.java test -f $distdir/Class2.java test ! -f $distdir/Class3.java : --Boundary-00=_QhLnNnOvIDGdL6r-- From unknown Sat Sep 20 00:51:28 2025 X-Loop: help-debbugs@gnu.org Subject: bug#8434: java: cannot use JAVA with both dist_ and nodist_ prefixes Resent-From: Ralf Wildenhues Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-automake@gnu.org Resent-Date: Sat, 09 Apr 2011 10:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8434 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: Stefano Lattarini Cc: 8434@debbugs.gnu.org Received: via spool by 8434-submit@debbugs.gnu.org id=B8434.130234639623864 (code B ref 8434); Sat, 09 Apr 2011 10:54:02 +0000 Received: (at 8434) by debbugs.gnu.org; 9 Apr 2011 10:53:16 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q8Vn1-0006Cr-RA for submit@debbugs.gnu.org; Sat, 09 Apr 2011 06:53:16 -0400 Received: from mailout-de.gmx.net ([213.165.64.23]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1Q8Vmx-0006CZ-LN for 8434@debbugs.gnu.org; Sat, 09 Apr 2011 06:53:12 -0400 Received: (qmail invoked by alias); 09 Apr 2011 10:53:05 -0000 Received: from xdsl-89-0-74-23.netcologne.de (EHLO localhost.localdomain) [89.0.74.23] by mail.gmx.net (mp069) with SMTP; 09 Apr 2011 12:53:05 +0200 X-Authenticated: #13673931 X-Provags-ID: V01U2FsdGVkX18dRX5DZAwdTemPFWjJwkw93E+BKpGHYcaokd7e5L dYi2ZxP1mk6cKX Received: from ralf by localhost.localdomain with local (Exim 4.72) (envelope-from ) id 1Q8Vmq-0008VG-RE; Sat, 09 Apr 2011 12:53:04 +0200 Date: Sat, 9 Apr 2011 12:53:04 +0200 From: Ralf Wildenhues Message-ID: <20110409105304.GH31779@gmx.de> References: <201104062100.33332.stefano.lattarini@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201104062100.33332.stefano.lattarini@gmail.com> Organization: Institute for Numerical Simulation, University of Bonn User-Agent: Mutt/1.5.20 (2010-08-04) X-Y-GMX-Trusted: 0 X-Spam-Score: -2.8 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.8 (--) Hi Stefano, * Stefano Lattarini wrote on Wed, Apr 06, 2011 at 09:00:32PM CEST: > Currently, limitations in the Automake support for java enforce the > restriction that only one `_JAVA' primary can be used in a given > Makefile.am. > This bug is particularly annoying because *.java files listed with > the `JAVA' primary are not included by default in the distribution. > > Ganted, one can always use EXTRA_DIST to work around this issue, > but it would be nice if things Just Worked. Agreed on all accounts. Do you see a way to fix this, for arbitrary dependency structure between the java classes? Thanks for the bug report, Ralf From unknown Sat Sep 20 00:51:28 2025 X-Loop: help-debbugs@gnu.org Subject: bug#8434: [PATCH] java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am (was: Re: bug#8434: java: cannot use JAVA with both dist_ and nodist_ prefixes) Resent-From: Stefano Lattarini Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-automake@gnu.org Resent-Date: Mon, 18 Apr 2011 19:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8434 X-GNU-PR-Package: automake X-GNU-PR-Keywords: To: Ralf Wildenhues Cc: automake-patches@gnu.org, 8434@debbugs.gnu.org Received: via spool by 8434-submit@debbugs.gnu.org id=B8434.13031553835160 (code B ref 8434); Mon, 18 Apr 2011 19:37:02 +0000 Received: (at 8434) by debbugs.gnu.org; 18 Apr 2011 19:36:23 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QBuFB-0001LA-2P for submit@debbugs.gnu.org; Mon, 18 Apr 2011 15:36:22 -0400 Received: from mail-ww0-f42.google.com ([74.125.82.42]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QBuF7-0001Ks-P4 for 8434@debbugs.gnu.org; Mon, 18 Apr 2011 15:36:19 -0400 Received: by wwk4 with SMTP id 4so2454500wwk.3 for <8434@debbugs.gnu.org>; Mon, 18 Apr 2011 12:36:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:message-id; bh=oTGm2waZYA0vFTfsueKq1kTssiRF4w7TeGIQ2CxSVOw=; b=QpzlEU81rYBcEqVIvVXOdkQFYzuHEON05nOXqxejnucQlqa7pfTNGKormBb4mzsoW0 lIRZJTxv4l0hxFxGR8XTKGWkCGNtBl7d78GpVkL1oKN2yhzdZCiX7g/YB0nYRr8fRmYg wRvIBnL28JKuUW3qbthlHds7Oe5AOZe1FoIHA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:message-id; b=eP9plrC4WHdxR8kWOrcZ6JgbJQBU+ExDDwCfaIjZu+vKHWhV+RsIaGs3I7NmvlXNFK Xy/dywXrJZolNTyNlYp72gvF2zGESSh1NOWsQXOgjyr/TSWeOhzaewaj9xTXcJxGGDaE E23Y86qVWcux+w9mRKQDXmmP0zMrVvFSyDnpw= Received: by 10.227.195.75 with SMTP id eb11mr5550424wbb.120.1303155371839; Mon, 18 Apr 2011 12:36:11 -0700 (PDT) Received: from bigio.localnet (host37-97-dynamic.2-87-r.retail.telecomitalia.it [87.2.97.37]) by mx.google.com with ESMTPS id b20sm3460395wbb.16.2011.04.18.12.36.09 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 18 Apr 2011 12:36:10 -0700 (PDT) From: Stefano Lattarini Date: Mon, 18 Apr 2011 21:35:52 +0200 User-Agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) References: <201104062100.33332.stefano.lattarini@gmail.com> <20110409105304.GH31779@gmx.de> In-Reply-To: <20110409105304.GH31779@gmx.de> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_ZKJrN1SLoSM9vWm" Message-Id: <201104182135.53472.stefano.lattarini@gmail.com> X-Spam-Score: -3.9 (---) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.9 (---) --Boundary-00=_ZKJrN1SLoSM9vWm Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit On Saturday 09 April 2011, Ralf Wildenhues wrote: > Hi Stefano, > > * Stefano Lattarini wrote on Wed, Apr 06, 2011 at 09:00:32PM CEST: > > Currently, limitations in the Automake support for java enforce the > > restriction that only one `_JAVA' primary can be used in a given > > Makefile.am. > > > This bug is particularly annoying because *.java files listed with > > the `JAVA' primary are not included by default in the distribution. > > > > Ganted, one can always use EXTRA_DIST to work around this issue, > > but it would be nice if things Just Worked. > > Agreed on all accounts. Do you see a way to fix this, for arbitrary > dependency structure between the java classes? > > Thanks for the bug report, > Ralf > Attached is a patch that fixes the problem. OK for a new 'java-work' branch based off of the right maint-based commits (as to make new tests like 'java-extra.test' and `java-noinst.test' available)? We can decide at a later date whether this branch has to be merged into maint or into master only. I'll push in 72 hours if there is no objection. Regards, Stefano --Boundary-00=_ZKJrN1SLoSM9vWm Content-Type: text/x-patch; charset="utf-8"; name="0001-java-allow-both-dist_JAVA-and-nodist_JAVA-in-the-sam.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="0001-java-allow-both-dist_JAVA-and-nodist_JAVA-in-the-sam.patch" =46rom d76b503883525aaab6048102cbfe96bbdd9a0a85 Mon Sep 17 00:00:00 2001 =46rom: Stefano Lattarini Date: Mon, 18 Apr 2011 15:18:08 +0200 Subject: [PATCH] java: allow both dist_JAVA and nodist_JAVA in the same Mak= efile.am =46ixes automake bug#8434. * automake.in (handle_java): Strip `dist_' and `nodist_' from the given prefix. Define a new internal Makefile variable `am__java_sources'. Related adjustments. * lib/am/java.am (JAVAC, JAVAROOT, CLASSPATH_ENV): Define only the first time this am file is processed. (class%DIR%.stamp): Stamp file renamed ... (class%NDIR%.stamp): ... to this, so that the `dist_' and `nodist_' prefixes are stripped from the name of the stampfile. Adjust declaration of dependencies by using the new automake-generated internal variable `$(am__java_sources)'. In the rule, use `$@' as the name of the target, rather than hard-coding it. * tests/java.test: Update and extend. * tests/java-no-duplicate.test: New test. * tests/java-mix-dist-nodist.test: Likewise. * tests/java-compile-and-install.test: Likewise. * tests/java-clean.test: Likewise. * tests/java-sources.test: Likewise. * tests/Makefile.am (TESTS): Update. =2D-- ChangeLog | 23 ++++++++++ automake.in | 20 +++++++-- lib/am/java.am | 14 ++++--- tests/Makefile.am | 5 ++ tests/Makefile.in | 5 ++ tests/java-clean.test | 57 ++++++++++++++++++++++++++ tests/java-compile-install.test | 86 +++++++++++++++++++++++++++++++++++= ++++ tests/java-mix-dist-nodist.test | 56 +++++++++++++++++++++++++ tests/java-no-duplicate.test | 44 ++++++++++++++++++++ tests/java-sources.test | 61 +++++++++++++++++++++++++++ tests/java.test | 9 +++- 11 files changed, 367 insertions(+), 13 deletions(-) create mode 100755 tests/java-clean.test create mode 100755 tests/java-compile-install.test create mode 100755 tests/java-mix-dist-nodist.test create mode 100755 tests/java-no-duplicate.test create mode 100755 tests/java-sources.test diff --git a/ChangeLog b/ChangeLog index 3ece73c..791d8e7 100644 =2D-- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +2011-04-18 Stefano Lattarini + + java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am + Fixes automake bug#8434. + * automake.in (handle_java): Strip `dist_' and `nodist_' from + the given prefix. Define a new internal Makefile variable + `am__java_sources'. Related adjustments. + * lib/am/java.am (JAVAC, JAVAROOT, CLASSPATH_ENV): Define only the + first time this am file is processed. + (class%DIR%.stamp): Stamp file renamed ... + (class%NDIR%.stamp): ... to this, so that the `dist_' and `nodist_' + prefixes are stripped from the name of the stampfile. Adjust + declaration of dependencies by using the new automake-generated + internal variable `$(am__java_sources)'. In the rule, use `$@' + as the name of the target, rather than hard-coding it. + * tests/java.test: Update and extend. + * tests/java-no-duplicate.test: New test. + * tests/java-mix-dist-nodist.test: Likewise. + * tests/java-compile-and-install.test: Likewise. + * tests/java-clean.test: Likewise. + * tests/java-sources.test: Likewise. + * tests/Makefile.am (TESTS): Update. + 2011-04-06 Stefano Lattarini =20 coverage: more on java support EXTRA_ and noinst_ prefixes diff --git a/automake.in b/automake.in index a8ec749..01b41a1 100755 =2D-- a/automake.in +++ b/automake.in @@ -5107,20 +5107,32 @@ sub handle_java 'java', 'noinst', 'check'); return if ! @sourcelist; =20 =2D my @prefix =3D am_primary_prefixes ('JAVA', 1, + my @prefixes =3D am_primary_prefixes ('JAVA', 1, 'java', 'noinst', 'check'); =20 my $dir; =2D foreach my $curs (@prefix) + my @java_sources =3D (); + foreach my $prefix (@prefixes) { + (my $curs =3D $prefix) =3D~ s/^(?:no)?dist_//; + next if $curs eq 'EXTRA'; =20 =2D err_var "${curs}_JAVA", "multiple _JAVA primaries in use" =2D if defined $dir; + push @java_sources, '$(' . $prefix . '_JAVA' . ')'; + + if (defined $dir) + { + err_var "${curs}_JAVA", "multiple _JAVA primaries in use" + unless $curs eq $dir; + } + $dir =3D $curs; } =20 + define_pretty_variable ('am__java_sources', TRUE, INTERNAL, + "@java_sources"); + if ($dir eq 'check') { push (@check, "class$dir.stamp"); diff --git a/lib/am/java.am b/lib/am/java.am index d6eb455..e0f5bba 100644 =2D-- a/lib/am/java.am +++ b/lib/am/java.am @@ -20,11 +20,13 @@ ## Building. ## ## ---------- ## =20 +if %?FIRST% JAVAC =3D javac CLASSPATH_ENV =3D CLASSPATH=3D$(JAVAROOT):$(srcdir)/$(JAVAROOT):$$CLASSPATH JAVAROOT =3D $(top_builddir) +endif %?FIRST% =20 =2Dclass%DIR%.stamp: $(%DIR%_JAVA) +class%NDIR%.stamp: $(am__java_sources) @list1=3D'$?'; list2=3D; if test -n "$$list1"; then \ for p in $$list1; do \ if test -f $$p; then d=3D; else d=3D"$(srcdir)/"; fi; \ @@ -33,7 +35,7 @@ class%DIR%.stamp: $(%DIR%_JAVA) echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVAC= =46LAGS) '"$$list2"; \ $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS)= $$list2; \ else :; fi =2D echo timestamp > class%DIR%.stamp + echo timestamp > $@ =20 =20 ## ------------ ## @@ -44,7 +46,7 @@ if %?INSTALL% am__installdirs +=3D "$(DESTDIR)$(%NDIR%dir)" ?EXEC?.PHONY install-exec-am: install-%DIR%JAVA ?!EXEC?.PHONY install-data-am: install-%DIR%JAVA =2Dinstall-%DIR%JAVA: class%DIR%.stamp +install-%DIR%JAVA: class%NDIR%.stamp @$(NORMAL_INSTALL) test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" ## A single .java file can be compiled into multiple .class files. So @@ -76,9 +78,9 @@ endif %?INSTALL% ## Cleaning. ## ## ---------- ## =20 =2D.PHONY clean-am: clean-%DIR%JAVA =2Dclean-%DIR%JAVA: =2D -rm -f *.class class%DIR%.stamp +.PHONY clean-am: clean-%NDIR%JAVA +clean-%NDIR%JAVA: + -rm -f *.class class%NDIR%.stamp =20 =20 ## -------------- ## diff --git a/tests/Makefile.am b/tests/Makefile.am index 96b7e89..5ed38a1 100644 =2D-- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -422,10 +422,15 @@ java.test \ java2.test \ java3.test \ java-check.test \ +java-clean.test \ javaprim.test \ javasubst.test \ java-extra.test \ java-noinst.test \ +java-compile-install.test \ +java-sources.test \ +java-no-duplicate.test \ +java-mix-dist-nodist.test \ ldadd.test \ ldflags.test \ lex.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index dce3a00..b467e35 100644 =2D-- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -692,10 +692,15 @@ java.test \ java2.test \ java3.test \ java-check.test \ +java-clean.test \ javaprim.test \ javasubst.test \ java-extra.test \ java-noinst.test \ +java-compile-install.test \ +java-sources.test \ +java-no-duplicate.test \ +java-mix-dist-nodist.test \ ldadd.test \ ldflags.test \ lex.test \ diff --git a/tests/java-clean.test b/tests/java-clean.test new file mode 100755 index 0000000..4dcc966 =2D-- /dev/null +++ b/tests/java-clean.test @@ -0,0 +1,57 @@ +#! /bin/sh +# Copyright (C) 1998, 2001, 2002, 2004, 2007 Free Software Foundation, In= c. +# +# 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 . + +# Test cleaning of Java class files and timestamps. + +required=3Djavac +. ./defs || Exit 1 + +set -e + +cat >> configure.in <<'END' +AC_OUTPUT +END + +cat > Makefile.am << 'END' +javadir =3D $(datadir)/java +java_JAVA =3D Class.java +dist_java_JAVA =3D ClassDist.java +nodist_java_JAVA =3D ClassNoDist.java +END + +echo 'class Class {}' > Class.java +echo 'class ClassDist {}' > ClassDist.java +echo 'class ClassNoDist {}' > ClassNoDist.java + +$ACLOCAL +$AUTOCONF +$AUTOMAKE + +./configure +$MAKE +ls -l +test -f classjava.stamp +test -f Class.class +test -f ClassDist.class +test -f ClassNoDist.class +$MAKE clean +find . -name '*.class' -o -name '*.stamp' | grep . && Exit 1 +# We should not remove unrelated stamp files. +echo timestamp > classjava2.stamp +$MAKE clean +test -f classjava2.stamp + +: diff --git a/tests/java-compile-install.test b/tests/java-compile-install.t= est new file mode 100755 index 0000000..b2145fb =2D-- /dev/null +++ b/tests/java-compile-install.test @@ -0,0 +1,86 @@ +#! /bin/sh +# Copyright (C) 1998, 2001, 2002, 2004, 2007 Free Software Foundation, In= c. +# +# 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 . + +# Test on compilation and installation of Java class files. + +required=3Djavac +. ./defs || Exit 1 + +set -e + +cat >>configure.in <<'EOF' +AC_OUTPUT +EOF + +cat > Makefile.am << 'END' +javadir =3D $(datadir)/java +java_JAVA =3D Foo.java +dist_java_JAVA =3D Bar.java +nodist_java_JAVA =3D Baz.java + +# Java files are not distributed by default. +EXTRA_DIST =3D Foo.java + +Baz.java: + rm -f $@ $@-t + echo 'class Baz {}' > $@-t + echo 'class Baz2 {}' >> $@-t + chmod a-w $@-t && mv -f $@-t $@ + +test: + ls -l $(srcdir) . ;: For debugging. + test -f $(srcdir)/Foo.java + test -f $(srcdir)/Bar.java + test -f Baz.java + test -f aClass.class + test -f Zardoz.class + test -f Baz.class + test -f Baz2.class + test ! -r Foo.class + test ! -r Bar.class + +test-install: + find $(prefix) ;: For debugging. + test -f '$(javadir)/aClass.class' + test -f '$(javadir)/Zardoz.class' + test -f '$(javadir)/Baz.class' + test -f '$(javadir)/Baz2.class' + test ! -r '$(javadir)/Foo.class' + test ! -r '$(javadir)/Bar.class' + +check-local: test +installcheck-local: test-install + +.PHONY: test test-install + +DISTCLEANFILES =3D Baz.java +END + +echo 'class aClass {}' > Foo.java +echo 'class Zardoz {}' > Bar.java + +$ACLOCAL +$AUTOCONF +$AUTOMAKE + +./configure --prefix=3D"`pwd`"/_inst +$MAKE +$MAKE test +$MAKE install +$MAKE test-install +$MAKE distcheck + +: diff --git a/tests/java-mix-dist-nodist.test b/tests/java-mix-dist-nodist.t= est new file mode 100755 index 0000000..786f400 =2D-- /dev/null +++ b/tests/java-mix-dist-nodist.test @@ -0,0 +1,56 @@ +#! /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 . + +# Check that the JAVA primary can be used with both `dist_' and `nodist_' +# modifiers in the same directory. + +. ./defs || Exit 1 + +cat >> configure.in << 'END' +AC_OUTPUT +END + +cat > Makefile.am << 'END' +# This test does not require compilation of *.java files. +JAVAC =3D false +javadir =3D $(prefix) +java_JAVA =3D Class1.java +dist_java_JAVA =3D Class2.java +nodist_java_JAVA =3D Class3.java +Class3.java: + @echo '$@ should not be generated!' >&2; exit 1 +END + +: > Class1.java +: > Class2.java + +$ACLOCAL +$AUTOCONF +# Automake used to display non-fatal warnings with this test, +# but those must be seen as a failure by us. +$AUTOMAKE 2>stderr || { cat stderr >&2; Exit 1; } +cat stderr >&2 +test ! -s stderr + +./configure + +$MAKE distdir +ls -l $distdir # For debugging. +test -f $distdir/Class1.java +test -f $distdir/Class2.java +test ! -f $distdir/Class3.java + +: diff --git a/tests/java-no-duplicate.test b/tests/java-no-duplicate.test new file mode 100755 index 0000000..d5fec4b =2D-- /dev/null +++ b/tests/java-no-duplicate.test @@ -0,0 +1,44 @@ +#! /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 . + +# Test that some Java-related variables and rules are not repeatedly +# defined. + +. ./defs || Exit 1 + +set -e + +cat > Makefile.am << 'END' +javadir =3D $(datadir)/java +java_JAVA =3D a.java +dist_java_JAVA =3D b.java +nodist_java_JAVA =3D c.java +END + +$ACLOCAL +$AUTOMAKE + +$EGREP -i '\.stamp|\.class|java|classpath' Makefile.in # For debugging. + +for var in JAVAC JAVAROOT CLASSPATH_ENV am__java_sources; do + grep "^$var =3D" Makefile.in + test `grep -c "^[$sp$tab]*$var[$sp$tab]*=3D" Makefile.in` =3D 1 +done + +grep '^classjava\.stamp:' Makefile.in +test `grep -c "class.*java.*\.stamp.*:" Makefile.in` =3D 1 + +: diff --git a/tests/java-sources.test b/tests/java-sources.test new file mode 100755 index 0000000..4a489e4 =2D-- /dev/null +++ b/tests/java-sources.test @@ -0,0 +1,61 @@ +#! /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 . + +# Test definition of automake-generated private Makefile variable +# `$(am__java_sources)'. + +. ./defs || Exit 1 + +set -e + +cat >> configure.in << 'END' +AC_OUTPUT +END + +cat > Makefile.am << 'END' +foodir =3D $(prefix) + +foo_JAVA =3D a.java +dist_foo_JAVA =3D b.java +nodist_foo_JAVA =3D c.java + +.PHONY: debug +debug: + @echo 'am__java_sources: "$(am__java_sources)"' +got: + @lst=3D'$(am__java_sources)'; \ + for f in $$lst; do echo $$f; done | sort > $@ +END + +$ACLOCAL +$AUTOMAKE +$AUTOCONF + +cat > exp << 'END' +a.java +b.java +c.java +END + +./configure +$MAKE debug +$MAKE got + +cat got +cat exp +diff exp got + +: diff --git a/tests/java.test b/tests/java.test index cae56dc..4aa91d0 100755 =2D-- a/tests/java.test +++ b/tests/java.test @@ -1,5 +1,6 @@ #! /bin/sh =2D# Copyright (C) 1998, 2001, 2002, 2004, 2007 Free Software Foundation, = Inc. +# Copyright (C) 1998, 2001, 2002, 2004, 2007, 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 @@ -25,7 +26,6 @@ cat >>configure.in <<'EOF' AC_OUTPUT EOF =20 =2D cat > Makefile.am << 'END' javadir =3D $(datadir)/java dist_java_JAVA =3D a.java b.java @@ -34,7 +34,10 @@ END $ACLOCAL $AUTOCONF $AUTOMAKE =2Dgrep '^all[-a-z]*:.*classdist_java\.stamp' Makefile.in + +$EGREP '\.stamp|class' Makefile.in # For debugging. +grep '^all[-a-z]*:.*classjava\.stamp' Makefile.in +test `grep -c '^all[-a-z]*:.*classjava\.stamp' Makefile.in` -eq 1 =20 cat >a.java <) id 1QC5tR-0002UO-Rj for submit@debbugs.gnu.org; Tue, 19 Apr 2011 04:02:42 -0400 Received: from mail-ww0-f46.google.com ([74.125.82.46]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QC5tP-0002U8-Bj for control@debbugs.gnu.org; Tue, 19 Apr 2011 04:02:40 -0400 Received: by wwb28 with SMTP id 28so6968441wwb.15 for ; Tue, 19 Apr 2011 01:02:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:user-agent:mime-version :content-type:content-transfer-encoding:message-id; bh=Qn7UykuOr7Yy+b9jTjJDlTIcuSQ9CMvsQQR7bkfmy9I=; b=oVXTVlRb6UeJfUUIAVRzOmi7gmIERVOsjXAy2WMJryfcrQqm7d0gpUwsIH9RUkqD00 Yk0FB3QVCL8eAcDvaWTfvOr8R/e4e7PkWQZTqOXHxQJ/RwyzYS8CQxDLqEzG2vFTyJkZ BktZwFsiCBJov2dcNYtvc3xg/xBqIcIDxEY6c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:mime-version:content-type :content-transfer-encoding:message-id; b=HxHMb6anPnJnjhAFWKpIWGeDFBF8LQTxdIZD5PsZUMTZrlBpuFhuk5ea3cmSjxyXSR 3iV7UuX+pCOVAdnK0PIeOM+Pz6p1OgS4mlER3fHyDUyz88K5mQRQHIchZqa0OBkNZHaT haGpd4vXZqJk5afDDEQlj7Ey7FuFNE+0qI4IY= Received: by 10.227.91.81 with SMTP id l17mr2613457wbm.29.1303200153391; Tue, 19 Apr 2011 01:02:33 -0700 (PDT) Received: from bigio.localnet (host110-30-dynamic.60-82-r.retail.telecomitalia.it [82.60.30.110]) by mx.google.com with ESMTPS id ed10sm3715834wbb.49.2011.04.19.01.02.31 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 19 Apr 2011 01:02:32 -0700 (PDT) From: Stefano Lattarini To: control@debbugs.gnu.org Subject: automake bug#8434 has a patch Date: Tue, 19 Apr 2011 10:02:22 +0200 User-Agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201104191002.23460.stefano.lattarini@gmail.com> X-Spam-Score: -3.6 (---) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.6 (---) tags 8434 patch thanks From unknown Sat Sep 20 00:51:28 2025 X-Loop: help-debbugs@gnu.org Subject: bug#8434: New public branch "java-work" (was: Re: [PATCH] java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am) Resent-From: Stefano Lattarini Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-automake@gnu.org Resent-Date: Sat, 23 Apr 2011 08:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8434 X-GNU-PR-Package: automake X-GNU-PR-Keywords: patch To: Ralf Wildenhues Cc: automake-patches@gnu.org, 8434@debbugs.gnu.org Received: via spool by 8434-submit@debbugs.gnu.org id=B8434.130354652613665 (code B ref 8434); Sat, 23 Apr 2011 08:16:02 +0000 Received: (at 8434) by debbugs.gnu.org; 23 Apr 2011 08:15:26 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QDXzx-0003YM-H9 for submit@debbugs.gnu.org; Sat, 23 Apr 2011 04:15:26 -0400 Received: from mail-wy0-f172.google.com ([74.125.82.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QDXzv-0003Y9-Cu for 8434@debbugs.gnu.org; Sat, 23 Apr 2011 04:15:23 -0400 Received: by wyb29 with SMTP id 29so818778wyb.3 for <8434@debbugs.gnu.org>; Sat, 23 Apr 2011 01:15:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=CprWBDqJ776QZD5/itq63lXF6WV3Yh3l+zrH2vVbxb8=; b=J02uNiS8NygFqYwWgFQmzo6pid7WadsWlp2THbp/owXnLn22sXVQYB1R79paFA8mV4 aQzF/QwOZ9CU2hiUCLetHFJXAAOLhZKjYjWbZBxqN+P3PaSjsnOBWyc2bF0I42nKVzz0 u8j+9Ke3nwapotnxNBGH72JaIU1yyCMWA3ciI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; b=Pv4G/XT5pgZcmp0AoIr4O5U0OrXBR9506jzL6+wG69QtJV+MDZTL97v587pbbwb4BN 3DrP68eD21EGZKqzBXEkYNI9beSxVsgsTLkBMAnqwL+kjJKNOGUIcbWE1EiNls+U9dka UxJy4WYERQWPuz3n8foqgiZQxEAUA3sDpvCxA= Received: by 10.216.80.25 with SMTP id j25mr1866316wee.35.1303546517675; Sat, 23 Apr 2011 01:15:17 -0700 (PDT) Received: from bigio.localnet (host172-30-dynamic.60-82-r.retail.telecomitalia.it [82.60.30.172]) by mx.google.com with ESMTPS id g46sm1690585wes.40.2011.04.23.01.15.15 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 23 Apr 2011 01:15:16 -0700 (PDT) From: Stefano Lattarini Date: Sat, 23 Apr 2011 10:15:03 +0200 User-Agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) References: <201104062100.33332.stefano.lattarini@gmail.com> <20110409105304.GH31779@gmx.de> <201104182135.53472.stefano.lattarini@gmail.com> In-Reply-To: <201104182135.53472.stefano.lattarini@gmail.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201104231015.04075.stefano.lattarini@gmail.com> X-Spam-Score: -3.6 (---) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.6 (---) On Monday 18 April 2011, Stefano Lattarini wrote: > On Saturday 09 April 2011, Ralf Wildenhues wrote: > > Hi Stefano, > > > > * Stefano Lattarini wrote on Wed, Apr 06, 2011 at 09:00:32PM CEST: > > > Currently, limitations in the Automake support for java enforce the > > > restriction that only one `_JAVA' primary can be used in a given > > > Makefile.am. > > > > > This bug is particularly annoying because *.java files listed with > > > the `JAVA' primary are not included by default in the distribution. > > > > > > Ganted, one can always use EXTRA_DIST to work around this issue, > > > but it would be nice if things Just Worked. > > > > Agreed on all accounts. Do you see a way to fix this, for arbitrary > > dependency structure between the java classes? > > > > Thanks for the bug report, > > Ralf > > > Attached is a patch that fixes the problem. OK for a new 'java-work' > branch based off of the right maint-based commits (as to make new > tests like 'java-extra.test' and `java-noinst.test' available)? We > can decide at a later date whether this branch has to be merged into > maint or into master only. > > I'll push in 72 hours if there is no objection. > > Regards, > Stefano > I've pushed this patch to a new public branch "java-work". This new branch is meant to be merged into either master or maint eventually (which one exactly is still to be decided). So, merging maint into java-work should be ok at any moment, but master shouldn't be merged into it. Regards, Stefano From unknown Sat Sep 20 00:51:28 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.427 (Entity 5.427) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Stefano Lattarini Subject: bug#8434: closed (Re: bug#8434: New public branch "java-work" (was: Re: [PATCH] java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am)) Message-ID: References: <201109182055.19670.stefano.lattarini@gmail.com> <201104062100.33332.stefano.lattarini@gmail.com> X-Gnu-PR-Message: they-closed 8434 X-Gnu-PR-Package: automake X-Gnu-PR-Keywords: patch Reply-To: 8434@debbugs.gnu.org Date: Sun, 18 Sep 2011 19:01:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1316372463-26697-1" This is a multi-part message in MIME format... ------------=_1316372463-26697-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #8434: java: cannot use JAVA with both dist_ and nodist_ prefixes which was filed against the automake package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 8434@debbugs.gnu.org. --=20 8434: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D8434 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1316372463-26697-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 8434-done) by debbugs.gnu.org; 18 Sep 2011 19:00:43 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R5MbZ-0006vc-Dx for submit@debbugs.gnu.org; Sun, 18 Sep 2011 15:00:42 -0400 Received: from mail-wy0-f172.google.com ([74.125.82.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R5MbV-0006qv-ME for 8434-done@debbugs.gnu.org; Sun, 18 Sep 2011 15:00:39 -0400 Received: by wyg24 with SMTP id 24so6983216wyg.17 for <8434-done@debbugs.gnu.org>; Sun, 18 Sep 2011 11:55:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=9aVm/uQWXI2ooJixLpC7UO/8uZyNiUl/hBaXxzTaYvI=; b=Q7DQWpBmslRNnY9o5AdJlknlDOifkAAY0bKJHNurSbcnd3N93uTD0oJig4l+dbLhKr gqVL3f2s5peLnJBPCI+NgvgVCZ8k8nJQZ/yRKPow41Zh8XSPlSwA1PsGhPgx4TWxDon/ xqPf46qGfwiWFY9aO8vxngA2xiZcgoZ56+Msw= Received: by 10.227.209.1 with SMTP id ge1mr1730795wbb.106.1316372140263; Sun, 18 Sep 2011 11:55:40 -0700 (PDT) Received: from bigio.localnet (host170-30-dynamic.60-82-r.retail.telecomitalia.it. [82.60.30.170]) by mx.google.com with ESMTPS id y10sm13418538wbm.14.2011.09.18.11.55.35 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 18 Sep 2011 11:55:38 -0700 (PDT) From: Stefano Lattarini To: 8434-done@debbugs.gnu.org Subject: Re: bug#8434: New public branch "java-work" (was: Re: [PATCH] java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am) Date: Sun, 18 Sep 2011 20:55:18 +0200 User-Agent: KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; ) References: <201104062100.33332.stefano.lattarini@gmail.com> <201104182135.53472.stefano.lattarini@gmail.com> <201104231015.04075.stefano.lattarini@gmail.com> In-Reply-To: <201104231015.04075.stefano.lattarini@gmail.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201109182055.19670.stefano.lattarini@gmail.com> X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: 8434-done Cc: Ralf Wildenhues X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.1 (----) Reference: On Saturday 23 April 2011, Stefano Lattarini wrote: > On Monday 18 April 2011, Stefano Lattarini wrote: > > On Saturday 09 April 2011, Ralf Wildenhues wrote: > > > Hi Stefano, > > > > > > * Stefano Lattarini wrote on Wed, Apr 06, 2011 at 09:00:32PM CEST: > > > > Currently, limitations in the Automake support for java enforce the > > > > restriction that only one `_JAVA' primary can be used in a given > > > > Makefile.am. > > > > > > > This bug is particularly annoying because *.java files listed with > > > > the `JAVA' primary are not included by default in the distribution. > > > > > > > > Ganted, one can always use EXTRA_DIST to work around this issue, > > > > but it would be nice if things Just Worked. > > > > > > Agreed on all accounts. Do you see a way to fix this, for arbitrary > > > dependency structure between the java classes? > > > > > > Thanks for the bug report, > > > Ralf > > > > > Attached is a patch that fixes the problem. OK for a new 'java-work' > > branch based off of the right maint-based commits (as to make new > > tests like 'java-extra.test' and `java-noinst.test' available)? We > > can decide at a later date whether this branch has to be merged into > > maint or into master only. > > > > I'll push in 72 hours if there is no objection. > > > > Regards, > > Stefano > > > I've pushed this patch to a new public branch "java-work". This new > branch is meant to be merged into either master or maint eventually > (which one exactly is still to be decided). So, merging maint into > java-work should be ok at any moment, but master shouldn't be merged > into it. > The patch (or a slighty modified version) has been applied to maint now: So I'm closing this bug report. Regards, Stefano ------------=_1316372463-26697-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 6 Apr 2011 19:07:00 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q7Y4B-0001MT-Lh for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:07:00 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q7Y49-0001MC-RB for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:06:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q7Y43-0002Nd-38 for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:06:52 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, T_DKIM_INVALID, T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([199.232.76.165]:52247) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q7Y3y-0001JX-Q9 for submit@debbugs.gnu.org; Wed, 06 Apr 2011 15:06:51 -0400 Received: from [140.186.70.92] (port=55974 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q7Y3R-0007CK-6G for bug-automake@gnu.org; Wed, 06 Apr 2011 15:06:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q7Y2t-00029n-Q6 for bug-automake@gnu.org; Wed, 06 Apr 2011 15:05:41 -0400 Received: from mail-ww0-f49.google.com ([74.125.82.49]:64305) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q7Y2t-00029i-Lv for bug-automake@gnu.org; Wed, 06 Apr 2011 15:05:39 -0400 Received: by wwb39 with SMTP id 39so1859990wwb.30 for ; Wed, 06 Apr 2011 12:05:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:user-agent:mime-version :content-type:message-id; bh=Dp30RnCiQV3x2BrbKe+d8lnbK1ZjBSp8Utu7jouKaFA=; b=YD88bLhzyEzStwE7wOAWBZPWo5HAGPBeYmoRy7lRTNc8FWfZ0j7dj4KQXkI4gMmg55 FPJwbudVq1OSXlka+XxXYY0TPxDVcoKtGGJS1WdenjsMFjLPy43T1bHbTgS+YhYdBMY8 LWWqzELPnXFIdONQYkoJHiR8vI44UwidI++GM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:mime-version:content-type :message-id; b=TKxBTUX43smYRVE6NSARP6A1wLpoH1gBV6I1UeI4Toi+uzEMkNYq/Hk1KlBhAEiNn/ KvAEhi3ex1uXDveEEH9tFt4YodXQNquA7GDQ3bn5Eu7VMoqBIGdJxPWFv0dmZYCVBocn EORNf/Rm9SJX4gg8K/kbE/LkrjLmgEc4yOVHE= Received: by 10.216.72.20 with SMTP id s20mr1345134wed.80.1302116738799; Wed, 06 Apr 2011 12:05:38 -0700 (PDT) Received: from bigio.localnet (host36-103-dynamic.2-87-r.retail.telecomitalia.it [87.2.103.36]) by mx.google.com with ESMTPS id d6sm449217wer.26.2011.04.06.12.05.37 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 06 Apr 2011 12:05:38 -0700 (PDT) From: Stefano Lattarini To: bug-automake@gnu.org Subject: java: cannot use JAVA with both dist_ and nodist_ prefixes Date: Wed, 6 Apr 2011 21:00:32 +0200 User-Agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_QhLnNnOvIDGdL6r" Message-Id: <201104062100.33332.stefano.lattarini@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-detected-operating-system: by eggs.gnu.org: Error: This connection is not (no longer?) in the cache. X-Received-From: 199.232.76.165 X-Spam-Score: -4.9 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.0 (-----) --Boundary-00=_QhLnNnOvIDGdL6r Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hello autoconfers. Currently, limitations in the Automake support for java enforce the restriction that only one `_JAVA' primary can be used in a given Makefile.am. Unfortunately, this (quite acceptable) limitation has the side effect that one cannot have both distributed and not distributed *.java files in a the same Makefile.am: $ cat Makefile.am dist_java_JAVA = a.java nodist_java_JAVA = b.java $ automake -a /usr/share/automake-1.11/am/java.am: JAVAC multiply defined in condition TRUE ... Makefile.am:2: while processing `nodist_java_JAVA' /usr/share/automake-1.11/am/java.am: ... `JAVAC' previously defined here Makefile.am:1: while processing `dist_java_JAVA' /usr/share/automake-1.11/am/java.am: CLASSPATH_ENV multiply defined in condition TRUE ... Makefile.am:2: while processing `nodist_java_JAVA' /usr/share/automake-1.11/am/java.am: ... `CLASSPATH_ENV' previously defined here Makefile.am:1: while processing `dist_java_JAVA' /usr/share/automake-1.11/am/java.am: JAVAROOT multiply defined in condition TRUE ... Makefile.am:2: while processing `nodist_java_JAVA' /usr/share/automake-1.11/am/java.am: ... `JAVAROOT' previously defined here Makefile.am:1: while processing `dist_java_JAVA' Makefile.am:2: multiple _JAVA primaries in use See also the attached testcase (for maint, v1.11-329-gd4df619). This bug is particularly annoying because *.java files listed with the `JAVA' primary are not included by default in the distribution. Ganted, one can always use EXTRA_DIST to work around this issue, but it would be nice if things Just Worked. Regards, Stefano --Boundary-00=_QhLnNnOvIDGdL6r Content-Type: application/x-shellscript; name="java-mix-dist-nodist.test" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="java-mix-dist-nodist.test" #! /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 . # Check that the JAVA primary can be used with both `dist_' and `nodist_' # modifiers in the same directory. . ./defs || Exit 1 distdir=$me-1.0 set -e cat >> configure.in << 'END' AC_OUTPUT END cat > Makefile.am << 'END' # This test does not require compilation of *.java files. JAVAC = false javadir = $(package) java_JAVA = Class1.java dist_java_JAVA = Class2.java nodist_java_JAVA = Class3.java Class3.java: @echo '$@ should not be generated!' >&2; exit 1 END : > Class1.java : > Class2.java $ACLOCAL $AUTOCONF $AUTOMAKE ./configure $MAKE distdir test -f $distdir/Class1.java test -f $distdir/Class2.java test ! -f $distdir/Class3.java : --Boundary-00=_QhLnNnOvIDGdL6r-- ------------=_1316372463-26697-1--