From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 12:52:21 2011 Received: (at submit) by debbugs.gnu.org; 6 Dec 2011 17:52:21 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzBl-0004XE-44 for submit@debbugs.gnu.org; Tue, 06 Dec 2011 12:52:21 -0500 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzBh-0004X5-TE for submit@debbugs.gnu.org; Tue, 06 Dec 2011 12:52:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXzB4-0007IH-1x for submit@debbugs.gnu.org; Tue, 06 Dec 2011 12:51:38 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:34690) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzB4-0007ID-0T for submit@debbugs.gnu.org; Tue, 06 Dec 2011 12:51:38 -0500 Received: from eggs.gnu.org ([140.186.70.92]:39176) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzB2-0003zy-PI for bug-automake@gnu.org; Tue, 06 Dec 2011 12:51:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXzB1-0007Hr-Ll for bug-automake@gnu.org; Tue, 06 Dec 2011 12:51:36 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:40578) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzB1-0007Hj-GN for bug-automake@gnu.org; Tue, 06 Dec 2011 12:51:35 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id DD8E4A60002; Tue, 6 Dec 2011 09:51:33 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tWhe8i5D6Ik1; Tue, 6 Dec 2011 09:51:32 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 7F7BD39E800B; Tue, 6 Dec 2011 09:51:32 -0800 (PST) Message-ID: <4EDE5624.6020209@cs.ucla.edu> Date: Tue, 06 Dec 2011 09:51:32 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: bug-automake@gnu.org Subject: AM_SILENT_RULES does not work with NonStop make Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -4.7 (----) X-Debbugs-Envelope-To: submit Cc: "Daniel Richard G." 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.7 (----) If AM_SILENT_RULES is used, Automake generates Makefile.in files with lines like this: AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) and these are copied into Makefile unchanged. Unfortunately, as the Automake documentation notes, these lines do not conform to the POSIX rules for 'make', and as a result packages like Coreutils that use AM_SILENT_RULES won't build on machines whose 'make' implementations conform to POSIX but disagree with GNU make in this area. This is a problem with the current release of Coreutils, which doesn't build on HP's NonStop OS (see Bug#10234). The simplest fix for Coreutils is to not use AM_SILENT_RULES but that defeats the purpose of the Automake feature. How about the following idea instead? Automake could put something like the following into Makefile.in: AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_VERBOSITY@) and then Automake can do something like this: if make supports $(...$(...)); then AM_V='$(V)' AM_DEFAULT_VERBOSITY='$(AM_DEFAULT_VERBOSITY)' else AM_V=1 AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_V]) AC_SUBST([AM_DEFAULT_VERBOSITY]) That way, Coreutils could continue to use AM_SILENT_RULES, and these rules would work as usual on most hosts that use GNU make-ish syntax in this area, but the rules wouldn't break on hosts that support POSIX but not GNU make. This idea should also fix Bug#9928 (in a different way from what's proposed there), so I'll CC: its reporter. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 13:00:04 2011 Received: (at 10237) by debbugs.gnu.org; 6 Dec 2011 18:00:04 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzJD-0004iY-So for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:00:04 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzJ9-0004hc-PV; Tue, 06 Dec 2011 13:00:01 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id A873839E800B; Tue, 6 Dec 2011 09:59:19 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o7NA729UdUST; Tue, 6 Dec 2011 09:59:19 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id BD88AA60002; Tue, 6 Dec 2011 09:59:18 -0800 (PST) Message-ID: <4EDE57F5.7090007@cs.ucla.edu> Date: Tue, 06 Dec 2011 09:59:17 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#10234: Coreutils incompatibility with POSIX make References: <4EDD40A5.5050100@cs.ucla.edu> <4EDE4B6B.3040507@cs.ucla.edu> <8762ht4n7a.fsf@rho.meyering.net> In-Reply-To: <8762ht4n7a.fsf@rho.meyering.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 10237 Cc: Basavaraj B , 10234@debbugs.gnu.org, 10237@debbugs.gnu.org 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.0 (---) On 12/06/11 09:36, Jim Meyering wrote: > I am very reluctant to > sacrifice the above default solely to accommodate that system. Yes, the "make" chatter is annoying, but on the other hand being portable is pretty important too. It's not just NonStop; NextStep 'make' has a similar problem, and I wouldn't be surprised if it crops up on other (admittedly minor) targets. I have filed a bug report against this with Automake; see (warning: the GNU mailing list software has turned some "@"s into " "s in that patch.) Let's see if we can get it solved that way -- it shouldn't be too hard, and it'd be much nicer. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 13:20:33 2011 Received: (at submit) by debbugs.gnu.org; 6 Dec 2011 18:20:33 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzd3-0005D5-0o for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:20:33 -0500 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzd1-0005Cz-W3 for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:20:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXzcM-0004HQ-SS for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:19:52 -0500 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 autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:38131) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzcM-0004HM-Qu for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:19:50 -0500 Received: from eggs.gnu.org ([140.186.70.92]:35921) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzcL-0006Rn-Up for bug-automake@gnu.org; Tue, 06 Dec 2011 13:19:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXzcK-0004GZ-NH for bug-automake@gnu.org; Tue, 06 Dec 2011 13:19:49 -0500 Received: from mail-ee0-f41.google.com ([74.125.83.41]:62247) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzcK-0004GS-5a for bug-automake@gnu.org; Tue, 06 Dec 2011 13:19:48 -0500 Received: by eekc41 with SMTP id c41so585332eek.0 for ; Tue, 06 Dec 2011 10:19:47 -0800 (PST) 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=X7zoM/gyLMYoa+5RxIY7ZyL1Q0+MfvtU3HaOVfeZXaY=; b=s1xV/dHPWCJvbqQ8+qzaj1kmpMmBB+hDlEehPSgzwOtBJKkpwRJE+zduKGDlQNz5pX cyLD3WOMOMLsaKarbsdAXXPmqcLB3qDPX8D3mTLNW7s5mkJzuMSd6QKBwRD3Qhv8F671 oDsLVkfwgO63uBwlduB/eAJSBkMiBuuJsNw3s= Received: by 10.14.0.11 with SMTP id 11mr2476991eea.56.1323195587139; Tue, 06 Dec 2011 10:19:47 -0800 (PST) Received: from bigio.localnet (host196-92-dynamic.2-87-r.retail.telecomitalia.it. [87.2.92.196]) by mx.google.com with ESMTPS id d6sm73751502eec.10.2011.12.06.10.19.45 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 06 Dec 2011 10:19:46 -0800 (PST) From: Stefano Lattarini To: bug-automake@gnu.org Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make Date: Tue, 6 Dec 2011 19:19:36 +0100 User-Agent: KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; ) References: <4EDE5624.6020209@cs.ucla.edu> In-Reply-To: <4EDE5624.6020209@cs.ucla.edu> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201112061919.37133.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: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: submit Cc: Paul Eggert , 10237@debbugs.gnu.org, "Daniel Richard G." 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.2 (-----) tags 10237 wontfix close 10237 thanks Hi Paul, thanks for the report. On Tuesday 06 December 2011, Paul Eggert wrote: > If AM_SILENT_RULES is used, Automake generates Makefile.in > files with lines like this: > > AM_V_CC = $(am__v_CC_$(V)) > am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) > > and these are copied into Makefile unchanged. Unfortunately, as > the Automake documentation notes, these lines do not conform to > the POSIX rules for 'make', and as a result packages like > Coreutils that use AM_SILENT_RULES won't build on machines whose > 'make' implementations conform to POSIX but disagree with GNU make > in this area. This is a problem with the current release of > Coreutils, which doesn't build on HP's NonStop OS (see Bug#10234). > > [SNIP] > I'm extremely reluctant to add yet more complexity to automake to accomodate this very fringe case, especially considering the fact that all non-museum make implementations that Automake is usually tested with ({Free,Net,Open}BSD, Solaris CCS and XPG4, IRIX, AIX, HP-UX, Tru64/OSF) support the nested-macro-expansion feature (which will also very likely be in the next POSIX standard, if I'm not mistaken). If GNU make builds without problem on NonStop OS (which I believe it does), then I'd simply advise the NonStop users to install it and live happily. Speaking more generally, I believe that the right thing to do to avoid similar problems in the future is to amend the common INSTALL files that comes with many GNU packages, to have it report a list of known "broken" and/or "problematic" make implementation, telling the user that they might not be usable to build the package and advising him to get GNU make instead. Give the above, I've closed this bug report. But of course, feel free to continue the discussion here if you have something to add. Regards, Stefano From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 13:41:47 2011 Received: (at submit) by debbugs.gnu.org; 6 Dec 2011 18:41:47 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzxb-0006Qy-0D for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:41:47 -0500 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RXzxQ-0006Qb-82 for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:41:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXzwm-0008L4-6Q for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:40:57 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:58702) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzwm-0008L0-3z for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:40:56 -0500 Received: from eggs.gnu.org ([140.186.70.92]:38150) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzwl-0002BK-6f for bug-automake@gnu.org; Tue, 06 Dec 2011 13:40:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXzwk-0008Kq-6l for bug-automake@gnu.org; Tue, 06 Dec 2011 13:40:55 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:50395) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXzwj-0008Km-R1 for bug-automake@gnu.org; Tue, 06 Dec 2011 13:40:54 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id B657139E800C; Tue, 6 Dec 2011 10:40:51 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mQv4M2q8mFtb; Tue, 6 Dec 2011 10:40:51 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 4EE2C39E800B; Tue, 6 Dec 2011 10:40:51 -0800 (PST) Message-ID: <4EDE61B3.4080605@cs.ucla.edu> Date: Tue, 06 Dec 2011 10:40:51 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> In-Reply-To: <201112061919.37133.stefano.lattarini@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -4.7 (----) X-Debbugs-Envelope-To: submit Cc: bug-automake@gnu.org, 10237@debbugs.gnu.org, "Daniel Richard G." 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.7 (----) On 12/06/11 10:19, Stefano Lattarini wrote: > which will also very likely be in the next POSIX standard, if I'm not > mistaken) Do you have a reference for that? That would allay some of my concerns in this area, moving forward. > I'm extremely reluctant to add yet more complexity to automake I don't see this change as adding much complexity. It should be pretty simple, and it shouldn't affect Automake much. So I guess the question is: how much complexity is "too much"? I don't want to bother to write and test a patch if it's going to be shot down no matter how simple it is. It is a bit off-putting to tell someone trying to install coreutils "well, you're going to have to install all this other GNU stuff first". (And suppose GNU make starts depending on coreutils?...) It's better to avoid these dependencies if it's easy, which seems to be the case here. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 13:49:17 2011 Received: (at 10237) by debbugs.gnu.org; 6 Dec 2011 18:49:17 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY04r-0006e0-4y for submit@debbugs.gnu.org; Tue, 06 Dec 2011 13:49:17 -0500 Received: from mx1.redhat.com ([209.132.183.28]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY04n-0006dr-MT for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 13:49:15 -0500 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id pB6ImQUG032136 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 6 Dec 2011 13:48:26 -0500 Received: from [10.3.113.89] (ovpn-113-89.phx2.redhat.com [10.3.113.89]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id pB6ImPMU026537; Tue, 6 Dec 2011 13:48:26 -0500 Message-ID: <4EDE6379.9040003@redhat.com> Date: Tue, 06 Dec 2011 11:48:25 -0700 From: Eric Blake Organization: Red Hat User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> In-Reply-To: <4EDE61B3.4080605@cs.ucla.edu> X-Enigmail-Version: 1.3.3 OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig5AB2C0D572B9562014DDF6FD" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Spam-Score: -10.3 (----------) X-Debbugs-Envelope-To: 10237 Cc: Stefano Lattarini , 10237@debbugs.gnu.org, skunk@iskunk.org 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: -10.3 (----------) This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig5AB2C0D572B9562014DDF6FD Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 12/06/2011 11:40 AM, Paul Eggert wrote: > On 12/06/11 10:19, Stefano Lattarini wrote: >> which will also very likely be in the next POSIX standard, if I'm not >> mistaken) >=20 > Do you have a reference for that? That would allay some of > my concerns in this area, moving forward. http://austingroupbugs.net/view.php?id=3D336 >=20 >> I'm extremely reluctant to add yet more complexity to automake >=20 > I don't see this change as adding much complexity. It should be > pretty simple, and it shouldn't affect Automake much. So I guess > the question is: how much complexity is "too much"? I don't want > to bother to write and test a patch if it's going to be shot down > no matter how simple it is. Personally, I'm in favor of the idea. It seems very simple at being able to address the non-POSIX concern that Ralf first expressed when silent make was introduced - it gives us a working solution on the few platforms that don't do nested expansion with no loss in functionality for the majority of make implementations, with the only penalty being one more check during configure time. > It is a bit off-putting to tell someone trying to install > coreutils "well, you're going to have to install > all this other GNU stuff first". (And suppose GNU make > starts depending on coreutils?...) It's better to avoid these > dependencies if it's easy, which seems to be the case here. I can understand why, for bug 9928, we didn't go for the solution of $(var${nested}), just for NextStep - that makes the existing code base ugly on all platforms in the final generated Makefile. But Paul's solution is nicer - it isolates the ugliness to the configure check, and the resulting Makefile is clean (either complying to old POSIX and you can't override V=3D[01], or complying to the common extension and hopefully next POSIX revision, but all with consistent syntax). --=20 Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --------------enig5AB2C0D572B9562014DDF6FD Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJO3mN5AAoJEKeha0olJ0NqFTgIAIv7nqqvcD8kftTApDx1VT2G wAG0aY7by9zoTdpwkPoPMjOr9myXb++/l6p1eYxG6PDhc50N1EALTIGpOh4D0tWm 2APwP2u1vEJosnJIQ8XK/sk/Wq4MIT5W/88KgZbEOfQLVzG1j2dNEqtwmA7Hxym+ pseQExorsGBEOo6tegOAf29RZRxnPDG5NcAuYawzxAP2pEcwVwsunBObCzhIEk0p ISypDNWQGtIZ1By5zahIc1I9C2617ebD0HEDPXqFgO2/nZP+a30xm/jTESzsaQbM hEgUzbnMjNd7kMAjFVXk4hlMY+60ND511xO3ZYMU0XH7aE5VdRWmcjk3a378iao= =BO7n -----END PGP SIGNATURE----- --------------enig5AB2C0D572B9562014DDF6FD-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 14:03:28 2011 Received: (at 10237) by debbugs.gnu.org; 6 Dec 2011 19:03:28 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY0IZ-0007jg-KH for submit@debbugs.gnu.org; Tue, 06 Dec 2011 14:03:28 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY0IX-0007jX-B6 for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 14:03:25 -0500 Received: by eekd4 with SMTP id d4so1697339eek.3 for <10237@debbugs.gnu.org>; Tue, 06 Dec 2011 11:02:45 -0800 (PST) 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=4GnC0rCDL2BwLYc9b2ihwlkgpoH6wJg4Zj42hgg/iz0=; b=pjVchwdoYfyDlIhIEgytp79JCWT97lA9xUChiMEu1ApFdO7XjFUzaSINDyeTDFNEdd eg6fn2G0fw3GomCsitiu1c3B+pum7LHVp+6rPhVtMbEJKlXL+hjlKjo9YeQ+MIk93lcL jWhBFJMrr84XnSXLGVmsmFrnSf7DwN4vrMzu0= Received: by 10.213.110.14 with SMTP id l14mr2841950ebp.54.1323198165466; Tue, 06 Dec 2011 11:02:45 -0800 (PST) Received: from bigio.localnet (host196-92-dynamic.2-87-r.retail.telecomitalia.it. [87.2.92.196]) by mx.google.com with ESMTPS id z54sm74160277eeh.5.2011.12.06.11.02.44 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 06 Dec 2011 11:02:44 -0800 (PST) From: Stefano Lattarini To: Eric Blake Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make Date: Tue, 6 Dec 2011 20:02:32 +0100 User-Agent: KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; ) References: <4EDE5624.6020209@cs.ucla.edu> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> In-Reply-To: <4EDE6379.9040003@redhat.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201112062002.32774.stefano.lattarini@gmail.com> X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: 10237 Cc: Paul Eggert , 10237@debbugs.gnu.org, skunk@iskunk.org 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.0 (----) reopen 10237 tags 10237 - wontfix thanks On Tuesday 06 December 2011, Eric Blake wrote: > > >> I'm extremely reluctant to add yet more complexity to automake > > > > I don't see this change as adding much complexity. It should be > > pretty simple, and it shouldn't affect Automake much. So I guess > > the question is: how much complexity is "too much"? I don't want > > to bother to write and test a patch if it's going to be shot down > > no matter how simple it is. > > Personally, I'm in favor of the idea. It seems very simple at being > able to address the non-POSIX concern that Ralf first expressed when > silent make was introduced > OK, I think your combined opinions are enough to outweight my mine. If you are interested in accomodating this fringe situation, I will then accept a patch on the lines Paul has proposed (with a mandatory testcase, otherwise it would be far too easy to regress in such a almost-never-excercised corner case). But note that most likely I'm not going to write such a patch myself for the moment. Regards, Stefano From unknown Fri Jun 20 20:12:30 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: Did not alter fixed versions and reopened. Date: Tue, 06 Dec 2011 19:07:01 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # Did not alter fixed versions and reopened. thanks # This fakemail brought to you by your local debbugs # administrator From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 14:06:09 2011 Received: (at control) by debbugs.gnu.org; 6 Dec 2011 19:06:09 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY0LA-0007oc-Js for submit@debbugs.gnu.org; Tue, 06 Dec 2011 14:06:08 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY0L8-0007oR-Az for control@debbugs.gnu.org; Tue, 06 Dec 2011 14:06:06 -0500 Received: by eekd4 with SMTP id d4so1700683eek.3 for ; Tue, 06 Dec 2011 11:05:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:mime-version:content-type :content-transfer-encoding:message-id; bh=dN0mT5D635HPS6LYGjgyN3J4FxniYY6kDE+0aUTBN/k=; b=eXIkMJc0AhD2Op1SRwLGeKzmLKRv4XDnBoQE6pJG45N2cznkYWAYnMOhXwOihj/fjG 9yP/sQMqQwL6nRQAAyxbFH4RjGYzvFKNbYt4CADou7gbL6aQYaO+0EtioneUh7yzfq4R 5PGFPq1+gobsuhgycjsagi3LvFR16/FROtsJ0= Received: by 10.14.18.32 with SMTP id k32mr2385070eek.170.1323198326696; Tue, 06 Dec 2011 11:05:26 -0800 (PST) Received: from bigio.localnet (host196-92-dynamic.2-87-r.retail.telecomitalia.it. [87.2.92.196]) by mx.google.com with ESMTPS id 49sm74185978eec.1.2011.12.06.11.05.25 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 06 Dec 2011 11:05:26 -0800 (PST) From: Stefano Lattarini To: control@debbugs.gnu.org Subject: reopen 10237 Date: Tue, 6 Dec 2011 20:05:15 +0100 User-Agent: KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201112062005.16506.stefano.lattarini@gmail.com> X-Spam-Score: -4.0 (----) 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: -4.0 (----) reopen 10237 tags 10237 - wontfix thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 14:06:36 2011 Received: (at control) by debbugs.gnu.org; 6 Dec 2011 19:06:36 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY0Lc-0007pC-30 for submit@debbugs.gnu.org; Tue, 06 Dec 2011 14:06:36 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY0Lb-0007oR-8v for control@debbugs.gnu.org; Tue, 06 Dec 2011 14:06:35 -0500 Received: by mail-ee0-f44.google.com with SMTP id d4so1700683eek.3 for ; Tue, 06 Dec 2011 11:05:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:mime-version:content-type :content-transfer-encoding:message-id; bh=+D8tiJal74682e5/MSRR0I+l8xL6KV6WT8NYE3tEa2E=; b=L9vq1DF8JbEKqrHqBicuYW5lFU5tWvl+7M4/2Cbyna0Hulk7L4nRbzu2J7H0qa7uMy L58wQAN8zmKvoril1HJB9UNeRENR0B1bRGTHAUjv6vSk/CKltG+BBRMVYcd/LCNkjJv2 XqbpRJsuDcfpNhjEL/fHZrpHQHEp4bV1q7nug= Received: by 10.213.10.193 with SMTP id q1mr2761740ebq.115.1323198355901; Tue, 06 Dec 2011 11:05:55 -0800 (PST) Received: from bigio.localnet (host196-92-dynamic.2-87-r.retail.telecomitalia.it. [87.2.92.196]) by mx.google.com with ESMTPS id 49sm74190293eec.1.2011.12.06.11.05.54 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 06 Dec 2011 11:05:55 -0800 (PST) From: Stefano Lattarini To: control@debbugs.gnu.org Subject: wishlist 10237 Date: Tue, 6 Dec 2011 20:05:45 +0100 User-Agent: KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201112062005.46058.stefano.lattarini@gmail.com> X-Spam-Score: -4.0 (----) 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: -4.0 (----) severity 10237 minor thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 18:17:31 2011 Received: (at 10237) by debbugs.gnu.org; 6 Dec 2011 23:17:31 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY4GQ-0005qO-Vz for submit@debbugs.gnu.org; Tue, 06 Dec 2011 18:17:31 -0500 Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY4GN-0005qE-5B for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 18:17:29 -0500 Received: from compute3.internal (compute3.nyi.mail.srv.osa [10.202.2.43]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 95A2221006 for <10237@debbugs.gnu.org>; Tue, 6 Dec 2011 18:16:46 -0500 (EST) Received: from web1.nyi.mail.srv.osa ([10.202.2.211]) by compute3.internal (MEProxy); Tue, 06 Dec 2011 18:16:46 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=iSKUNK.ORG; h= message-id:from:to:cc:mime-version:content-transfer-encoding :content-type:references:subject:in-reply-to:date; s=mesmtp; bh= 4V+aJGSph+8z8pKa+UKUr620xLM=; b=BJkmkVHdvMS/9gfkFE+1fbBKviFUJkWb afHDWlTefGDNGFYycxc36ySjq2pvVZzh1d8W8KH4ADZ7gijaqX07uqPYuoeVym1U FknYoVMmTFRzY65ZlIrm9ntu12tn9i4yD/yBzs+7kRO0uVRHGeKgAOF3aZlN6ijF UpKNEiuEPbU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:cc:mime-version :content-transfer-encoding:content-type:references:subject :in-reply-to:date; s=smtpout; bh=4V+aJGSph+8z8pKa+UKUr620xLM=; b= XYxc0Jarw4WD4kovsUf+5uvBlUnHhHU2QRCji3E711mFbmLStfW0UVJg5N+I1BIH WgY2xp/s7mgsZ3/KS7/dhIbk7y6R/RsmeJjfS6eFnGfTRzxFPif1SzOsExQpMQGo fLDlmSvkUa4QAcp0UtThVhwavrL+A/9V//LpFjqKNes= Received: by web1.nyi.mail.srv.osa (Postfix, from userid 99) id 70311A00095; Tue, 6 Dec 2011 18:16:46 -0500 (EST) Message-Id: <1323213406.12604.140661008325305@webmail.messagingengine.com> X-Sasl-Enc: F2MrNv2dVB4oyz91+NrfPrVFaySKqCMnfGg1hjHe03AI 1323213406 From: "Daniel Richard G." To: "Eric Blake" , "Paul Eggert" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii" X-Mailer: MessagingEngine.com Webmail Interface References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make In-Reply-To: <4EDE6379.9040003@redhat.com> Date: Tue, 06 Dec 2011 18:16:46 -0500 X-Spam-Score: -4.6 (----) X-Debbugs-Envelope-To: 10237 Cc: Stefano Lattarini , 10237@debbugs.gnu.org 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.6 (----) On Tue, 2011 Dec 6 11:48-0700, Eric Blake wrote: > > Personally, I'm in favor of the idea. It seems very simple at being > able to address the non-POSIX concern that Ralf first expressed when > silent make was introduced - it gives us a working solution on the few > platforms that don't do nested expansion with no loss in functionality > for the majority of make implementations, with the only penalty being > one more check during configure time. This would certainly be an improvement on what we have now. > I can understand why, for bug 9928, we didn't go for the solution of > $(var${nested}), just for NextStep - that makes the existing code base > ugly on all platforms in the final generated Makefile. But Paul's > solution is nicer - it isolates the ugliness to the configure check, > and the resulting Makefile is clean (either complying to old POSIX and > you can't override V=[01], or complying to the common extension and > hopefully next POSIX revision, but all with consistent syntax). Replacing a few parens with curly-braces on all platforms is ugly, but running an additional configure check on all platforms is nice? What if the system has GNU Make and an old, broken make, and through some sort of PATH confusion, the configure-time check sees the former, and the user then invokes the latter? (Sure, the user should just use GNU Make, but why not avoid the possibility of such breakage in the first place?) I don't mean to object to Paul's proposed solution in itself---it'll work for my needs just fine---but "nicer" and "consistent" seem to hold more sway in your reasoning here than robustness and efficiency. (Paul: Does $({}) work on NonStop?) --Daniel -- Daniel Richard G. || skunk@iSKUNK.ORG My ASCII-art .sig got a bad case of Times New Roman. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 18:27:31 2011 Received: (at 10237) by debbugs.gnu.org; 6 Dec 2011 23:27:31 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY4Q7-00064d-F0 for submit@debbugs.gnu.org; Tue, 06 Dec 2011 18:27:31 -0500 Received: from mx1.redhat.com ([209.132.183.28]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY4Q4-00064V-EC for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 18:27:30 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id pB6NQk4R000600 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 6 Dec 2011 18:26:46 -0500 Received: from [10.3.113.89] (ovpn-113-89.phx2.redhat.com [10.3.113.89]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id pB6NQhXG009455; Tue, 6 Dec 2011 18:26:44 -0500 Message-ID: <4EDEA4B3.4080206@redhat.com> Date: Tue, 06 Dec 2011 16:26:43 -0700 From: Eric Blake Organization: Red Hat User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: "Daniel Richard G." Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> In-Reply-To: <1323213406.12604.140661008325305@webmail.messagingengine.com> X-Enigmail-Version: 1.3.3 OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig0EF9E343DBFDFBE06445D417" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Spam-Score: -10.3 (----------) X-Debbugs-Envelope-To: 10237 Cc: Paul Eggert , Stefano Lattarini , 10237@debbugs.gnu.org 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: -10.3 (----------) This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig0EF9E343DBFDFBE06445D417 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 12/06/2011 04:16 PM, Daniel Richard G. wrote: > Replacing a few parens with curly-braces on all platforms is ugly, but > running an additional configure check on all platforms is nice? Yes, since we already do other configure checks for make capabilities, and substitute that into Makefile.in when producing Makefile. And no one said we have to run all the checks on all the platforms - it may be sufficient to detect multiple features on a single make probe run, at least for GNU make, to minimize forking in the common case. >=20 > What if the system has GNU Make and an old, broken make, and through > some sort of PATH confusion, the configure-time check sees the former, > and the user then invokes the latter? (Sure, the user should just use > GNU Make, but why not avoid the possibility of such breakage in the > first place?) The user is already obligated to run the same make that was on the PATH when they ran configure, or to run './configure MAKE=3D/path/to/make' to hard-code their preference of make. Automake already generates Makefile.in that has substitutions that are implementation-specific; for example, see how @SET_MAKE@, @am__include@, @am__quote@, and so forth are hard-coded to the make implementation detected at configure time. --=20 Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --------------enig0EF9E343DBFDFBE06445D417 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJO3qSzAAoJEKeha0olJ0NqDPsH/32MzCNy9DsGdbWt0vOnCLoh 3k+ax5OD266InRs5aAIYGrUAA5nPkTWy/Dv9MFcsfuUCKkzt9aJnLAVMZCAhqmQl YqT9GjK3Mx5tGGYe2smFcNclpiTRRKNfIQxGDpXsOMGRm9E0qPZWkpNYs9H00wVB EHxMVHvS8MkOSF59nV95fWw5No7HewoU/hepivJ1HLCpaBzCNan3dWvsO7xbZtaW VTT7c1b9eAJhopfDiW790IlZBdb6ApsJfWfBRaSFAzAbcsoieyR73LkEUDVQXomU aBaDjRPkJjJAGkkxuO0F3p5oSdXqiAWTW4w3WwvhyyWasIPJ0vOKqnFphbHTVeo= =za1H -----END PGP SIGNATURE----- --------------enig0EF9E343DBFDFBE06445D417-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 19:16:33 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 00:16:33 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY5BZ-0007DP-AU for submit@debbugs.gnu.org; Tue, 06 Dec 2011 19:16:33 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY5BT-0007DE-WB for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 19:16:29 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 73CF939E800B; Tue, 6 Dec 2011 16:15:46 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id btAPoJDhUGkI; Tue, 6 Dec 2011 16:15:45 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 97BEF39E8008; Tue, 6 Dec 2011 16:15:45 -0800 (PST) Message-ID: <4EDEB031.5050104@cs.ucla.edu> Date: Tue, 06 Dec 2011 16:15:45 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: "Daniel Richard G." Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> In-Reply-To: <1323213406.12604.140661008325305@webmail.messagingengine.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 10237 Cc: Stefano Lattarini , Eric Blake , 10237@debbugs.gnu.org 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.0 (---) On 12/06/11 15:16, Daniel Richard G. wrote: > (Paul: Does $({}) work on NonStop?) I don't know, sorry. I wanted a solution that worked on any POSIX platform -- POSIX 2008 says that $(aaa${bbb}) is just as unspecified as $(aaa$(bbb)) is, and I wanted to play it safe. Part of this is my experience with implementers who code from the spec, so that their implementations' quirks are not necessarily those of the historical code. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 22:11:32 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 03:11:32 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY7ut-0002ii-Pl for submit@debbugs.gnu.org; Tue, 06 Dec 2011 22:11:32 -0500 Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY7ur-0002ia-3x for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 22:11:30 -0500 Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id D972C2096E for <10237@debbugs.gnu.org>; Tue, 6 Dec 2011 22:10:47 -0500 (EST) Received: from web1.nyi.mail.srv.osa ([10.202.2.211]) by compute2.internal (MEProxy); Tue, 06 Dec 2011 22:10:47 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=iSKUNK.ORG; h= message-id:from:to:cc:mime-version:content-transfer-encoding :content-type:references:subject:in-reply-to:date; s=mesmtp; bh= 1pTN6PhL7jHB2Gscrgq0/H1N6GU=; b=fyiwg+Mc8+6uGHq/I4sYptJ1znm7Wae+ xrNdLzwogr+PyM0IeJgYOvCkkFccNiDhh4Q9PjnFWILJwgXmRnf3OZxr+WcjYYqG E5oUV6hcbbAEKIG1peVfZbibuAjMrlkSff/KlctP/sGx31OPhVDRfsPK2cS22sW2 Eyj9PYf4J4k= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:cc:mime-version :content-transfer-encoding:content-type:references:subject :in-reply-to:date; s=smtpout; bh=1pTN6PhL7jHB2Gscrgq0/H1N6GU=; b= p5FNMLpT/GcA1jBf6bxo0xP27ui2IRRI9Yd3C+EmNPsrJ+CLbrfW/qN7xFj9QR1S GteYWTZr0hsaswVdjr3LQCYuNb8BBTavKz4S/wxAavvP7ozFs+BuyGLs0SiLsn9Y VFqwyQV88Ncp2w7XU0jMwqn0U3k+NCVbfQR2tfFXAN0= Received: by web1.nyi.mail.srv.osa (Postfix, from userid 99) id B33DEA00095; Tue, 6 Dec 2011 22:10:47 -0500 (EST) Message-Id: <1323227447.32136.140661008413509@webmail.messagingengine.com> X-Sasl-Enc: GxMe1PR3nWP/yAvDM8D1ITmGhX3qC1ty8NiN/k8SThmA 1323227447 From: "Daniel Richard G." To: "Eric Blake" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii" X-Mailer: MessagingEngine.com Webmail Interface References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> <4EDEA4B3.4080206@redhat.com> Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make In-Reply-To: <4EDEA4B3.4080206@redhat.com> Date: Tue, 06 Dec 2011 22:10:47 -0500 X-Spam-Score: -4.5 (----) X-Debbugs-Envelope-To: 10237 Cc: Paul Eggert , Stefano Lattarini , 10237@debbugs.gnu.org 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.5 (----) On Tue, 2011 Dec 6 16:26-0700, Eric Blake wrote: > > Yes, since we already do other configure checks for make capabilities, > and substitute that into Makefile.in when producing Makefile. And no > one said we have to run all the checks on all the platforms - it may > be sufficient to detect multiple features on a single make probe run, > at least for GNU make, to minimize forking in the common case. That would help, surely. But I don't see why you would want to add yet another moving part if there were a way to avoid it. I mean, if $({}) violated POSIX, or there were known implementations that could not tolerate curlies, then sure. But the concerns that have been expressed here are basically stylistic in nature, and while I don't disregard those, I would think they're not nearly as important. As far as I can see, this is on par with using "test $? != 0" instead of -ne, or expr(1) instead of $((...)). Yes, it's less pretty, but it runs on more systems than the pretty code. And isn't that what really matters, at the end of the day? > The user is already obligated to run the same make that was on the > PATH when they ran configure, or to run './configure > MAKE=/path/to/make' to hard-code their preference of make. Automake > already generates Makefile.in that has substitutions that are implementation- > specific; for example, see how @SET_MAKE@, @am__include@, @am__quote@, > and so forth are hard-coded to the make implementation detected at > configure time. I was vaguely aware of SET_MAKE, but I didn't know that using the same make program as configure detected was a basic premise of the system. I retract that critique, then. --Daniel -- Daniel Richard G. || skunk@iSKUNK.ORG My ASCII-art .sig got a bad case of Times New Roman. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 22:20:55 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 03:20:55 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY83y-0002vV-4S for submit@debbugs.gnu.org; Tue, 06 Dec 2011 22:20:54 -0500 Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY83w-0002vP-JP for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 22:20:53 -0500 Received: from compute1.internal (compute1.nyi.mail.srv.osa [10.202.2.41]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 55D7720D65 for <10237@debbugs.gnu.org>; Tue, 6 Dec 2011 22:20:11 -0500 (EST) Received: from web1.nyi.mail.srv.osa ([10.202.2.211]) by compute1.internal (MEProxy); Tue, 06 Dec 2011 22:20:11 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=iSKUNK.ORG; h= message-id:from:to:cc:mime-version:content-transfer-encoding :content-type:in-reply-to:references:subject:date; s=mesmtp; bh= nNAJotbtPrq1TS/0QHTS6JI5puk=; b=f3j/gVAiCR/+tseBSXte1rqKjacnOH3D HF7oLpFvphB+6skPcJCKiqbj/ShJrX4zCITABFqsgy/UBbripddVYfRXJhFRZSZo QQSCrw1Sd21jkb4UwCuGam+jiNl0GYeKrGeHxzf6LY+W8qlJSnOj/4dNJ+2GJHdU YMpyJ1qeY8E= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:cc:mime-version :content-transfer-encoding:content-type:in-reply-to:references :subject:date; s=smtpout; bh=nNAJotbtPrq1TS/0QHTS6JI5puk=; b=eCN Y2hgmx/x4VV+LG4u6TLfdmfEolytPsHIiDnkf6ML5/jDuivBIWScgrFde2dSDK2R U9BFggDuuw0NVTjQc5/2Lf17IFg+pVPRXtgie2iKneulXHvzE/vGLqZmGPTMur8E vRNksiGSL6iGDR33UlMIFkonYJRyqB2YVgTGya7Y= Received: by web1.nyi.mail.srv.osa (Postfix, from userid 99) id 2DFFDA00095; Tue, 6 Dec 2011 22:20:11 -0500 (EST) Message-Id: <1323228011.1253.140661008421061@webmail.messagingengine.com> X-Sasl-Enc: vXJeChEwsQIMRYh72nVgtsh01Nx8kpOEg+5ps/pdh0VF 1323228011 From: "Daniel Richard G." To: "Paul Eggert" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii" X-Mailer: MessagingEngine.com Webmail Interface In-Reply-To: <4EDEB031.5050104@cs.ucla.edu> References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> <4EDEB031.5050104@cs.ucla.edu> Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make Date: Tue, 06 Dec 2011 22:20:11 -0500 X-Spam-Score: -4.5 (----) X-Debbugs-Envelope-To: 10237 Cc: Stefano Lattarini , Eric Blake , 10237@debbugs.gnu.org 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.5 (----) On Tue, 2011 Dec 6 16:15-0800, Paul Eggert wrote: > On 12/06/11 15:16, Daniel Richard G. wrote: > > > (Paul: Does $({}) work on NonStop?) > > I don't know, sorry. > > I wanted a solution that worked > on any POSIX platform -- POSIX 2008 says that > $(aaa${bbb}) is just as unspecified as > $(aaa$(bbb)) is, and I wanted to play it safe. > > Part of this is my experience with implementers who > code from the spec, so that their implementations' > quirks are not necessarily those of the historical > code. Unless an implementation forgets to allow curly-braces altogether, however, I don't see why this wouldn't work. I've certainly seen projects that use ${...} as the general convention. It would have to be a pretty naive make implementation to not support that. As I see it, the only real way to play it safe here, per POSIX, is to forgo the use of nested variables altogether. --Daniel -- Daniel Richard G. || skunk@iSKUNK.ORG My ASCII-art .sig got a bad case of Times New Roman. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 22:24:39 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 03:24:39 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY87a-00030h-HU for submit@debbugs.gnu.org; Tue, 06 Dec 2011 22:24:38 -0500 Received: from qmta05.emeryville.ca.mail.comcast.net ([76.96.30.48]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY87W-00030Y-TL for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 22:24:37 -0500 Received: from omta23.emeryville.ca.mail.comcast.net ([76.96.30.90]) by qmta05.emeryville.ca.mail.comcast.net with comcast id 62p61i0031wfjNsA53PmWE; Wed, 07 Dec 2011 03:23:46 +0000 Received: from [192.168.0.6] ([24.10.251.25]) by omta23.emeryville.ca.mail.comcast.net with comcast id 63H41i00W0ZdyUg8j3H5Dy; Wed, 07 Dec 2011 03:17:06 +0000 Message-ID: <4EDEDC46.5070106@redhat.com> Date: Tue, 06 Dec 2011 20:23:50 -0700 From: Eric Blake Organization: Red Hat User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: "Daniel Richard G." Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> <4EDEA4B3.4080206@redhat.com> <1323227447.32136.140661008413509@webmail.messagingengine.com> In-Reply-To: <1323227447.32136.140661008413509@webmail.messagingengine.com> X-Enigmail-Version: 1.3.3 OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig26BBC8502FC06CC86A9A3319" X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: 10237 Cc: Paul Eggert , Stefano Lattarini , 10237@debbugs.gnu.org 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: -1.7 (-) This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig26BBC8502FC06CC86A9A3319 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 12/06/2011 08:10 PM, Daniel Richard G. wrote: > On Tue, 2011 Dec 6 16:26-0700, Eric Blake wrote: >> >> Yes, since we already do other configure checks for make capabilities,= >> and substitute that into Makefile.in when producing Makefile. And no >> one said we have to run all the checks on all the platforms - it may >> be sufficient to detect multiple features on a single make probe run, >> at least for GNU make, to minimize forking in the common case. >=20 > That would help, surely. But I don't see why you would want to add yet > another moving part if there were a way to avoid it. I mean, if $({}) > violated POSIX, Yes, use of $(${}) is specifically unspecified by POSIX 2008, and use of that extension means you are on unportable ground. The goal is that POSIX 201x will require it, and that eventually make implementations will catch up to POSIX, but we aren't there yet. > or there were known implementations that could not > tolerate curlies, then sure. There are systems that cannot tolerate the extensions to existing POSIX 2008 (of which, $($()) is one such extension): at least nextStep and nonstop. Doing a configure-time check of make capabilities will let us write portable makefiles even for those systems, while using $(${}) would avoid the configure check, and would even work around the nextstep limitations, but would not necessarily work for nonstop or for POSIX 2008 implementations. --=20 Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --------------enig26BBC8502FC06CC86A9A3319 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJO3txGAAoJEKeha0olJ0Nq6QMIAJyXwaP//E5SgvcAoer3OvQb 2WQ+nSgmCOP5ejPWrp/cC43LsgBUEsvxAFTVmTNbH076oj9MG3wX+OZZRi4sEAAx JbLTHuoxJkN8rNRGC+XsQqrM4nxtB8cHpmuKNFJxUjbRbc4RYzJoWvLPNXlfQFzf bipHjm30VCzLtzklWnG19GCCxydrMwOVjpI6OXUqyICZ0aR0DcsNIigc1SxcojJ5 Bea8eIWhtFyILszaFQOxuSOA08gRmQBZSGffTED+A1MB1HmNXvmHXeQjq0nZ7Zga 4LruQ+thEGDGzF5F6oHOn3RP88fT03dHjIANF0JCGpFyycuTswNzC3s0zXBvTDQ= =TPu2 -----END PGP SIGNATURE----- --------------enig26BBC8502FC06CC86A9A3319-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 22:34:09 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 03:34:09 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY8Gm-0003EM-TT for submit@debbugs.gnu.org; Tue, 06 Dec 2011 22:34:09 -0500 Received: from mx1.redhat.com ([209.132.183.28]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RY8Gk-0003ED-5O for 10237@debbugs.gnu.org; Tue, 06 Dec 2011 22:34:07 -0500 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id pB73XNwD002654 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 6 Dec 2011 22:33:23 -0500 Received: from [10.3.113.35] (ovpn-113-35.phx2.redhat.com [10.3.113.35]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id pB73XMw2025505; Tue, 6 Dec 2011 22:33:23 -0500 Message-ID: <4EDEDE82.7050908@redhat.com> Date: Tue, 06 Dec 2011 20:33:22 -0700 From: Eric Blake Organization: Red Hat User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: "Daniel Richard G." Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> <4EDEB031.5050104@cs.ucla.edu> <1323228011.1253.140661008421061@webmail.messagingengine.com> In-Reply-To: <1323228011.1253.140661008421061@webmail.messagingengine.com> X-Enigmail-Version: 1.3.3 OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig29B45C44E0CEBAD9D7D4CE8B" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Spam-Score: -10.3 (----------) X-Debbugs-Envelope-To: 10237 Cc: Paul Eggert , Stefano Lattarini , 10237@debbugs.gnu.org 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: -10.3 (----------) This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig29B45C44E0CEBAD9D7D4CE8B Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 12/06/2011 08:20 PM, Daniel Richard G. wrote: >> I wanted a solution that worked >> on any POSIX platform -- POSIX 2008 says that >> $(aaa${bbb}) is just as unspecified as >> $(aaa$(bbb)) is, and I wanted to play it safe. >> > As I see it, the only real way to play it safe here, per POSIX, is to > forgo the use of nested variables altogether. Exactly. Hence the proposal for a configure-time check, which expands to the extension where the extension was tested to work, and which expands to an innocuous variant that avoids nested variables where the test fails. --=20 Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --------------enig29B45C44E0CEBAD9D7D4CE8B Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJO3t6CAAoJEKeha0olJ0NqeVoH/Rxv6CntiMDVeDclrADp2263 Im7e4BE87maAecBlN73qf5FgLKpMVTzvHzaTgCvnZf0TtT/mtpOeyYEIMVZ7U7Py R0f79gz9puySf6M9CTkseoVA1ZplEvPEQa+Sl0wafR4faRG34opVpPbF3UdyPucG 8KqwP9937xsrzZG8mOBZ8bymaDUjosQ8PqbziW2o8I6KF/Gc+7glDEfjd01vjeqr 6MNX1eIgo0+qHN5DLiztsTjkLDNM4pcGIOekvQ/4GtGyrzdSaCMkxCQdrI87izf8 81DYD+qfRRweVlDW0PEAWup+4/gFsE2KUaxgF3T+Fizov0wU8jiSNjlUNE75ha8= =TxeI -----END PGP SIGNATURE----- --------------enig29B45C44E0CEBAD9D7D4CE8B-- From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 02:16:42 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 07:16:42 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RYBkA-0008LM-8H for submit@debbugs.gnu.org; Wed, 07 Dec 2011 02:16:42 -0500 Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RYBk7-0008LF-TJ for 10237@debbugs.gnu.org; Wed, 07 Dec 2011 02:16:41 -0500 Received: from compute6.internal (compute6.nyi.mail.srv.osa [10.202.2.46]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 7CB6320E45 for <10237@debbugs.gnu.org>; Wed, 7 Dec 2011 02:15:57 -0500 (EST) Received: from web1.nyi.mail.srv.osa ([10.202.2.211]) by compute6.internal (MEProxy); Wed, 07 Dec 2011 02:15:57 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=iSKUNK.ORG; h= message-id:from:to:cc:mime-version:content-transfer-encoding :content-type:references:subject:in-reply-to:date; s=mesmtp; bh= ffY3XGwFt/5mNHhQ2TwEJeuumpM=; b=PhtcYfeu7opsBExatVPSJ5+TFIWGE2jK 5T9zEIw148XPe1I/HyymeNnD5RHR7Vya7vUHb0SNgOuO0werKnT0NvfPMwCGaCUW umGCzo9q9VHmCFUzLnB02xcPQynBDQDO/zNu4ZzFGBC/gtta9U88lngW8+3osiVH 5F/2HcEnj8o= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:cc:mime-version :content-transfer-encoding:content-type:references:subject :in-reply-to:date; s=smtpout; bh=ffY3XGwFt/5mNHhQ2TwEJeuumpM=; b= NvWTtqnWciN0lKsVl/EpMic6UqnLDQv0Kdrg4j80PZX29K1V6WleXibRKwHyprvM zCgGUBj/qpjPO1I4D7JerLkXWf/iqyR7Ld06pZfjW+arZNlEymKSVLBS8B9oRPoR i4Joe+8dGnL3Xk6WEeupxotM6h0FPDWdb0oIDFjIsgY= Received: by web1.nyi.mail.srv.osa (Postfix, from userid 99) id 57AB7A00106; Wed, 7 Dec 2011 02:15:57 -0500 (EST) Message-Id: <1323242157.16580.140661008471097@webmail.messagingengine.com> X-Sasl-Enc: Lf9hVF5pQULt0qNezRpME/guJS5wpQHAUZAEPDIEH0o+ 1323242157 From: "Daniel Richard G." To: "Eric Blake" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii" X-Mailer: MessagingEngine.com Webmail Interface References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> <4EDEA4B3.4080206@redhat.com> <1323227447.32136.140661008413509@webmail.messagingengine.com> <4EDEDC46.5070106@redhat.com> Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make In-Reply-To: <4EDEDC46.5070106@redhat.com> Date: Wed, 07 Dec 2011 02:15:57 -0500 X-Spam-Score: -4.4 (----) X-Debbugs-Envelope-To: 10237 Cc: Paul Eggert , Stefano Lattarini , 10237@debbugs.gnu.org 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.4 (----) On Tue, 2011 Dec 6 20:23-0700, Eric Blake wrote: > > Yes, use of $(${}) is specifically unspecified by POSIX 2008, and use > of that extension means you are on unportable ground. The goal is > that POSIX 201x will require it, and that eventually make > implementations will catch up to POSIX, but we aren't there yet. Are there any make implementations known to support neither $(${}) nor $($())? NonStop remains a question mark, but given that it's a current, shipping product, I doubt it would come up any worse than an early-90s BSD. > There are systems that cannot tolerate the extensions to existing > POSIX 2008 (of which, $($()) is one such extension): at least nextStep > and nonstop. But support for $($()) is not strictly the same as support for nested variables in general; the former implies the latter, but not the other way around. NeXTSTEP can do nested variables, if only with mixed delimiters, and NonStop may well be in the same boat. Just from the nature of the NeXTSTEP behavior, it seems to be less a matter of POSIX-or-not than a poorly-written parser that needs mixed delimiters in order to get the nesting right. If someone wrote a Perl regex to match variable dereferences, and didn't think too hard about it, it would probably have the same behavior. > Doing a configure-time check of make capabilities will let us write > portable makefiles even for those systems, while using $(${}) would > avoid the configure check, and would even work around the nextstep > limitations, but would not necessarily work for nonstop or for POSIX > 2008 implementations. Agreed, but that remains a hypothetical, and a configure-time approach would necessarily disable support for "make V=..." on some systems. I would think you'd want at least one confirmed report of $(${}) breakage before crossing the "V=... may not work in all instances" barrier. That said, I can't fault a better-safe-than-sorry approach, which I think is even the better fit philosophically for the Autotools projects. I just wish that these very real standards/implementation qualms had been addressed when AM_SILENT_RULES was originally developed. --Daniel -- Daniel Richard G. || skunk@iSKUNK.ORG My ASCII-art .sig got a bad case of Times New Roman. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 15:55:07 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 20:55:07 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RYOWB-0005ls-1m for submit@debbugs.gnu.org; Wed, 07 Dec 2011 15:55:07 -0500 Received: from rila.superhosting.bg ([91.196.124.212]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RYOW7-0005lX-EC for 10237@debbugs.gnu.org; Wed, 07 Dec 2011 15:55:05 -0500 Received: from [78.128.48.21] (helo=[192.168.0.10]) by rila.superhosting.bg with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1RYOVK-002MaW-Ja; Wed, 07 Dec 2011 22:54:14 +0200 Message-ID: <4EDFD274.6070407@roumenpetrov.info> Date: Wed, 07 Dec 2011 22:54:12 +0200 From: Roumen Petrov User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.19) Gecko/20110430 SeaMonkey/2.0.14 MIME-Version: 1.0 To: 10237@debbugs.gnu.org Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> <4EDEB031.5050104@cs.ucla.edu> <1323228011.1253.140661008421061@webmail.messagingengine.com> <4EDEDE82.7050908@redhat.com> In-Reply-To: <4EDEDE82.7050908@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - rila.superhosting.bg X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roumenpetrov.info X-Source: X-Source-Args: X-Source-Dir: X-Spam-Score: -3.4 (---) X-Debbugs-Envelope-To: 10237 Cc: Stefano Lattarini , Paul Eggert , Eric Blake , "Daniel Richard G." 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.3 (---) Eric Blake wrote: > On 12/06/2011 08:20 PM, Daniel Richard G. wrote: > >>> I wanted a solution that worked >>> on any POSIX platform -- POSIX 2008 says that >>> $(aaa${bbb}) is just as unspecified as >>> $(aaa$(bbb)) is, and I wanted to play it safe. >>> >>> >> As I see it, the only real way to play it safe here, per POSIX, is to >> forgo the use of nested variables altogether. >> > Exactly. Hence the proposal for a configure-time check, which expands > to the extension where the extension was tested to work, and which > expands to an innocuous variant that avoids nested variables where the > test fails. > I remember one old discussion from automake list that end with following solution lib_LTLIBRARIES = @MODULE@.la @MODULE@_la_SOURCES = module.c @MODULE@_la_LDFLAGS = -module -avoid-version Following current discussion I think that next will be automake to be able to process following Makefile.am MODULE = @MODULE@ lib_LTLIBRARIES = $(MODULE).la $(MODULE)_la_SOURCES = module.c $(MODULE)_la_LDFLAGS = -module -avoid-version I think that is too early to request such automake functionality . Roumen From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 16:02:03 2011 Received: (at 10237) by debbugs.gnu.org; 7 Dec 2011 21:02:03 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RYOct-0005wq-97 for submit@debbugs.gnu.org; Wed, 07 Dec 2011 16:02:03 -0500 Received: from mx1.redhat.com ([209.132.183.28]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RYOco-0005wO-Pl for 10237@debbugs.gnu.org; Wed, 07 Dec 2011 16:02:01 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id pB7L16Z0024009 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 7 Dec 2011 16:01:06 -0500 Received: from [10.3.113.35] (ovpn-113-35.phx2.redhat.com [10.3.113.35]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id pB7L14dR006212; Wed, 7 Dec 2011 16:01:05 -0500 Message-ID: <4EDFD410.1000700@redhat.com> Date: Wed, 07 Dec 2011 14:01:04 -0700 From: Eric Blake Organization: Red Hat User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: Roumen Petrov Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112061919.37133.stefano.lattarini@gmail.com> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <1323213406.12604.140661008325305@webmail.messagingengine.com> <4EDEB031.5050104@cs.ucla.edu> <1323228011.1253.140661008421061@webmail.messagingengine.com> <4EDEDE82.7050908@redhat.com> <4EDFD274.6070407@roumenpetrov.info> In-Reply-To: <4EDFD274.6070407@roumenpetrov.info> X-Enigmail-Version: 1.3.3 OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig4480E97B5992AD3C01CA845E" X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-Spam-Score: -10.3 (----------) X-Debbugs-Envelope-To: 10237 Cc: Paul Eggert , Stefano Lattarini , 10237@debbugs.gnu.org, "Daniel Richard G." 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: -10.3 (----------) This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig4480E97B5992AD3C01CA845E Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 12/07/2011 01:54 PM, Roumen Petrov wrote: >> Exactly. Hence the proposal for a configure-time check, which expands= >> to the extension where the extension was tested to work, and which >> expands to an innocuous variant that avoids nested variables where the= >> test fails. >> =20 >=20 > I remember one old discussion from automake list that end with followin= g > solution > lib_LTLIBRARIES =3D @MODULE@.la > @MODULE@_la_SOURCES =3D module.c > @MODULE@_la_LDFLAGS =3D -module -avoid-version How is that relavant to this bug? The whole point of Paul's proposal is that @AM_V@ and @AM_DEFAULT_VERBOSITY@ are automake internals, and appear only in Makefile.in, not Makefile.am. >=20 > Following current discussion I think that next will be automake to be > able to process following Makefile.am >=20 > MODULE =3D @MODULE@ > lib_LTLIBRARIES =3D $(MODULE).la > $(MODULE)_la_SOURCES =3D module.c > $(MODULE)_la_LDFLAGS =3D -module -avoid-version You're asking for something different, which is a smarter automake that can handle Makefile.am in such a way that it can see through a user-provided @MODULE@, even when it is later spelled $(MODULE). But that is unrelated to fixing AM_SILENT_RULES to produce POSIX-compliant makefiles. --=20 Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --------------enig4480E97B5992AD3C01CA845E Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJO39QQAAoJEKeha0olJ0NqqF4H/iVvO1glN+3Ln4wjhkEJuMGY ILC+ib7ITCyspNMHCYRaT2z1B77JBLv+EL97nN8HH5pJr4KNSHyJfvZX4txbWf7K JdzHumTy7L78Xl0dDPGTEi+8JNVcmPHqd8IGE0m6zVE86FNSR0jiZaWQVcm/pDaC NkTOCRbzJEPm/t7Pyz4NJTJ1XpX6Vt4Nqrsp0cyQuM9R4ll2LPVLj97IatFlR/Vt /Deg8pgVgMhElxIiiIGD6g1qAvEwgl2lpxf0Z57YCvpVC0tTdkF9eqImP8e4zAAR T9KM1/iMfpVnltQdqjcuPZHOGtJIRY1WIs/n7+lNZZKfwQCnvJRNjtifjVFfKDI= =DZwb -----END PGP SIGNATURE----- --------------enig4480E97B5992AD3C01CA845E-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 10 17:58:58 2011 Received: (at 10237) by debbugs.gnu.org; 10 Dec 2011 22:58:58 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZVsf-0002rY-Mg for submit@debbugs.gnu.org; Sat, 10 Dec 2011 17:58:58 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZVsb-0002rM-8Z; Sat, 10 Dec 2011 17:58:55 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 4E9F0A60001; Sat, 10 Dec 2011 14:57:49 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BZ37WCtQa-Wr; Sat, 10 Dec 2011 14:57:47 -0800 (PST) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id A8ECB39E8006; Sat, 10 Dec 2011 14:57:47 -0800 (PST) Message-ID: <4EE3E3ED.1010506@cs.ucla.edu> Date: Sat, 10 Dec 2011 14:57:49 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <4EDE61B3.4080605@cs.ucla.edu> <4EDE6379.9040003@redhat.com> <201112062002.32774.stefano.lattarini@gmail.com> In-Reply-To: <201112062002.32774.stefano.lattarini@gmail.com> Content-Type: multipart/mixed; boundary="------------090502020507090708020509" X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, Eric Blake , 10237@debbugs.gnu.org, skunk@iskunk.org 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.9 (--) This is a multi-part message in MIME format. --------------090502020507090708020509 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 12/06/11 11:02, Stefano Lattarini wrote: > If you are interested in accomodating this fringe situation, I will > then accept a patch on the lines Paul has proposed (with a mandatory > testcase, otherwise it would be far too easy to regress in such a > almost-never-excercised corner case). OK, a proposed patch is below. It changes the silent-rules test case to check the new behavior; hope that's what you're asking for. Comments are welcome. The patch below is just the human-edited parts. A full patch (including the autogenerated parts) is attached, as a compressed file. automake: port silent-rules option to POSIX make This fixes two problems reported for Automake (Bug#9928, Bug#10237) and is in response to a bug report for building coreutils on HP NonStop OS (Bug#10234). The basic idea is that instead of generating Makefile.in lines like "AM_V_CC = $(am__v_CC_$(V))", we generate "AM_V_CC = $(am__v_CC_@am__V@)". We then AC_SUBST $(V) for @am__V@ in the usual case where `make' supports nested variables, and substitute 1 (or 0) otherwise. Similarly for usages like $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). * NEWS: Document this. * automake.in (define_verbose_var): When defining the variable, use @am__V@ rather than $(V), and likewise for @am__DEFAULT_VERBOSITY@ and $(AM_DEFAULT_VERBOSITY). (handle_options): silent-rules no longer overrides portability-recursive. * doc/automake.texi (Invoking Automake): silent-rules no longer overrides portability-recursive. (Automake silent-rules Option): Explain new system. * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports nested variables, and substitute am__V and am__DEFAULT_VERBOSITY accordingly. * tests/silent-nowarn.test: Check that silent-rules no longer overrides portability-recursive. diff --git a/NEWS b/NEWS index da9af08..615f420 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +* Changes to automake: + + - The `silent-rules' option now generates working makefiles even for + the uncommon `make' implementations that do not support the + nested-variables extension to POSIX 2008. For such `make' + implementations, whether a build is silent is determined at + configure time, and cannot be overridden at make time with `make + V=0' or `make V=1'. Since the `silent-rules' option no longer + requires nested variables, it no longer disables the + nested-variables warning. + New in 1.11a: * Changes to automake: diff --git a/automake.in b/automake.in index 0b6d014..d61af86 100644 --- a/automake.in +++ b/automake.in @@ -1141,9 +1141,8 @@ sub define_verbose_var ($$) my $silent_var = $pvar . '_0'; if (option 'silent-rules') { - # Using `$V' instead of `$(V)' breaks IRIX make. - define_variable ($var, '$(' . $pvar . '_$(V))', INTERNAL); - define_variable ($pvar . '_', '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))', INTERNAL); + define_variable ($var, '$(' . $pvar . '_@'.'am__V'.'@)', INTERNAL); + define_variable ($pvar . '_', '$(' . $pvar . '_@'.'am__DEFAULT_VERBOSITY'.'@)', INTERNAL); Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE, $val, '', INTERNAL, VAR_ASIS) if (! vardef ($silent_var, TRUE)); @@ -1236,10 +1235,6 @@ sub handle_options return 1 if process_option_list (@options); } - # Override portability-recursive warning. - switch_warning ('no-portability-recursive') - if option 'silent-rules'; - if ($strictness == GNITS) { set_option ('readme-alpha', INTERNAL); diff --git a/doc/automake.texi b/doc/automake.texi index e937715..8214787 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -2702,8 +2702,6 @@ variables. The categories output by default are @samp{syntax} and @samp{unsupported}. Additionally, @samp{gnu} and @samp{portability} are enabled in @option{--gnu} and @option{--gnits} strictness. -On the other hand, the @option{silent-rules} options (@pxref{Options}) -turns off portability warnings about recursive variable expansions. @c Checked by extra-portability.test Turning off @samp{portability} will also turn off @samp{extra-portability}, @@ -10141,19 +10139,14 @@ Users who prefer to have silent rules enabled by default can edit their default to @samp{yes}. This should still allow disabling silent rules at @command{configure} time and at @command{make} time. -@c FIXME: there's really a need to specify this explicitly? -For portability to different @command{make} implementations, package authors -are advised to not set the variable @code{V} inside the @file{Makefile.am} -file, to allow the user to override the value for subdirectories as well. - -The current implementation of this feature relies on a non-POSIX, but in -practice rather widely supported @file{Makefile} construct of nested -variable expansion @samp{$(@var{var1}$(V))}. Do not use the -@option{silent-rules} option if your package needs to build with -@command{make} implementations that do not support it. The -@option{silent-rules} option turns off warnings about recursive variable -expansion, which are in turn enabled by @option{-Wportability} -(@pxref{Invoking Automake}). +The current implementation of this feature normally uses nested +variable expansion @samp{$(@var{var1}$(V))}, a @file{Makefile} feature +that is not required by POSIX 2008 but is widely supported in +practice. On the rare @command{make} implementations that do not +support nested variable expansion, whether rules are silent is always +determined at configure time, and cannot be overridden at make time. +Future versions of POSIX are likely to require nested variable +expansion, so this minor limitation should go away with time. @vindex @code{AM_V_GEN} @vindex @code{AM_V_at} diff --git a/m4/silent.m4 b/m4/silent.m4 index 432dd45..2a4446c 100644 --- a/m4/silent.m4 +++ b/m4/silent.m4 @@ -5,7 +5,7 @@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 +# serial 3 # AM_SILENT_RULES([DEFAULT]) # -------------------------- @@ -25,6 +25,34 @@ case $enable_silent_rules in @%:@ ((( no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_nested_variables], + [am_makefile=' +TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit +' +if echo "$am_makefile" | $am_make -s -f - >/dev/null 2>&1; then + am_cv_make_nested_variables=yes +else + am_cv_make_nested_variables=no +fi]) +if test $am_cv_make_nested_variables = yes; then + am__V='$(V)' + am__DEFAULT_VERBOSITY='$(AM_DEFAULT_VERBOSITY)' +else + am__V=$AM_DEFAULT_VERBOSITY + am__DEFAULT_VERBOSITY=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([am__V])dnl +AM_SUBST_NOTMAKE([am__V])dnl +AC_SUBST([am__DEFAULT_VERBOSITY])dnl +AM_SUBST_NOTMAKE([am__DEFAULT_VERBOSITY])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl diff --git a/tests/silent-nowarn.test b/tests/silent-nowarn.test index f0f5e70..9742bc3 100755 --- a/tests/silent-nowarn.test +++ b/tests/silent-nowarn.test @@ -14,7 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# Check that the 'silent-rules' mode suppresses the warnings for recursive +# Check that the 'silent-rules' mode does not suppress warnings for recursive # make variable expansions. This should happen regardless of whether and # where these warnings are requested. @@ -39,6 +39,5 @@ END touch AUTHORS ChangeLog COPYING INSTALL NEWS README THANKS $ACLOCAL -$AUTOMAKE --gnu -Wall -Wportability-recursive - -: +AUTOMAKE_fails --gnu -Wall -Wportability-recursive +grep 'recursive variable expansion' stderr --------------090502020507090708020509 Content-Type: application/x-gzip; name="full-patch.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="full-patch.gz" H4sICIPi404CA2Z1bGwtcGF0Y2gA7Vz/c9pIsv/Z+ivmHN4CC5KR+E7WOYiNY25t7DLE2a1c ioykAetFSKwk7Lh8/t+ve0YCCQnsJLtXV+/ZtbakUU9Pd09P96dnlD3x3DlptlRaqdEK05tq vcKY1jJo06iYZsPQjHa9pVc1g1XqbXLuOmTEFkRtkkqlw/8jWqWiSifApkMu6dIm/dmMeQH5 hfFr1/CVpWFThZnLN9IxDViHjGhQJmqFHDMDeqsqUWudeqVTaxO50qpUpNFS/19mBB3y8bI3 Pjol6oH2idBl4M7pF+i+cIG9b9nMCWRvaTOfuIvAAskCl1xejAa/EaSTpPGN5ZOp9RUIgjuX LDxXt9ncJx5DDswkU9cjvZAtKbxdzl6121qrTPBOrWjVZlGijkmAi+VAL3/hOj7DUSjRl7OQ D+eiLy3btJwZMVyPLQPLBpkc6fSSDF1nFLgLcjESAyDbWlEhZHzDiE59yyCWySiOEdzQAAby A0ZN4k6lGXOYRwPkeg4CTkFhBeSwLQcUsi0Qeb93PrmeHB2RQ5Ir0PlkcgsPk1zhuljcL0t3 jIQstlF28e66W9wHeT6AYjfMIb2jyej929FYQjZct5AKbQAUZOkvqU0MCpa4u2EeI5/RfHni LxdoDl8C8dC4t9SzKBjcLxM0or/U/cAKliCMSgrAtlIkLvDz7iyfKdLImls29ex7PuTSp7NI yYRmoMZx/6T3/mw8ue5fvYXJHv9eLCrSz2TY/zDqkGPXWM7BL0BSy8fmyGvQcgUTjOiwyS3z dNeHK/WKHfIBteZv0NKoYSR5WVqCkpH6YEeQFmfJIWgboRaKiBqg2BInTcnX5YRbZFekAjA0 bTYRPuyDRAnXdlxiuw6sJOKC3B44iy+hnalu2VZwL3vMWHq+dctQW9M1DlYaB+yrRQoD59b9 gppFjr51AGk1ANkyQGG1WBIcLrjkwLf/dWFTMLTD7oh/D14wR6HmtQNBrsxrBK0wGpz1h+PJ 1fuz/gh6Hd0w4wv6ErfvN3sTnx7emGl9iRqwJnFt2vcoTQD8/FAg2XHvqOco2BbJwVfh9xpI lmUJ+FCgPnNnZOPnX/CrNUhp64/EvZhk/WBfCJQJ4rhvp4hJG4hl8SNlOEZcpuqKr5z8kZKT tzlGtbJDGeQmbTW3kLFJwjEl0iAY4HxicOuZZdJsYzCEDIKrolCC9aY1YZ3aTDTIRUkyremU yPLMCgg9WJtdX99LlmOyr0TTWrTWMhSlVVcrukYh+VQatRrOV7ynBNIkene7RFbLYB61rLVJ tyuVMF3JqiZD9kpku+x0V5JKe9+ct0p7f0bigoF/JHWV9n4seZX2fjR9lfZ+MIGV9r47hZX2 viuJlfZ+MI2V9rYkMnzxY6mstPeNyay0913prLT3HQmttLcloKLeP5bUSntPRm0Q+TsSG4r2 Y6ntGV72VHKDVR5PbyjTjyS45xhLIlEMrLQJ+Yc1J+fsnnk4G+SXeXjb9ZgJ4yiGO38jkT2M 9aOATSkMdUaDAPR1IAX94os2xY7aurM5teywWzK+89So80sY1U3aptNKS1Eaan1a0yrJqM4J RUDnt7FYrtZ4LP85TNU+j4tRmMagTYjMY9znuJ3yUbgGo64Ck0/uXI+74jwMcj5ht7AM+RJC vXnAcUCjOXQNXcCaLyCgA2fKl4iYE9MFzkHkHthPMBBOIq+chLCvAXP8ROKAGqwFMfAEgo6/ NG7CcUT/jcHKK3+kIvZj+BZ64p3JAubNIbaAywWCgeE6U2u2hDgZWHMmfNSgDgqrs2gVm6Az KMEXEZKROysI5RBcrg8rYMFwFcCTmgeBR5Zj8Li91dQr10QeHvtjaXnosqmFAz6yjiym5QtT bTcirguYNu7QQ1jWsLpVRVVpB/yObPGMhD/Gw7Eefwq9s6I3zIpaUxSzodJpq5H0zji9cNJ4 C/dVtaaWAcTxawscFuMCScd9UsjlihLHZPN7khNm5C8gVS7wqpD8pJJ/LWisKSQuYdx8wuQh D0IeJHnvFXnvo1N/zl3nY2kdniFZ5InuMfrFJ4OrELMA8t2LJAstDGLBbZnkc4U8SLCWhOf3 fJkMhuP+1bB3Vnyd2XlFn8/kkZ1Bk2xLz5apm1fyPNTCtfsMLjuFi5il5MtgTvaizNPpXIf8 Ox0xIIyznswyue5dTXrvxxfnvV/7MCrwGV+9hztQyS4DI/jB2cvHBgg7jQajIg/COPd/w0UD A2xwR15FEIh7nlZtlAHgluCmXm5ErpdM65G3eCxYerB2kDkAVYP5fkgysS3A+YVuhANCB3yE BSYT8opchKkmO9OsFygQ+xBMjJtJ2EQKeceVM3uBF8uhl2c6OfiaFC6CnB94lhFAYPDJ4SF5 NxyMR+EaeIiU81kQKgNjgs+bcyZTe3FDk7OYiAtpuKKn28IYwdrVZlOtQ12iqbVmq5mMEele IlKk23HWtGZFgzhR4lc+aatgp0g8mxmQr2auZ2HhsQwWSwjf9xhQoIwBwSG8d306Xzz495Aq vj5imJfCpqUTZiVmPkLU7pmmhUahtn1fDklmzpJ3CR9jswMTjsyZg7KYGGhDl3gAk616xZqs wH8k69kBD7gQuJ1Dbe6HZf4cdYpP8WM48T543uKrx6YPAsX5j+Aa6KqgPMxWTL7I03xCdbAL WbvgasWzrwvKMy6aEoxiCCwF2oAFIR17NO6OHG6ByZfCW3G4tFEgP9o2obbvEr6A1lQpfo9l sSwrmAlUTAkVtdoWKAbiNPMgm91gmcimiOldsNBthGSJgHiR8WMTDhmcMJhHtKTlSat26C/k uAdj8loP8cGNuwSkALCUC20DAhI5FhWMjyQhCOgi2oFZelghh0eBCTiQjb1HDxav0K4y2PVk 8Nt5v4MyeSyPFS/6GCAVh4H0IJq/YIY1vedlEU6LbRlWYN//XZIR+8RnFYhxXQIfJzViChIt qPEFajXM9Teu50syeiw1b6EY4sNyYMaCRE2FTE32cP2ICRLjGHdJhIAPq4KXzh8lGe/KHElw w4kKVMxUBLdDxvaS114Ybk3AOUYgViuFCWa2DQtBkvlCXnpcq6QamJ+5WaaMBojWPGbzte6g /VxH5lCxDKAPK3VJXnjUCCyAX2ExeAdygK1XK31Dl0fEgbAql0aAIwlAJcnpNRK6T67QhXcP 8Ks+8pyPznQsTImlKEIzedcKxih97y691eSgD3BEJmArAkz0mV0zm4msrUBsYTwx/DpYPBkg JHmlPcJrCxA4OpAlmMRX3yrOfUhESDkKVqnK9hFr6m+YdMf15nzNgI0jnCyVvmGWAN+nZj5k LpXENo/PzRmCca7WugoR7uWnvQmBbuRyYP8wpHs87zx7DqVSNIkbFQBJTICob0TowwHW5Q21 7+g9lN6JMuf7KhyYl5Mltzm858kBJ0NYAgfF3RSbx6HQUpsyS6WY0JgHcB5BJggAtjW3wgkO Q+8MwgeILsqqKGKS7q0AEiIU8T2yd/3hY+YLGjwmkUpi90JPPIb4pFbVTLMG+ESjtVqtYSTx SaKDgCaJJkxa9XKTlPAPFNyA+Wawanwoh7l+YIoFToIf1bKGu7hH2x+4vIQDBKDjJogVlLEv 19z1+BWX4dwFbSwjCuEQJLH6wys3JEweBje4g8QI4faWmTzJvIJADva3iSaVVvdVNOYrsrGD U/gYYvhPRXwrb/0RAAyxcgn+Vnli5tuLObH0JyHUFh6JCOh/Ol1SKBQ40HTcIsmqZw7V1yFm /nkLwbw2saaFjzn1U5l8hHyNlwr+UT8VsS/zqSGVoBhBpz3MPWDtIPNFJpV6R5Oj3tFpfwK/ R78WPkarJheSr/apUsX2pzKvqT8CoXHLaSeCZJJFEu2LHOYhjkGVcZgrvO1d8VgjleCucjgF FMT4vXoI+QVurw9VLvbEdK2gg1uRuQKvUKSScnl6Mfy9Q6K3Ugn4QqZgBkCg/VxswH3yr7Uy sk9k8Hzy5sBktwfOEmCM9uYn9TXfM0ZZdyhzeI9blIwLuZvQcaXS1AJvQYn4MUduBzkU6MA5 IcLk+jDPS+zoOT3n+S3Fbz4hIjDKZZFt57uFfGpxV+Fb6oWPnPOnounY0HouWifDizE61sbb RJ8U4508tlCTNc8sWSOi88nb3tGvo7Pe6PQw/8/8RrfVO0GeCIhbD6v0ra/CQDmtTOusWVGU drOm6UYVA2WzXg8D5dbOImhufc1Rfw0jKP8rQujv7jLKCRznAxphEFUhj4n4yQEBg3r2PXnH NyltcrkEoG6QM4iHDngIMKE8VIpccsNDpDvz6Bzy8mCKkRPyEWPkl5sgWHQODu7u7hSo1BTX mx3Ygol/8CaMprFdZRw3WW9jkBaRBGKwLzbk1nAKoe4KTGE0fgYv02X+Cs0h023sQEu+8rOK uGRVc0MXC4anZDPqmTayBBuuNkmxCn4VnhNBix+Tn3KQ/ceSr2s0B04YVGaQBuBvHbNAf3gs QWrDPdne+/HpxdUodj58dHH5+2D4jgyGo3Hv7Eyc/l71e8fnfTI+7Q1/HWFayvWOzi6OemeS nIv2fwivnIn8AZAeSUDJ9VYIFgsQOqMukynFo73ndCzNPLYg+V11cB5KQRNQETg4kVSlqTSU miTxr4BIo0Gb9alWr9I6m+ptqqnNptZUtWmr2mpQo2pUNEPTpvSv/JhI7cBN9sdEGn5MhOg6 2sI3xcmzIonj+/hh5ZaDeNIipdXB9Ro7bj24r2q7z8n5aT7u6uwYm/PJ+nggA40AfNQPogIi g2lKhwS9CEfxXpn0T8iaoqfzrV1S9AAjd01Dij4t8m76dupjg9bmxwa1xq6PDeJDJUwR5gNq VGq02oB80Ko1NZj/BHCO04sUEG/BINJul/FrD3GBBsyKSwc34mHhTrjwkymskolp4T7/A/mn JLZWkTAkg1cIMfZzheP+aHw8uCrmCjqIZ3nFfYmMjq4Gl+MRP0+H1kn4XJTkqIqIHbXDk9i3 l+R1Q+p99p48T/JZDKPDe4H0MnluOYEuCj0FTQX6dAX6IwRHwZ99kuu+DlWBZLLmSoOkIvC8 +XanGpvMNpVI8XtKBSDhGsCMXLy/OurDjEjkeACQaP2ccL11vNHX96HbtWirbk51RTFb9WbL 1JIwZE0tnG79zCu1Fm4bl/DCT5sWX2a3Jg2oiZuDvcsByD4aXAyTAEsi2ahxy2k1N5YUenNA PXHLb3rn496VqKO0msorKa1WLVcbT9ZSr/6EQkp9qlp6ACTvT6Iiw5/MWSf3AFf8nMVx5dzZ YNgfXjx2IKQAhMENnOfXU/vkzU91qRQNMHHI/ndwURSFIKfGa4gDWH+AfNtrj1LnkfC6S5Qf pIOFQVyCgkFBCLMoeCZqi/9/FZ34fbYPACxd2oA4dhV/G5MuFN1FvJrX/zN1ZUapJpFIwf3P hklyvmdghvvpJ7K4Mz/vk79BPvvMb0P1Ukdvycy80RIduxlVnemmolT0tqnTavrYLZ2hN1sx UjWauNdTEpcwS6+C6sRkC3+VC6hhuwa1J/Maby9C89HF8GTw7v1VH8xzCXVCf3g06I+KmMrn X5I5PFcYnfbPzrBX4C4mwirFA4RVCVKJCKaTo7N+bzg5GZyJfJJovQYcfLp695Lu/+vSvdDj +HpwOYox589JbURTBs1OnbIZb2q2hfdT+gmqxCSJ8ZKThKl1MDy5iPGPmpIqrlqzKXcqumuQ TXV3jvOU0ivChN5Ra1xvfD4dn5/FRomaknqvWrMpd+q9a5BNvXeO85TeK8KE3lFrXO9x/7eB Bo4QGyVqSuq9as2m3Kn3rkE29d45zlN6rwgTeketKb0vj082R4GmDL2xNZvyab23DJKp97Zx nqU3Eqb1hta43vhVijN1Y4OELUmto8ZMup06bx9gU+MdYzylb0SH6sp/xFQDxMkBZ5Jl2JpW MXqxlf5JVXcPmKXyE2M+R/WIFtV/Q1YwW+IrHEGLyCIRGol9wDh1Je4WSAdXTrYJXELj4gdM SRS3dfNK3/oq+mcejKpUbUH522TNqqEncd3WzgLgbX3NkV6D78eIywvSe0F6f8HGzhObsPoT BNFJVKtOa5qmKLrKdLVS3bEG0iwyVkKaiK+HqlgP1Zf18LIe/sL1kF4AaY+vmYZZb6mK0qgb eksz0x6f7eIpnxZ77o32i0+/+PRf6NMbB2F6RmPo2fWqwepVU1EMtW6a1Wbasze6rZ1748UL hnnx7/+Ef28c3OobDaFft5uNeq1WURRKdZPWGqnPCtM+vdH44s8v/vyf8OcsGL4NeVeZpjbV Cp4q0Ol0M1pvA9tb8HVL+HYr9O0/1yXx33r4so8fGBskXBty7mF9yPuIy2D1fy5Ivtrlz5zx i1P/Fx4pxD/T+jciIn/280kAAA== --------------090502020507090708020509-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 04:44:05 2011 Received: (at 10237) by debbugs.gnu.org; 11 Dec 2011 09:44:05 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZfwz-000295-6y for submit@debbugs.gnu.org; Sun, 11 Dec 2011 04:44:05 -0500 Received: from mail-ey0-f172.google.com ([209.85.215.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZfww-00028s-Ei; Sun, 11 Dec 2011 04:44:04 -0500 Received: by eaad1 with SMTP id d1so1027643eaa.3 for ; Sun, 11 Dec 2011 01:42:56 -0800 (PST) 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=bTUbNmFyxy5GeumMwrBFF/oLIjA6cG5H7tPFaVPVE+U=; b=JQ+945WS8yMjA8GAtC4K4LYZF0GLkZVPxJVLUPpOksAoKtWtbKOofVQdkiBYuKc21q TfX2ylBEJVLds+7mR5kQbuvw8VEgMYTu87cSqFFVDPaJiViqGTxibkha6pmYU/s1ryED WWdcFlWAsfs/gUBbs3gKBUKGQ0RwQsupgpQgQ= Received: by 10.213.29.202 with SMTP id r10mr2731648ebc.52.1323596575722; Sun, 11 Dec 2011 01:42:55 -0800 (PST) Received: from bigio.localnet (host76-49-dynamic.58-82-r.retail.telecomitalia.it. [82.58.49.76]) by mx.google.com with ESMTPS id f47sm25344600eea.1.2011.12.11.01.42.53 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 11 Dec 2011 01:42:54 -0800 (PST) From: Stefano Lattarini To: Paul Eggert Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make Date: Sun, 11 Dec 2011 10:42:44 +0100 User-Agent: KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; ) References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> In-Reply-To: <4EE3E3ED.1010506@cs.ucla.edu> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201112111042.45708.stefano.lattarini@gmail.com> X-Spam-Score: -3.9 (---) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, Eric Blake , 10237@debbugs.gnu.org, skunk@iskunk.org 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 (---) Hi Paul. On Saturday 10 December 2011, Paul Eggert wrote: > On 12/06/11 11:02, Stefano Lattarini wrote: > > If you are interested in accomodating this fringe situation, I will > > then accept a patch on the lines Paul has proposed (with a mandatory > > testcase, otherwise it would be far too easy to regress in such a > > almost-never-excercised corner case). > > OK, a proposed patch is below. It changes the silent-rules test case > to check the new behavior; hope that's what you're asking for. > No, I was asking for a test case that simulates the presence of a make implementation unable to grasp nested variable expansions, that checks that the new code correctly kicks in such a situation (this can be done by grepping configure output and generated Makefile), and that the build process truly works as expected both with `--enable-silent-rules' and with `--disable-silent-rules' (see test `silent.test' for inspiration about how to do so). Otherwise the new code would remain basically uncovered in our testsuite for the very fringe and thorny situation we are trying to fix, which IMO is a big no-no. > Comments are welcome. > See them inlined below. > The patch below is just the human-edited parts. A full patch > (including the autogenerated parts) is attached, as a compressed file. > First nit: since this patch is a basically a bugfix (albeit for a very corner-case bug), I think it should be applied to the maintenance line of automake. So, could you please rebase your patch on maint? Thanks. > automake: port silent-rules option to POSIX make > s/POSIX make/fringe make implementations/, maybe? > This fixes two problems reported for Automake (Bug#9928, Bug#10237) > and is in response to a bug report for building coreutils on > HP NonStop OS (Bug#10234). > A brief description of the problem here would be nice. Would you mind condensing one from the mailing list discussions? > The basic idea is that instead of > generating Makefile.in lines like "AM_V_CC = $(am__v_CC_$(V))", > we generate "AM_V_CC = $(am__v_CC_@am__V@)". We then AC_SUBST > $(V) for @am__V@ in the usual case where `make' supports > nested variables, and substitute 1 (or 0) otherwise. > Here I'd add something like: With this change, make implementations that doesn't grasp nested variable expansions will still be able to run Makefile generated using the `silent-rules' option; of course, they won't allow the user to override the make verbosity at runtime through redefintion of $(V) (as in "make V=0"); but this is still an improvement over not being able to work at all. > Similarly for usages like $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). > * NEWS: Document this. > * automake.in (define_verbose_var): When defining the variable, > use @am__V@ rather than $(V), > and likewise for @am__DEFAULT_VERBOSITY@ and $(AM_DEFAULT_VERBOSITY). > Maybe substitute this with a simpler "and @am__DEFAULT_VERBOSITY@ rather than $(AM_DEFAULT_VERBOSITY)" ? > (handle_options): silent-rules no longer overrides > portability-recursive. > Bad idea, unless you also change the documentation in the manual about how to write custom "silenceable rules": You can add your own variables, so strings of your own choice are shown. The following snippet shows how you would define your own equivalent of AM_V_GEN: pkg_verbose = $(pkg_verbose_$(V)) pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY)) pkg_verbose_0 = @echo GEN $@; foo: foo.in $(pkg_verbose)cp $(srcdir)/foo.in $@ > * doc/automake.texi (Invoking Automake): silent-rules no longer > overrides portability-recursive. > (Automake silent-rules Option): Explain new system. > * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports > nested variables, and substitute am__V and am__DEFAULT_VERBOSITY > accordingly. > * tests/silent-nowarn.test: Check that silent-rules no longer > overrides portability-recursive. > diff --git a/NEWS b/NEWS > index da9af08..615f420 100644 > --- a/NEWS > +++ b/NEWS > @@ -1,3 +1,14 @@ > +* Changes to automake: > + > + - The `silent-rules' option now generates working makefiles even for > + the uncommon `make' implementations that do not support the > + nested-variables extension to POSIX 2008. For such `make' > + implementations, whether a build is silent is determined at > + configure time, and cannot be overridden at make time with `make > + V=0' or `make V=1'. Since the `silent-rules' option no longer > + requires nested variables, it no longer disables the > + nested-variables warning. > + > This NEWS entry should go in the "Bugs fixed in 1.11a" section, "Bugs introduced by 1.11" subsection. > diff --git a/automake.in b/automake.in > index 0b6d014..d61af86 100644 > --- a/automake.in > +++ b/automake.in > @@ -1141,9 +1141,8 @@ sub define_verbose_var ($$) > my $silent_var = $pvar . '_0'; > if (option 'silent-rules') > { > - # Using `$V' instead of `$(V)' breaks IRIX make. > Here, I'd add a pointer to comments in m4/silent.m4, since this code has become decidedly non-obvious enough to deserve an examplnation. > - define_variable ($var, '$(' . $pvar . '_$(V))', INTERNAL); > - define_variable ($pvar . '_', '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))', INTERNAL); > + define_variable ($var, '$(' . $pvar . '_@'.'am__V'.'@)', INTERNAL); > + define_variable ($pvar . '_', '$(' . $pvar . '_@'.'am__DEFAULT_VERBOSITY'.'@)', INTERNAL); > Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE, $val, > '', INTERNAL, VAR_ASIS) > if (! vardef ($silent_var, TRUE)); > @@ -1236,10 +1235,6 @@ sub handle_options > return 1 if process_option_list (@options); > } > > - # Override portability-recursive warning. > - switch_warning ('no-portability-recursive') > - if option 'silent-rules'; > - > Don't do this without also updating the documentation. Thanks. > if ($strictness == GNITS) > { > set_option ('readme-alpha', INTERNAL); > diff --git a/doc/automake.texi b/doc/automake.texi > index e937715..8214787 100644 > --- a/doc/automake.texi > +++ b/doc/automake.texi > @@ -2702,8 +2702,6 @@ variables. > The categories output by default are @samp{syntax} and > @samp{unsupported}. Additionally, @samp{gnu} and @samp{portability} > are enabled in @option{--gnu} and @option{--gnits} strictness. > -On the other hand, the @option{silent-rules} options (@pxref{Options}) > -turns off portability warnings about recursive variable expansions. > > @c Checked by extra-portability.test > Turning off @samp{portability} will also turn off @samp{extra-portability}, > @@ -10141,19 +10139,14 @@ Users who prefer to have silent rules enabled by default can edit their > default to @samp{yes}. This should still allow disabling silent rules > at @command{configure} time and at @command{make} time. > > -@c FIXME: there's really a need to specify this explicitly? > -For portability to different @command{make} implementations, package authors > -are advised to not set the variable @code{V} inside the @file{Makefile.am} > -file, to allow the user to override the value for subdirectories as well. > - Whay are you removing this advice? > -The current implementation of this feature relies on a non-POSIX, but in > -practice rather widely supported @file{Makefile} construct of nested > -variable expansion @samp{$(@var{var1}$(V))}. Do not use the > -@option{silent-rules} option if your package needs to build with > -@command{make} implementations that do not support it. The > -@option{silent-rules} option turns off warnings about recursive variable > -expansion, which are in turn enabled by @option{-Wportability} > -(@pxref{Invoking Automake}). > +The current implementation of this feature normally uses nested > +variable expansion @samp{$(@var{var1}$(V))}, a @file{Makefile} feature > +that is not required by POSIX 2008 but is widely supported in > +practice. On the rare @command{make} implementations that do not > +support nested variable expansion, whether rules are silent is always > +determined at configure time, and cannot be overridden at make time. > > +Future versions of POSIX are likely to require nested variable > +expansion, so this minor limitation should go away with time. > > @vindex @code{AM_V_GEN} > @vindex @code{AM_V_at} > diff --git a/m4/silent.m4 b/m4/silent.m4 > index 432dd45..2a4446c 100644 > --- a/m4/silent.m4 > +++ b/m4/silent.m4 > @@ -5,7 +5,7 @@ > # gives unlimited permission to copy and/or distribute it, > # with or without modifications, as long as this notice is preserved. > > -# serial 2 > +# serial 3 > > # AM_SILENT_RULES([DEFAULT]) > # -------------------------- > @@ -25,6 +25,34 @@ case $enable_silent_rules in @%:@ ((( > no) AM_DEFAULT_VERBOSITY=1;; > *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; > esac > +am_make=${MAKE-make} > +AC_CACHE_CHECK([whether $am_make supports nested variables], > Here, I'd add a short comment for why this is needed, give a pointer to the bug reports this code is trying to fix. For example: # Some fringe make implementations (e.g., NonStop make and # NextStep make) don't grasp nested variable expansions. # See automake bug#10237 and bug#9928. > + [am_cv_make_nested_variables], > Hmmm... maybe a name like `am_cv_make_support_nested_variables' would be more appropriate? Or would it be just longer? > + [am_makefile=' > +TRUE=$(BAR$(V)) > +BAR0=false > +BAR1=true > +V=1 > +am__doit: > + @$(TRUE) > +.PHONY: am__doit > +' > +if echo "$am_makefile" | $am_make -s -f - >/dev/null 2>&1; then > `-s' make option shouldn't be needed here; also, I'd use AS_ECHO instead of bare echo, even if that is probably not required (call it extra safety, or cargo-cult programmming if you want :-) > + am_cv_make_nested_variables=yes > +else > + am_cv_make_nested_variables=no > +fi]) > +if test $am_cv_make_nested_variables = yes; then > + am__V='$(V)' > Please re-add here the comment you've removed from automake.in: # Using `$V' instead of `$(V)' would break IRIX make. am__V='$(V)' > + am__DEFAULT_VERBOSITY='$(AM_DEFAULT_VERBOSITY)' > +else > + am__V=$AM_DEFAULT_VERBOSITY > + am__DEFAULT_VERBOSITY=$AM_DEFAULT_VERBOSITY > +fi > +AC_SUBST([am__V])dnl > +AM_SUBST_NOTMAKE([am__V])dnl > +AC_SUBST([am__DEFAULT_VERBOSITY])dnl > +AM_SUBST_NOTMAKE([am__DEFAULT_VERBOSITY])dnl > AC_SUBST([AM_DEFAULT_VERBOSITY])dnl > AM_BACKSLASH='\' > AC_SUBST([AM_BACKSLASH])dnl > diff --git a/tests/silent-nowarn.test b/tests/silent-nowarn.test > index f0f5e70..9742bc3 100755 > --- a/tests/silent-nowarn.test > +++ b/tests/silent-nowarn.test > @@ -14,7 +14,7 @@ > # You should have received a copy of the GNU General Public License > # along with this program. If not, see . > > -# Check that the 'silent-rules' mode suppresses the warnings for recursive > +# Check that the 'silent-rules' mode does not suppress warnings for recursive > # make variable expansions. This should happen regardless of whether and > # where these warnings are requested. > > @@ -39,6 +39,5 @@ END > touch AUTHORS ChangeLog COPYING INSTALL NEWS README THANKS > > $ACLOCAL > -$AUTOMAKE --gnu -Wall -Wportability-recursive > - > -: > +AUTOMAKE_fails --gnu -Wall -Wportability-recursive > +grep 'recursive variable expansion' stderr > Please keep the trailing `:' here: AUTOMAKE_fails --gnu -Wall -Wportability-recursive grep 'recursive variable expansion' stderr : Thanks, Stefano From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 20 20:32:23 2011 Received: (at 10237) by debbugs.gnu.org; 21 Dec 2011 01:32: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 1RdB2c-0004x9-JZ for submit@debbugs.gnu.org; Tue, 20 Dec 2011 20:32:23 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RdB2Y-0004ww-9r; Tue, 20 Dec 2011 20:32:21 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 21E02A60002; Tue, 20 Dec 2011 17:30:16 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 87nDmT80jTnD; Tue, 20 Dec 2011 17:30:13 -0800 (PST) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 19F3939E8006; Tue, 20 Dec 2011 17:30:13 -0800 (PST) Message-ID: <4EF136AC.4090307@cs.ucla.edu> Date: Tue, 20 Dec 2011 17:30:20 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> In-Reply-To: <201112111042.45708.stefano.lattarini@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, Eric Blake , 10237@debbugs.gnu.org, skunk@iskunk.org 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.9 (--) On 12/11/11 01:42, Stefano Lattarini wrote: > I was asking for a test case that simulates the presence of a > make implementation unable to grasp nested variable expansions Ah, OK, revised patch enclosed below. This patch should address your other comments too. Thanks for the careful review. >From 07edd4aa81af2a8fb982427705a2009c2b7eb0bf Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 20 Dec 2011 17:29:06 -0800 Subject: [PATCH] automake: silent-rules no longer requires nested vars This fixes two problems reported for Automake (Bug#9928, Bug#10237) and is in response to a bug report for building coreutils on HP NonStop OS (Bug#10234). The problem is that HP NonStop 'make' treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that expands a macro with the funny name am__v_CC_$(V instead of the desired name am__v_CC_1 or am__v_CC_0, and since the funny macro is not defined the line is equivalent to "AM_V_CC = )"; this inserts a stray ")" when $(AM_V_CC) is used, which eventually causes 'make' to fail. The basic idea is that instead of generating Makefile.in lines like "AM_V_CC = $(am__v_CC_$(V))", we generate "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ in the usual case where `make' supports nested variables, and substitute 1 (or 0) otherwise. Similarly for usages like $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). With this change, make implementations that doesn't grasp nested variable expansions will still be able to run Makefiles generated using the silent-rules option. They won't allow the user to override the make verbosity at runtime through redefinition of $(V) (as in "make V=0"); but this is still an improvement over not being able to work at all. * NEWS: Document this. * automake.in (define_verbose_var): When defining the variable, use @AM_V@ rather than $(V), and use @AM_AM_DEFAULT_VERBOSITY@ rather than $(AM_DEFAULT_VERBOSITY). * doc/automake.texi (Automake silent-rules Option): Explain new system. * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports nested variables, and substitute AM_V and AM_AM_DEFAULT_VERBOSITY accordingly. * tests/silent-nested-vars.test: New file. * tests/Makefile.am (TESTS): Add it. * tests/Makefile.in: Regenerate. --- ChangeLog | 40 +++++++++++++++ NEWS | 7 +++ automake.in | 9 ++- doc/automake.texi | 22 +++++---- m4/silent.m4 | 33 +++++++++++- tests/Makefile.am | 1 + tests/Makefile.in | 1 + tests/silent-nested-vars.test | 111 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 209 insertions(+), 15 deletions(-) create mode 100755 tests/silent-nested-vars.test diff --git a/ChangeLog b/ChangeLog index 49b6e8b..b2d6e11 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,43 @@ +2011-12-11 Paul Eggert + + automake: silent-rules no longer requires nested vars + + This fixes two problems reported for Automake (Bug#9928, Bug#10237) + and is in response to a bug report for building coreutils on HP + NonStop OS (Bug#10234). The problem is that HP NonStop 'make' + treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that + expands a macro with the funny name am__v_CC_$(V instead of the + desired name am__v_CC_1 or am__v_CC_0, and since the funny macro + is not defined the line is equivalent to "AM_V_CC = )"; this + inserts a stray ")" when $(AM_V_CC) is used, which eventually + causes 'make' to fail. + + The basic idea is that instead of generating Makefile.in lines like + "AM_V_CC = $(am__v_CC_$(V))", we generate + "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ + in the usual case where `make' supports nested variables, + and substitute 1 (or 0) otherwise. Similarly for usages like + $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). + + With this change, make implementations that doesn't grasp nested + variable expansions will still be able to run Makefiles generated + using the silent-rules option. They won't allow the user to + override the make verbosity at runtime through redefinition of + $(V) (as in "make V=0"); but this is still an improvement over not + being able to work at all. + + * NEWS: Document this. + * automake.in (define_verbose_var): When defining the variable, + use @AM_V@ rather than $(V), and use + @AM_AM_DEFAULT_VERBOSITY@ rather than $(AM_DEFAULT_VERBOSITY). + * doc/automake.texi (Automake silent-rules Option): Explain new system. + * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports + nested variables, and substitute AM_V and AM_AM_DEFAULT_VERBOSITY + accordingly. + * tests/silent-nested-vars.test: New file. + * tests/Makefile.am (TESTS): Add it. + * tests/Makefile.in: Regenerate. + 2011-12-20 Peter Rosin tests: fix spurious failure on systems lacking unistd.h diff --git a/NEWS b/NEWS index 46803a7..58c90c9 100644 --- a/NEWS +++ b/NEWS @@ -74,6 +74,13 @@ Bugs fixed in 1.11.0a: not used, `make' output no longer contains spurious backslash-only lines, thus once again matching what Automake did before 1.11. + - The `silent-rules' option now generates working makefiles even for + the uncommon `make' implementations that do not support the + nested-variables extension to POSIX 2008. For such `make' + implementations, whether a build is silent is determined at + configure time, and cannot be overridden at make time with `make + V=0' or `make V=1'. + - The AM_COND_IF macro also works if the shell expression for the conditional is no longer valid for the condition. diff --git a/automake.in b/automake.in index db7f3c6..ae2011c 100755 --- a/automake.in +++ b/automake.in @@ -1161,9 +1161,12 @@ sub define_verbose_var ($$) my $silent_var = $pvar . '_0'; if (option 'silent-rules') { - # Using `$V' instead of `$(V)' breaks IRIX make. - define_variable ($var, '$(' . $pvar . '_$(V))', INTERNAL); - define_variable ($pvar . '_', '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))', INTERNAL); + # For typical `make's, `configure' replaces AM_V (inside @@) with $(V) + # and AM_AM_DEFAULT_VERBOSITY (inside @@) with $(AM_DEFAULT_VERBOSITY). + # For strict POSIX 2008 `make's, it replaces them with 0 or 1 instead. + # See AM_SILENT_RULES in m4/silent.m4. + define_variable ($var, '$(' . $pvar . '_@'.'AM_V'.'@)', INTERNAL); + define_variable ($pvar . '_', '$(' . $pvar . '_@'.'AM_AM_DEFAULT_VERBOSITY'.'@)', INTERNAL); Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE, $val, '', INTERNAL, VAR_ASIS) if (! vardef ($silent_var, TRUE)); diff --git a/doc/automake.texi b/doc/automake.texi index a5f857d..1a689b6 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -10130,18 +10130,20 @@ For portability to different @command{make} implementations, package authors are advised to not set the variable @code{V} inside the @file{Makefile.am} file, to allow the user to override the value for subdirectories as well. -The current implementation of this feature relies on a non-POSIX, but in -practice rather widely supported @file{Makefile} construct of nested -variable expansion @samp{$(@var{var1}$(V))}. Do not use the -@option{silent-rules} option if your package needs to build with -@command{make} implementations that do not support it. The -@option{silent-rules} option turns off warnings about recursive variable -expansion, which are in turn enabled by @option{-Wportability} -(@pxref{Invoking Automake}). +The current implementation of this feature normally uses nested +variable expansion @samp{$(@var{var1}$(V))}, a @file{Makefile} feature +that is not required by POSIX 2008 but is widely supported in +practice. On the rare @command{make} implementations that do not +support nested variable expansion, whether rules are silent is always +determined at configure time, and cannot be overridden at make time. +Future versions of POSIX are likely to require nested variable +expansion, so this minor limitation should go away with time. @vindex @code{AM_V_GEN} @vindex @code{AM_V_at} @vindex @code{AM_DEFAULT_VERBOSITY} +@vindex @code{AM_V} +@vindex @code{AM_AM_DEFAULT_VERBOSITY} To extend the silent mode to your own rules, you have two choices: @itemize @bullet @@ -10157,8 +10159,8 @@ The following snippet shows how you would define your own equivalent of @code{AM_V_GEN}: @example -pkg_verbose = $(pkg_verbose_$(V)) -pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY)) +pkg_verbose = $(pkg_verbose_@@AM_V@@) +pkg_verbose_ = $(pkg_verbose_@@AM_AM_DEFAULT_VERBOSITY@@) pkg_verbose_0 = @@echo PKG-GEN $@@; foo: foo.in diff --git a/m4/silent.m4 b/m4/silent.m4 index 6d2a1a2..1928feb 100644 --- a/m4/silent.m4 +++ b/m4/silent.m4 @@ -1,11 +1,11 @@ ## -*- Autoconf -*- -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 +# serial 2 # AM_SILENT_RULES([DEFAULT]) # -------------------------- @@ -20,6 +20,35 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)'dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_AM_DEFAULT_VERBOSITY='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_AM_DEFAULT_VERBOSITY=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_AM_DEFAULT_VERBOSITY])dnl +AM_SUBST_NOTMAKE([AM_AM_DEFAULT_VERBOSITY])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl diff --git a/tests/Makefile.am b/tests/Makefile.am index 831906b..920d994 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -751,6 +751,7 @@ silent-many-gcc.test \ silent-many-generic.test \ silent-lex-gcc.test \ silent-lex-generic.test \ +silent-nested-vars.test \ silent-yacc-gcc.test \ silent-yacc-generic.test \ silent-configsite.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 3ad0146..470ed6c 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1035,6 +1035,7 @@ silent-many-gcc.test \ silent-many-generic.test \ silent-lex-gcc.test \ silent-lex-generic.test \ +silent-nested-vars.test \ silent-yacc-gcc.test \ silent-yacc-generic.test \ silent-configsite.test \ diff --git a/tests/silent-nested-vars.test b/tests/silent-nested-vars.test new file mode 100755 index 0000000..6716930 --- /dev/null +++ b/tests/silent-nested-vars.test @@ -0,0 +1,111 @@ +#!/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 silent-rules mode, on 'make' implementations that do not +# support nested variables. + +. ./defs || Exit 1 + +set -e + +mkdir sub + +cat >>configure.in <<'EOF' +AM_SILENT_RULES +AC_CONFIG_FILES([sub/Makefile]) +AC_PROG_CC +AM_PROG_CC_C_O +AC_OUTPUT +EOF + +cat > Makefile.am <<'EOF' +# Need generic and non-generic rules. +bin_PROGRAMS = foo bar +bar_CFLAGS = $(AM_CFLAGS) +SUBDIRS = sub +EOF + +cat > sub/Makefile.am <<'EOF' +AUTOMAKE_OPTIONS = subdir-objects +# Need generic and non-generic rules. +bin_PROGRAMS = baz bla +bla_CFLAGS = $(AM_CFLAGS) +EOF + +cat > foo.c <<'EOF' +int main () +{ + return 0; +} +EOF +cp foo.c bar.c +cp foo.c sub/baz.c +cp foo.c sub/bla.c + +cat >mymake <<'EOF' +#! /bin/sh +makerules= + +case $1 in + -f) + makefile=$2 + case $2 in + -) makerules=`cat` || exit ;; + esac ;; + *) + for makefile in makefile Makefile; do + test -f $makefile && break + done ;; +esac + +if printf '%s\n' "$makerules" | LC_ALL=C grep '\$([a-zA-Z0-9_]*\$' $makefile +then + echo >&2 "mymake: $makefile contains nested variables" + exit 1 +fi +exec $mymake_MAKE "$@" +EOF +chmod a+x mymake +mymake_MAKE=${MAKE-make} +export mymake_MAKE + +$ACLOCAL +$AUTOMAKE --add-missing +$AUTOCONF + +./configure --enable-silent-rules MAKE=./mymake +./mymake >stdout || { cat stdout; Exit 1; } +cat stdout +$EGREP ' (-c|-o)' stdout && Exit 1 +grep 'mv ' stdout && Exit 1 +grep 'CC .*foo\.' stdout +grep 'CC .*bar\.' stdout +grep 'CC .*baz\.' stdout +grep 'CC .*bla\.' stdout +grep 'CCLD .*foo' stdout +grep 'CCLD .*bar' stdout +grep 'CCLD .*baz' stdout +grep 'CCLD .*bla' stdout + +./mymake clean +./configure --disable-silent-rules MAKE=./mymake +./mymake >stdout || { cat stdout; Exit 1; } +cat stdout +grep ' -c' stdout +grep ' -o foo' stdout +$EGREP '(CC|LD) ' stdout && Exit 1 + +: -- 1.7.6.4 From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 21 07:23:40 2011 Received: (at 10237) by debbugs.gnu.org; 21 Dec 2011 12:23:40 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RdLCt-0003j0-QA for submit@debbugs.gnu.org; Wed, 21 Dec 2011 07:23:40 -0500 Received: from mail-vx0-f172.google.com ([209.85.220.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RdLCr-0003il-0Q; Wed, 21 Dec 2011 07:23:38 -0500 Received: by vcbfk13 with SMTP id fk13so5450309vcb.3 for ; Wed, 21 Dec 2011 04:21:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=Ng1/ANwQgFKHhRCkl6x/VEJ7N4/BYQyyn3kQlE7dxXc=; b=LgYfs3UkrOaYXIyH6KJkUKDYYeg2k0+63V4A0Tu3fp6eKXTNKMH+a49/x+BGpft+Ae NyouNxs8imzaSD28E6CTXZGbvQwIK8FcBFGD65Aafyd7Y4rpy80Pg4myxWzinka7U+Ak 9in01d7nEUn5liagyHxwxETZzhzvt5gVifRXI= Received: by 10.220.149.10 with SMTP id r10mr4108987vcv.38.1324470092179; Wed, 21 Dec 2011 04:21:32 -0800 (PST) Received: from [79.10.95.230] (host230-95-dynamic.10-79-r.retail.telecomitalia.it. [79.10.95.230]) by mx.google.com with ESMTPS id hj10sm4167227vdb.0.2011.12.21.04.21.29 (version=SSLv3 cipher=OTHER); Wed, 21 Dec 2011 04:21:30 -0800 (PST) Message-ID: <4EF1CF46.90200@gmail.com> Date: Wed, 21 Dec 2011 13:21:26 +0100 From: Stefano Lattarini User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.24) Gecko/20111114 Icedove/3.1.16 MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#9928: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> In-Reply-To: <4EF136AC.4090307@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.8 (---) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, Eric Blake , 10237@debbugs.gnu.org, skunk@iskunk.org 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.8 (---) Hi Paul, thanks for the respin. My comments and objections are inlined. On 12/21/2011 02:30 AM, Paul Eggert wrote: > On 12/11/11 01:42, Stefano Lattarini wrote: > >> I was asking for a test case that simulates the presence of a >> make implementation unable to grasp nested variable expansions > > Ah, OK, revised patch enclosed below. This patch should address > your other comments too. Thanks for the careful review. > > From 07edd4aa81af2a8fb982427705a2009c2b7eb0bf Mon Sep 17 00:00:00 2001 > From: Paul Eggert > Date: Tue, 20 Dec 2011 17:29:06 -0800 > Subject: [PATCH] automake: silent-rules no longer requires nested vars > This sounds a little misleading to me; i.e., it sounds like we have reimplemented the silent-rules feature to work completely and at its best even with make implementations not supporting nested variables, which is not true. What about this instead? silent-rules: provide fallback for makes without nested variables support > This fixes two problems reported for Automake (Bug#9928, Bug#10237) > and is in response to a bug report for building coreutils on HP > NonStop OS (Bug#10234). The problem is that HP NonStop 'make' > treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that > expands a macro with the funny name am__v_CC_$(V instead of the > desired name am__v_CC_1 or am__v_CC_0, and since the funny macro > is not defined the line is equivalent to "AM_V_CC = )"; this > inserts a stray ")" when $(AM_V_CC) is used, which eventually > causes 'make' to fail. > Very good explanation. > The basic idea is that instead of generating Makefile.in lines like > "AM_V_CC = $(am__v_CC_$(V))", we generate > "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ > in the usual case where `make' supports nested variables, > and substitute 1 (or 0) otherwise. Similarly for usages like > $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). > > With this change, make implementations that doesn't grasp nested > variable expansions will still be able to run Makefiles generated > using the silent-rules option. They won't allow the user to > override the make verbosity at runtime through redefinition of > $(V) (as in "make V=0"); but this is still an improvement over not > being able to work at all. > And all this is good too. Thanks. > * NEWS: Document this. > * automake.in (define_verbose_var): When defining the variable, > use @AM_V@ rather than $(V), and use > @AM_AM_DEFAULT_VERBOSITY@ rather than $(AM_DEFAULT_VERBOSITY). > * doc/automake.texi (Automake silent-rules Option): Explain new system. > * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports > nested variables, and substitute AM_V and AM_AM_DEFAULT_VERBOSITY > s/AM_AM_DEFAULT_VERBOSITY/AM_V_DEFAULT_VERBOSITY/ ? > accordingly. > * tests/silent-nested-vars.test: New file. > Micro-nit: I'd prefer s/file/test/ here (but this is not a requirement for an ACK!). > * tests/Makefile.am (TESTS): Add it. > * tests/Makefile.in: Regenerate. > Small nit: we don't mention changes to autogenerated-but-committed files in our ChangeLog entries and commit messages. > --- > ChangeLog | 40 +++++++++++++++ > NEWS | 7 +++ > automake.in | 9 ++- > doc/automake.texi | 22 +++++---- > m4/silent.m4 | 33 +++++++++++- > tests/Makefile.am | 1 + > tests/Makefile.in | 1 + > tests/silent-nested-vars.test | 111 +++++++++++++++++++++++++++++++++++++++++ > 8 files changed, 209 insertions(+), 15 deletions(-) > create mode 100755 tests/silent-nested-vars.test > > diff --git a/ChangeLog b/ChangeLog > index 49b6e8b..b2d6e11 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,43 @@ > +2011-12-11 Paul Eggert > + > [SNIP ChangeLog entry] [The same comments given above for the git commit message applies, obviously]. > diff --git a/NEWS b/NEWS > index 46803a7..58c90c9 100644 > --- a/NEWS > +++ b/NEWS > @@ -74,6 +74,13 @@ Bugs fixed in 1.11.0a: > not used, `make' output no longer contains spurious backslash-only > lines, thus once again matching what Automake did before 1.11. > > + - The `silent-rules' option now generates working makefiles even for > + the uncommon `make' implementations that do not support the > + nested-variables extension to POSIX 2008. For such `make' > + implementations, whether a build is silent is determined at > + configure time, and cannot be overridden at make time with `make > + V=0' or `make V=1'. > + Very clear, thanks. > - The AM_COND_IF macro also works if the shell expression for the conditional > is no longer valid for the condition. > > diff --git a/automake.in b/automake.in > index db7f3c6..ae2011c 100755 > --- a/automake.in > +++ b/automake.in > @@ -1161,9 +1161,12 @@ sub define_verbose_var ($$) > my $silent_var = $pvar . '_0'; > if (option 'silent-rules') > { > - # Using `$V' instead of `$(V)' breaks IRIX make. > - define_variable ($var, '$(' . $pvar . '_$(V))', INTERNAL); > - define_variable ($pvar . '_', '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))', INTERNAL); > + # For typical `make's, `configure' replaces AM_V (inside @@) with $(V) > + # and AM_AM_DEFAULT_VERBOSITY (inside @@) with $(AM_DEFAULT_VERBOSITY). > AM_AM_DEFAULT_VERBOSITY ? More instances below, in this and other files. > + # For strict POSIX 2008 `make's, it replaces them with 0 or 1 instead. > + # See AM_SILENT_RULES in m4/silent.m4. > + define_variable ($var, '$(' . $pvar . '_@'.'AM_V'.'@)', INTERNAL); > + define_variable ($pvar . '_', '$(' . $pvar . '_@'.'AM_AM_DEFAULT_VERBOSITY'.'@)', INTERNAL); > Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE, $val, > '', INTERNAL, VAR_ASIS) > if (! vardef ($silent_var, TRUE)); > diff --git a/doc/automake.texi b/doc/automake.texi > index a5f857d..1a689b6 100644 > --- a/doc/automake.texi > +++ b/doc/automake.texi > @@ -10130,18 +10130,20 @@ For portability to different @command{make} implementations, package authors > are advised to not set the variable @code{V} inside the @file{Makefile.am} > file, to allow the user to override the value for subdirectories as well. > A > -The current implementation of this feature relies on a non-POSIX, but in > -practice rather widely supported @file{Makefile} construct of nested > -variable expansion @samp{$(@var{var1}$(V))}. Do not use the > -@option{silent-rules} option if your package needs to build with > -@command{make} implementations that do not support it. The > -@option{silent-rules} option turns off warnings about recursive variable > -expansion, which are in turn enabled by @option{-Wportability} > -(@pxref{Invoking Automake}). > +The current implementation of this feature normally uses nested > +variable expansion @samp{$(@var{var1}$(V))}, a @file{Makefile} feature > +that is not required by POSIX 2008 but is widely supported in > +practice. On the rare @command{make} implementations that do not > +support nested variable expansion, whether rules are silent is always > +determined at configure time, and cannot be overridden at make time. > +Future versions of POSIX are likely to require nested variable > +expansion, so this minor limitation should go away with time. > Good and clear explanation. > @vindex @code{AM_V_GEN} > @vindex @code{AM_V_at} > @vindex @code{AM_DEFAULT_VERBOSITY} > +@vindex @code{AM_V} > +@vindex @code{AM_AM_DEFAULT_VERBOSITY} > > To extend the silent mode to your own rules, you have two choices: > > @itemize @bullet > @@ -10157,8 +10159,8 @@ The following snippet shows how you would define your own equivalent of > @code{AM_V_GEN}: > > @example > -pkg_verbose = $(pkg_verbose_$(V)) > -pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY)) > +pkg_verbose = $(pkg_verbose_@@AM_V@@) > +pkg_verbose_ = $(pkg_verbose_@@AM_AM_DEFAULT_VERBOSITY@@) > Do we have a test verifying that the previously documented usage: pkg_verbose = $(pkg_verbose_$(V)) pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY)) still works with make implementations that support nested variable expansion, as it did before this change? More importantly, do we have a test verifying that the new documented usage: pkg_verbose = $(pkg_verbose_@AM_V@) pkg_verbose_ = $(pkg_verbose_@AM_AM_DEFAULT_VERBOSITY@) actually works as advised? > pkg_verbose_0 = @@echo PKG-GEN $@@; > > foo: foo.in > diff --git a/m4/silent.m4 b/m4/silent.m4 > index 6d2a1a2..1928feb 100644 > --- a/m4/silent.m4 > +++ b/m4/silent.m4 > @@ -1,11 +1,11 @@ > ## -*- Autoconf -*- > -# Copyright (C) 2009 Free Software Foundation, Inc. > +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. > # > # This file is free software; the Free Software Foundation > # gives unlimited permission to copy and/or distribute it, > # with or without modifications, as long as this notice is preserved. > > -# serial 1 > +# serial 2 > > # AM_SILENT_RULES([DEFAULT]) > # -------------------------- > @@ -20,6 +20,35 @@ yes) AM_DEFAULT_VERBOSITY=0;; > no) AM_DEFAULT_VERBOSITY=1;; > *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; > esac > +dnl > +dnl A few `make' implementations (e.g., NonStop OS and NextStep) > +dnl do not support nested variable expansions. > +dnl See automake bug#9928 and bug#10237. > +am_make=${MAKE-make} > +AC_CACHE_CHECK([whether $am_make supports nested variables], > + [am_cv_make_support_nested_variables], > + [if AS_ECHO([['TRUE=$(BAR$(V)) > +BAR0=false > +BAR1=true > +V=1 > +am__doit: > + @$(TRUE) > +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then > + am_cv_make_support_nested_variables=yes > +else > + am_cv_make_support_nested_variables=no > +fi]) > +if test $am_cv_make_support_nested_variables = yes; then > + AM_V='$(V)'dnl Using `$V' instead of `$(V)' breaks IRIX make. > Keep this comment on a separate line maybe? That would seem clearer to me: # Using `$V' instead of `$(V)' breaks IRIX make. AM_V='$(V)' > + AM_AM_DEFAULT_VERBOSITY='$(AM_DEFAULT_VERBOSITY)' > +else > + AM_V=$AM_DEFAULT_VERBOSITY > + AM_AM_DEFAULT_VERBOSITY=$AM_DEFAULT_VERBOSITY > +fi > +AC_SUBST([AM_V])dnl > +AM_SUBST_NOTMAKE([AM_V])dnl > +AC_SUBST([AM_AM_DEFAULT_VERBOSITY])dnl > +AM_SUBST_NOTMAKE([AM_AM_DEFAULT_VERBOSITY])dnl > AC_SUBST([AM_DEFAULT_VERBOSITY])dnl > AM_BACKSLASH='\' > AC_SUBST([AM_BACKSLASH])dnl > diff --git a/tests/Makefile.am b/tests/Makefile.am > index 831906b..920d994 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -751,6 +751,7 @@ silent-many-gcc.test \ > silent-many-generic.test \ > silent-lex-gcc.test \ > silent-lex-generic.test \ > +silent-nested-vars.test \ > silent-yacc-gcc.test \ > silent-yacc-generic.test \ > silent-configsite.test \ > diff --git a/tests/Makefile.in b/tests/Makefile.in > index 3ad0146..470ed6c 100644 > --- a/tests/Makefile.in > +++ b/tests/Makefile.in > @@ -1035,6 +1035,7 @@ silent-many-gcc.test \ > silent-many-generic.test \ > silent-lex-gcc.test \ > silent-lex-generic.test \ > +silent-nested-vars.test \ > silent-yacc-gcc.test \ > silent-yacc-generic.test \ > silent-configsite.test \ > diff --git a/tests/silent-nested-vars.test b/tests/silent-nested-vars.test > new file mode 100755 > index 0000000..6716930 > --- /dev/null > +++ b/tests/silent-nested-vars.test > @@ -0,0 +1,111 @@ > +#!/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 silent-rules mode, on 'make' implementations that do not > +# support nested variables. > Could you please add a reference to the relevant bug numbers here as well? Thanks. > + > +. ./defs || Exit 1 > + > +set -e > + > +mkdir sub > + > +cat >>configure.in <<'EOF' > +AM_SILENT_RULES > +AC_CONFIG_FILES([sub/Makefile]) > +AC_PROG_CC > +AM_PROG_CC_C_O > +AC_OUTPUT > +EOF > + > +cat > Makefile.am <<'EOF' > +# Need generic and non-generic rules. > +bin_PROGRAMS = foo bar > +bar_CFLAGS = $(AM_CFLAGS) > +SUBDIRS = sub > +EOF > + > +cat > sub/Makefile.am <<'EOF' > +AUTOMAKE_OPTIONS = subdir-objects > +# Need generic and non-generic rules. > +bin_PROGRAMS = baz bla > +bla_CFLAGS = $(AM_CFLAGS) > +EOF > + Maybe trying out also subdir-objects is an overkill in the context of this patch ... Oh well, than can be fixed by a later patch if the need arise, so let's not worry about it now. > +cat > foo.c <<'EOF' > +int main () > +{ > + return 0; > +} > +EOF > +cp foo.c bar.c > +cp foo.c sub/baz.c > +cp foo.c sub/bla.c > + > +cat >mymake <<'EOF' > +#! /bin/sh > +makerules= > + > +case $1 in > + -f) > + makefile=$2 > + case $2 in > + -) makerules=`cat` || exit ;; > + esac ;; > + *) > + for makefile in makefile Makefile; do > + test -f $makefile && break > + done ;; > +esac > + > +if printf '%s\n' "$makerules" | LC_ALL=C grep '\$([a-zA-Z0-9_]*\$' $makefile > This seems wrong, as grep will not consider its standard input when given a non-empty argument. Or am I missing something? > +then > + echo >&2 "mymake: $makefile contains nested variables" > + exit 1 > +fi > +exec $mymake_MAKE "$@" > What if we had "-f -" among the arguments? The stdin meant for make will result to be already consumed by the previous `cat`... > +EOF > +chmod a+x mymake > +mymake_MAKE=${MAKE-make} > +export mymake_MAKE > + I'd add a sanity check here to verify that the `mymake' script really rejects Makefiles using nested variables: cat > Makefile <<'END' a = $(b$(c)) all: touch bar END ./mymake && Exit 99 mv -f Makefile foo.mk ./mymake -f foo.mkr && Exit 99 cat foo.mk | ./mymake -f - && Exit 99 test -f bar && Exit 99 sed '/a =/d' foo.mk > Makefile ./mymake && test -f bar || Exit 99 rm -f foo.mk bar Makefile Ugly, I know, but similar internal checks have saved me from testsuite bugs and false negatives a few times already. > +$ACLOCAL > +$AUTOMAKE --add-missing > +$AUTOCONF > + > +./configure --enable-silent-rules MAKE=./mymake > You should also grep configure output for: checking whether ./mymake supports nested variables... no and maybe the generated Makefile for the definition: AM_V = 1 > +./mymake >stdout || { cat stdout; Exit 1; } > +cat stdout > +$EGREP ' (-c|-o)' stdout && Exit 1 > +grep 'mv ' stdout && Exit 1 > +grep 'CC .*foo\.' stdout > +grep 'CC .*bar\.' stdout > +grep 'CC .*baz\.' stdout > +grep 'CC .*bla\.' stdout > +grep 'CCLD .*foo' stdout > +grep 'CCLD .*bar' stdout > +grep 'CCLD .*baz' stdout > +grep 'CCLD .*bla' stdout > + > +./mymake clean > +./configure --disable-silent-rules MAKE=./mymake > You should also grep configure output for: checking whether ./mymake supports nested variables... no and maybe the generated Makefile for the definition: AM_V = 0 > +./mymake >stdout || { cat stdout; Exit 1; } > +cat stdout > +grep ' -c' stdout > +grep ' -o foo' stdout > +$EGREP '(CC|LD) ' stdout && Exit 1 > + > +: Thanks, Stefano From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 22 16:58:45 2011 Received: (at 10237) by debbugs.gnu.org; 22 Dec 2011 21:58:45 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Rdqey-0004Om-Kt for submit@debbugs.gnu.org; Thu, 22 Dec 2011 16:58:45 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Rdqeu-0004Oa-Rk; Thu, 22 Dec 2011 16:58:43 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 147E4A60004; Thu, 22 Dec 2011 13:56:28 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D13pMJiWwlsX; Thu, 22 Dec 2011 13:56:26 -0800 (PST) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id E21F239E8006; Thu, 22 Dec 2011 13:56:25 -0800 (PST) Message-ID: <4EF3A786.7080507@cs.ucla.edu> Date: Thu, 22 Dec 2011 13:56:22 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#9928: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> In-Reply-To: <4EF1CF46.90200@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, Eric Blake , 10237@debbugs.gnu.org, skunk@iskunk.org 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.9 (--) On 12/21/11 04:21, Stefano Lattarini wrote: > Hi Paul, thanks for the respin. My comments and objections are inlined. Thanks, I have a patch updated with all those comments in mind. One followup: > AM_AM_DEFAULT_VERBOSITY ? I changed that to AM_DEFAULT_V, as that seems to fit into the naming convention better. >From 939ba315f5e3e5caea0513af20724c35ead86956 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 22 Dec 2011 13:48:54 -0800 Subject: [PATCH] silent-rules: fallback for makes without nested vars This fixes two problems reported for Automake (Bug#9928, Bug#10237) and is in response to a bug report for building coreutils on HP NonStop OS (Bug#10234). The problem is that HP NonStop 'make' treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that expands a macro with the funny name am__v_CC_$(V instead of the desired name am__v_CC_1 or am__v_CC_0, and since the funny macro is not defined the line is equivalent to "AM_V_CC = )"; this inserts a stray ")" when $(AM_V_CC) is used, which eventually causes 'make' to fail. The basic idea is that instead of generating Makefile.in lines like "AM_V_CC = $(am__v_CC_$(V))", we generate "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ in the usual case where `make' supports nested variables, and substitute 1 (or 0) otherwise. Similarly for usages like $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). With this change, make implementations that doesn't grasp nested variable expansions will still be able to run Makefiles generated using the silent-rules option. They won't allow the user to override the make verbosity at runtime through redefinition of $(V) (as in "make V=0"); but this is still an improvement over not being able to work at all. * NEWS: Document this. * automake.in (define_verbose_var): When defining the variable, use @AM_V@ rather than $(V), and use @AM_DEFAULT_V@ rather than $(AM_DEFAULT_VERBOSITY). * doc/automake.texi (Automake silent-rules Option): Explain new system. * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports nested variables, and substitute AM_V and AM_DEFAULT_V accordingly. * tests/silent-nested-vars.test: New test. * tests/Makefile.am (TESTS): Add it. --- ChangeLog | 39 ++++++++ NEWS | 7 ++ automake.in | 9 ++- doc/automake.texi | 22 +++-- m4/silent.m4 | 34 +++++++- tests/Makefile.am | 1 + tests/silent-nested-vars.test | 193 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 290 insertions(+), 15 deletions(-) create mode 100755 tests/silent-nested-vars.test diff --git a/ChangeLog b/ChangeLog index 26e4a2d..461dfac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,42 @@ +2011-12-22 Paul Eggert + + silent-rules: fallback for makes without nested vars + + This fixes two problems reported for Automake (Bug#9928, Bug#10237) + and is in response to a bug report for building coreutils on HP + NonStop OS (Bug#10234). The problem is that HP NonStop 'make' + treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that + expands a macro with the funny name am__v_CC_$(V instead of the + desired name am__v_CC_1 or am__v_CC_0, and since the funny macro + is not defined the line is equivalent to "AM_V_CC = )"; this + inserts a stray ")" when $(AM_V_CC) is used, which eventually + causes 'make' to fail. + + The basic idea is that instead of generating Makefile.in lines like + "AM_V_CC = $(am__v_CC_$(V))", we generate + "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ + in the usual case where `make' supports nested variables, + and substitute 1 (or 0) otherwise. Similarly for usages like + $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). + + With this change, make implementations that doesn't grasp nested + variable expansions will still be able to run Makefiles generated + using the silent-rules option. They won't allow the user to + override the make verbosity at runtime through redefinition of + $(V) (as in "make V=0"); but this is still an improvement over not + being able to work at all. + + * NEWS: Document this. + * automake.in (define_verbose_var): When defining the variable, + use @AM_V@ rather than $(V), and use @AM_DEFAULT_V@ rather than + $(AM_DEFAULT_VERBOSITY). + * doc/automake.texi (Automake silent-rules Option): Explain new system. + * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports + nested variables, and substitute AM_V and AM_DEFAULT_V accordingly. + * tests/silent-nested-vars.test: New test. + * tests/Makefile.am (TESTS): Add it. + + 2011-12-22 Stefano Lattarini hacking: distribute it, and mention it in the ChangeLog diff --git a/NEWS b/NEWS index db448a9..80ed91e 100644 --- a/NEWS +++ b/NEWS @@ -84,6 +84,13 @@ Bugs fixed in 1.11.0a: not used, `make' output no longer contains spurious backslash-only lines, thus once again matching what Automake did before 1.11. + - The `silent-rules' option now generates working makefiles even for + the uncommon `make' implementations that do not support the + nested-variables extension to POSIX 2008. For such `make' + implementations, whether a build is silent is determined at + configure time, and cannot be overridden at make time with `make + V=0' or `make V=1'. + - The AM_COND_IF macro also works if the shell expression for the conditional is no longer valid for the condition. diff --git a/automake.in b/automake.in index 309eade..7efb7d5 100644 --- a/automake.in +++ b/automake.in @@ -1161,9 +1161,12 @@ sub define_verbose_var ($$) my $silent_var = $pvar . '_0'; if (option 'silent-rules') { - # Using `$V' instead of `$(V)' breaks IRIX make. - define_variable ($var, '$(' . $pvar . '_$(V))', INTERNAL); - define_variable ($pvar . '_', '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))', INTERNAL); + # For typical `make's, `configure' replaces AM_V (inside @@) with $(V) + # and AM_DEFAULT_V (inside @@) with $(AM_DEFAULT_VERBOSITY). + # For strict POSIX 2008 `make's, it replaces them with 0 or 1 instead. + # See AM_SILENT_RULES in m4/silent.m4. + define_variable ($var, '$(' . $pvar . '_@'.'AM_V'.'@)', INTERNAL); + define_variable ($pvar . '_', '$(' . $pvar . '_@'.'AM_DEFAULT_V'.'@)', INTERNAL); Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE, $val, '', INTERNAL, VAR_ASIS) if (! vardef ($silent_var, TRUE)); diff --git a/doc/automake.texi b/doc/automake.texi index ced1b72..39884af 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -10132,18 +10132,20 @@ For portability to different @command{make} implementations, package authors are advised to not set the variable @code{V} inside the @file{Makefile.am} file, to allow the user to override the value for subdirectories as well. -The current implementation of this feature relies on a non-POSIX, but in -practice rather widely supported @file{Makefile} construct of nested -variable expansion @samp{$(@var{var1}$(V))}. Do not use the -@option{silent-rules} option if your package needs to build with -@command{make} implementations that do not support it. The -@option{silent-rules} option turns off warnings about recursive variable -expansion, which are in turn enabled by @option{-Wportability} -(@pxref{Invoking Automake}). +The current implementation of this feature normally uses nested +variable expansion @samp{$(@var{var1}$(V))}, a @file{Makefile} feature +that is not required by POSIX 2008 but is widely supported in +practice. On the rare @command{make} implementations that do not +support nested variable expansion, whether rules are silent is always +determined at configure time, and cannot be overridden at make time. +Future versions of POSIX are likely to require nested variable +expansion, so this minor limitation should go away with time. @vindex @code{AM_V_GEN} @vindex @code{AM_V_at} @vindex @code{AM_DEFAULT_VERBOSITY} +@vindex @code{AM_V} +@vindex @code{AM_DEFAULT_V} To extend the silent mode to your own rules, you have two choices: @itemize @bullet @@ -10159,8 +10161,8 @@ The following snippet shows how you would define your own equivalent of @code{AM_V_GEN}: @example -pkg_verbose = $(pkg_verbose_$(V)) -pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY)) +pkg_verbose = $(pkg_verbose_@@AM_V@@) +pkg_verbose_ = $(pkg_verbose_@@AM_DEFAULT_V@@) pkg_verbose_0 = @@echo PKG-GEN $@@; foo: foo.in diff --git a/m4/silent.m4 b/m4/silent.m4 index 6d2a1a2..8bd931b 100644 --- a/m4/silent.m4 +++ b/m4/silent.m4 @@ -1,11 +1,11 @@ ## -*- Autoconf -*- -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 +# serial 2 # AM_SILENT_RULES([DEFAULT]) # -------------------------- @@ -20,6 +20,36 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl diff --git a/tests/Makefile.am b/tests/Makefile.am index 5ac0e48..c1c0c83 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -759,6 +759,7 @@ silent-many-gcc.test \ silent-many-generic.test \ silent-lex-gcc.test \ silent-lex-generic.test \ +silent-nested-vars.test \ silent-yacc-gcc.test \ silent-yacc-generic.test \ silent-configsite.test \ diff --git a/tests/silent-nested-vars.test b/tests/silent-nested-vars.test new file mode 100755 index 0000000..4b0fa3c --- /dev/null +++ b/tests/silent-nested-vars.test @@ -0,0 +1,193 @@ +#!/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 silent-rules mode, on 'make' implementations that do not +# support nested variables (Bug#9928, Bug#10237). + +. ./defs || Exit 1 + +set -e + +mkdir sub + +cat >>configure.in <<'EOF' +AM_SILENT_RULES +AM_CONDITIONAL([HAVE_NESTED_VARIABLES], + [expr "x$AM_V" : '.*\$' >/dev/null]) +AC_CONFIG_FILES([sub/Makefile]) +AC_PROG_CC +AM_PROG_CC_C_O +AC_OUTPUT +EOF + +cat > Makefile.am <<'EOF' +# Need generic and non-generic rules. +bin_PROGRAMS = foo bar +bar_CFLAGS = $(AM_CFLAGS) +SUBDIRS = sub + +# Check that AM_V and AM_DEFAULT_V work as advertised. +pkg_verbose = $(pkg_verbose_@AM_V@) +pkg_verbose_ = $(pkg_verbose_@AM_DEFAULT_V@) +pkg_verbose_0 = @echo PKG-GEN $@; + +bin_SCRIPTS = oop +oop: + $(pkg_verbose)echo $@ >$@ + +mostlyclean-local: + rm -f oop + +if HAVE_NESTED_VARIABLES +# Check that the older form (documented in Automake 1.11) works. +older_pkg_verbose = $(older_pkg_verbose_$(V)) +older_pkg_verbose_ = $(older_pkg_verbose_$(AM_DEFAULT_VERBOSITY)) +older_pkg_verbose_0 = @echo OLDER-PKG-GEN $@; + +bin_SCRIPTS += older-oop +older-oop: + $(older_pkg_verbose)echo $@ >$@ +endif +EOF + +cat > sub/Makefile.am <<'EOF' +AUTOMAKE_OPTIONS = subdir-objects +# Need generic and non-generic rules. +bin_PROGRAMS = baz bla +bla_CFLAGS = $(AM_CFLAGS) +EOF + +cat > foo.c <<'EOF' +int main () +{ + return 0; +} +EOF +cp foo.c bar.c +cp foo.c sub/baz.c +cp foo.c sub/bla.c + +cat >mymake <<'EOF' +#! /bin/sh +makerules= +LC_ALL=C +export LC_ALL + +case $1 in + -f) + makefile=$2 + case $2 in + -) makerules=`cat` || exit ;; + esac ;; + *) + for makefile in makefile Makefile; do + test -f $makefile && break + done ;; +esac + +if + nested_var_pat='^[^#]*\$([a-zA-Z0-9_]*\$' + case $makefile in + -) printf '%s\n' "$makerules" | grep "$nested_var_pat";; + *) grep "$nested_var_pat" $makefile;; + esac +then + echo >&2 "mymake: $makefile contains nested variables" + exit 1 +fi + +case $makefile in + -) printf '%s\n' "$makerules" | $mymake_MAKE "$@";; + *) exec $mymake_MAKE "$@";; +esac +EOF +chmod a+x mymake +mymake_MAKE=${MAKE-make} +export mymake_MAKE + +# As a sanity check, verify that `mymake' rejects Makefiles that +# use nested variables. +cat > Makefile <<'END' +a = $(b$(c)) +all: + touch bar +END +./mymake && Exit 99 +mv -f Makefile foo.mk +./mymake -f foo.mk && Exit 99 +cat foo.mk | ./mymake -f - && Exit 99 +test -f bar && Exit 99 +sed '/a =/d' foo.mk > Makefile +./mymake && test -f bar || Exit 99 + +$ACLOCAL +$AUTOMAKE --add-missing +$AUTOCONF + +for make in ${MAKE-make} ./mymake; do + ./configure --enable-silent-rules MAKE=$make >enable.out 2>&1 || + { cat enable.out; Exit 1; } + cat enable.out + case $make in + ./mymake) + grep 'AM_V_CC = .*0' Makefile + grep 'checking whether ./mymake supports nested variables... no' \ + enable.out + ;; + esac + + $make >stdout || { cat stdout; Exit 1; } + cat stdout + $EGREP ' (-c|-o)' stdout && Exit 1 + grep 'mv ' stdout && Exit 1 + grep 'CC .*foo\.' stdout + grep 'CC .*bar\.' stdout + grep 'CC .*baz\.' stdout + grep 'CC .*bla\.' stdout + grep 'CCLD .*foo' stdout + grep 'CCLD .*bar' stdout + grep 'CCLD .*baz' stdout + grep 'CCLD .*bla' stdout + grep 'PKG-GEN .*oop' stdout + if test $am_cv_make_support_nested_variables = yes; then + grep 'OLDER-PKG-GEN .*older-oop' stdout + fi + $make clean + + ./configure --disable-silent-rules MAKE=$make >disable.out 2>&1 || + { cat disable.out; Exit 1; } + cat disable.out + case $make in + ./mymake) + grep 'AM_V_CC = .*1' Makefile + grep 'checking whether ./mymake supports nested variables... no' \ + disable.out + ;; + esac + + $make >stdout || { cat stdout; Exit 1; } + cat stdout + grep ' -c' stdout + grep ' -o foo' stdout + grep 'echo .*oop' stdout + if test $am_cv_make_support_nested_variables = yes; then + grep 'echo .*older-oop' stdout + fi + $EGREP '(CC|LD) ' stdout && Exit 1 + $make clean +done + +: -- 1.7.6.4 From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 23 03:53:19 2011 Received: (at 10237) by debbugs.gnu.org; 23 Dec 2011 08:53:19 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Re0sQ-0002Dl-GV for submit@debbugs.gnu.org; Fri, 23 Dec 2011 03:53:19 -0500 Received: from mail-ww0-f46.google.com ([74.125.82.46]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Re0sK-0002DQ-2v; Fri, 23 Dec 2011 03:53:15 -0500 Received: by wgbdq10 with SMTP id dq10so11542142wgb.15 for ; Fri, 23 Dec 2011 00:50:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; bh=Mc0TnUem1PNVN5mJRyLHCnnbnPaw/nCcXLGJpaQzPQA=; b=HB2150P1DfSyeZXV0zQYT4Ab2Ic4NYyYABho5eyejc4jNETMMnRX/AvHbJtdRn3lMm 41cXzQG0QFtLf5iYMR5Cg0SJoYs2JGq7weUsR7a99B0eO4/TAyJto0UKtJIleFXus01v 7Aj1Bc929bE1RTdO1tUUczzSco8WX1FjhCiV4= Received: by 10.216.139.204 with SMTP id c54mr7839246wej.13.1324630255735; Fri, 23 Dec 2011 00:50:55 -0800 (PST) Received: from [87.5.99.28] (host28-99-dynamic.5-87-r.retail.telecomitalia.it. [87.5.99.28]) by mx.google.com with ESMTPS id dj9sm29582646wib.6.2011.12.23.00.50.54 (version=SSLv3 cipher=OTHER); Fri, 23 Dec 2011 00:50:54 -0800 (PST) Message-ID: <4EF440E6.8000204@gmail.com> Date: Fri, 23 Dec 2011 09:50:46 +0100 From: Stefano Lattarini User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.24) Gecko/20111114 Icedove/3.1.16 MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#9928: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> In-Reply-To: <4EF3A786.7080507@cs.ucla.edu> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, 10237@debbugs.gnu.org, automake-patches@gnu.org, skunk@iskunk.org 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 (----) [adding automake-patches -- which I should have done before] On 12/22/2011 10:56 PM, Paul Eggert wrote: > On 12/21/11 04:21, Stefano Lattarini wrote: >> Hi Paul, thanks for the respin. My comments and objections are inlined. > > Thanks, I have a patch updated with all those comments in mind. > One followup: > >> AM_AM_DEFAULT_VERBOSITY ? > > I changed that to AM_DEFAULT_V, as that seems to fit into the naming > convention better. > Thanks. A couple of typo reports and cosmetic nits that you might fix right away are inlined. Apart from that, I still have some further nits and suggestions for improvements, but I also think the patch is good enough already, and I don't want to force you to yet another respin. So here's the deal: could you apply the patch *not to maint nor to master*, but to a *new* branch (say `silent-fixes' or `silent-portability') based off of maint, and push that new branch to the public automake repo? We can then address the further nits in the next days by working on that branch, and then merge it back into maint once we're done (that will obviously happen before 1.11.3). > From 939ba315f5e3e5caea0513af20724c35ead86956 Mon Sep 17 00:00:00 2001 > From: Paul Eggert > Date: Thu, 22 Dec 2011 13:48:54 -0800 > Subject: [PATCH] silent-rules: fallback for makes without nested vars > > This fixes two problems reported for Automake (Bug#9928, Bug#10237) > and is in response to a bug report for building coreutils on HP > NonStop OS (Bug#10234). The problem is that HP NonStop 'make' > treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that > expands a macro with the funny name am__v_CC_$(V instead of the > desired name am__v_CC_1 or am__v_CC_0, and since the funny macro > is not defined the line is equivalent to "AM_V_CC = )"; this > inserts a stray ")" when $(AM_V_CC) is used, which eventually > causes 'make' to fail. > > The basic idea is that instead of generating Makefile.in lines like > "AM_V_CC = $(am__v_CC_$(V))", we generate > "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ > in the usual case where `make' supports nested variables, > and substitute 1 (or 0) otherwise. Similarly for usages like > $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). > > With this change, make implementations that doesn't grasp nested > variable expansions will still be able to run Makefiles generated > using the silent-rules option. They won't allow the user to > override the make verbosity at runtime through redefinition of > $(V) (as in "make V=0"); but this is still an improvement over not > being able to work at all. > > * NEWS: Document this. > * automake.in (define_verbose_var): When defining the variable, > s/variable/variables/ > use @AM_V@ rather than $(V), and use @AM_DEFAULT_V@ rather than > $(AM_DEFAULT_VERBOSITY). > * doc/automake.texi (Automake silent-rules Option): Explain new system. > * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports > nested variables, and substitute AM_V and AM_DEFAULT_V accordingly. > * tests/silent-nested-vars.test: New test. > * tests/Makefile.am (TESTS): Add it. > --- > ChangeLog | 39 ++++++++ > NEWS | 7 ++ > automake.in | 9 ++- > doc/automake.texi | 22 +++-- > m4/silent.m4 | 34 +++++++- > tests/Makefile.am | 1 + > tests/silent-nested-vars.test | 193 +++++++++++++++++++++++++++++++++++++++++ > 7 files changed, 290 insertions(+), 15 deletions(-) > create mode 100755 tests/silent-nested-vars.test > > diff --git a/ChangeLog b/ChangeLog > index 26e4a2d..461dfac 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,42 @@ > +2011-12-22 Paul Eggert > + > + silent-rules: fallback for makes without nested vars > + > + This fixes two problems reported for Automake (Bug#9928, Bug#10237) > + and is in response to a bug report for building coreutils on HP > + NonStop OS (Bug#10234). The problem is that HP NonStop 'make' > + treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that > + expands a macro with the funny name am__v_CC_$(V instead of the > + desired name am__v_CC_1 or am__v_CC_0, and since the funny macro > + is not defined the line is equivalent to "AM_V_CC = )"; this > + inserts a stray ")" when $(AM_V_CC) is used, which eventually > + causes 'make' to fail. > + > + The basic idea is that instead of generating Makefile.in lines like > + "AM_V_CC = $(am__v_CC_$(V))", we generate > + "AM_V_CC = $(am__v_CC_@AM_V@)". We then AC_SUBST $(V) for @AM_V@ > + in the usual case where `make' supports nested variables, > + and substitute 1 (or 0) otherwise. Similarly for usages like > + $(am__v_CC_$(AM_DEFAULT_VERBOSITY)). > + > + With this change, make implementations that doesn't grasp nested > + variable expansions will still be able to run Makefiles generated > + using the silent-rules option. They won't allow the user to > + override the make verbosity at runtime through redefinition of > + $(V) (as in "make V=0"); but this is still an improvement over not > + being able to work at all. > + > + * NEWS: Document this. > + * automake.in (define_verbose_var): When defining the variable, > s/variable/variables/ > + use @AM_V@ rather than $(V), and use @AM_DEFAULT_V@ rather than > + $(AM_DEFAULT_VERBOSITY). > + * doc/automake.texi (Automake silent-rules Option): Explain new system. > + * m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports > + nested variables, and substitute AM_V and AM_DEFAULT_V accordingly. > + * tests/silent-nested-vars.test: New test. > + * tests/Makefile.am (TESTS): Add it. > + > + > 2011-12-22 Stefano Lattarini > > hacking: distribute it, and mention it in the ChangeLog > diff --git a/NEWS b/NEWS > index db448a9..80ed91e 100644 > --- a/NEWS > +++ b/NEWS > @@ -84,6 +84,13 @@ Bugs fixed in 1.11.0a: > not used, `make' output no longer contains spurious backslash-only > lines, thus once again matching what Automake did before 1.11. > > + - The `silent-rules' option now generates working makefiles even for > + the uncommon `make' implementations that do not support the > + nested-variables extension to POSIX 2008. For such `make' > + implementations, whether a build is silent is determined at > + configure time, and cannot be overridden at make time with `make > + V=0' or `make V=1'. > + Better line wrapping for the last two lines? + configure time, and cannot be overridden at make time with + `make V=0' or `make V=1'. No more nits from now on; quoting rest of the patch for reference. > - The AM_COND_IF macro also works if the shell expression for the conditional > is no longer valid for the condition. > > diff --git a/automake.in b/automake.in > index 309eade..7efb7d5 100644 > --- a/automake.in > +++ b/automake.in > @@ -1161,9 +1161,12 @@ sub define_verbose_var ($$) > my $silent_var = $pvar . '_0'; > if (option 'silent-rules') > { > - # Using `$V' instead of `$(V)' breaks IRIX make. > - define_variable ($var, '$(' . $pvar . '_$(V))', INTERNAL); > - define_variable ($pvar . '_', '$(' . $pvar . '_$(AM_DEFAULT_VERBOSITY))', INTERNAL); > + # For typical `make's, `configure' replaces AM_V (inside @@) with $(V) > + # and AM_DEFAULT_V (inside @@) with $(AM_DEFAULT_VERBOSITY). > + # For strict POSIX 2008 `make's, it replaces them with 0 or 1 instead. > + # See AM_SILENT_RULES in m4/silent.m4. > + define_variable ($var, '$(' . $pvar . '_@'.'AM_V'.'@)', INTERNAL); > + define_variable ($pvar . '_', '$(' . $pvar . '_@'.'AM_DEFAULT_V'.'@)', INTERNAL); > Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE, $val, > '', INTERNAL, VAR_ASIS) > if (! vardef ($silent_var, TRUE)); > diff --git a/doc/automake.texi b/doc/automake.texi > index ced1b72..39884af 100644 > --- a/doc/automake.texi > +++ b/doc/automake.texi > @@ -10132,18 +10132,20 @@ For portability to different @command{make} implementations, package authors > are advised to not set the variable @code{V} inside the @file{Makefile.am} > file, to allow the user to override the value for subdirectories as well. > > -The current implementation of this feature relies on a non-POSIX, but in > -practice rather widely supported @file{Makefile} construct of nested > -variable expansion @samp{$(@var{var1}$(V))}. Do not use the > -@option{silent-rules} option if your package needs to build with > -@command{make} implementations that do not support it. The > -@option{silent-rules} option turns off warnings about recursive variable > -expansion, which are in turn enabled by @option{-Wportability} > -(@pxref{Invoking Automake}). > +The current implementation of this feature normally uses nested > +variable expansion @samp{$(@var{var1}$(V))}, a @file{Makefile} feature > +that is not required by POSIX 2008 but is widely supported in > +practice. On the rare @command{make} implementations that do not > +support nested variable expansion, whether rules are silent is always > +determined at configure time, and cannot be overridden at make time. > +Future versions of POSIX are likely to require nested variable > +expansion, so this minor limitation should go away with time. > > @vindex @code{AM_V_GEN} > @vindex @code{AM_V_at} > @vindex @code{AM_DEFAULT_VERBOSITY} > +@vindex @code{AM_V} > +@vindex @code{AM_DEFAULT_V} > To extend the silent mode to your own rules, you have two choices: > > @itemize @bullet > @@ -10159,8 +10161,8 @@ The following snippet shows how you would define your own equivalent of > @code{AM_V_GEN}: > > @example > -pkg_verbose = $(pkg_verbose_$(V)) > -pkg_verbose_ = $(pkg_verbose_$(AM_DEFAULT_VERBOSITY)) > +pkg_verbose = $(pkg_verbose_@@AM_V@@) > +pkg_verbose_ = $(pkg_verbose_@@AM_DEFAULT_V@@) > pkg_verbose_0 = @@echo PKG-GEN $@@; > > foo: foo.in > diff --git a/m4/silent.m4 b/m4/silent.m4 > index 6d2a1a2..8bd931b 100644 > --- a/m4/silent.m4 > +++ b/m4/silent.m4 > @@ -1,11 +1,11 @@ > ## -*- Autoconf -*- > -# Copyright (C) 2009 Free Software Foundation, Inc. > +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. > # > # This file is free software; the Free Software Foundation > # gives unlimited permission to copy and/or distribute it, > # with or without modifications, as long as this notice is preserved. > > -# serial 1 > +# serial 2 > > # AM_SILENT_RULES([DEFAULT]) > # -------------------------- > @@ -20,6 +20,36 @@ yes) AM_DEFAULT_VERBOSITY=0;; > no) AM_DEFAULT_VERBOSITY=1;; > *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; > esac > +dnl > +dnl A few `make' implementations (e.g., NonStop OS and NextStep) > +dnl do not support nested variable expansions. > +dnl See automake bug#9928 and bug#10237. > +am_make=${MAKE-make} > +AC_CACHE_CHECK([whether $am_make supports nested variables], > + [am_cv_make_support_nested_variables], > + [if AS_ECHO([['TRUE=$(BAR$(V)) > +BAR0=false > +BAR1=true > +V=1 > +am__doit: > + @$(TRUE) > +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then > + am_cv_make_support_nested_variables=yes > +else > + am_cv_make_support_nested_variables=no > +fi]) > +if test $am_cv_make_support_nested_variables = yes; then > + dnl Using `$V' instead of `$(V)' breaks IRIX make. > + AM_V='$(V)' > + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' > +else > + AM_V=$AM_DEFAULT_VERBOSITY > + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY > +fi > +AC_SUBST([AM_V])dnl > +AM_SUBST_NOTMAKE([AM_V])dnl > +AC_SUBST([AM_DEFAULT_V])dnl > +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl > AC_SUBST([AM_DEFAULT_VERBOSITY])dnl > AM_BACKSLASH='\' > AC_SUBST([AM_BACKSLASH])dnl > diff --git a/tests/Makefile.am b/tests/Makefile.am > index 5ac0e48..c1c0c83 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -759,6 +759,7 @@ silent-many-gcc.test \ > silent-many-generic.test \ > silent-lex-gcc.test \ > silent-lex-generic.test \ > +silent-nested-vars.test \ > silent-yacc-gcc.test \ > silent-yacc-generic.test \ > silent-configsite.test \ > diff --git a/tests/silent-nested-vars.test b/tests/silent-nested-vars.test > new file mode 100755 > index 0000000..4b0fa3c > --- /dev/null > +++ b/tests/silent-nested-vars.test > @@ -0,0 +1,193 @@ > +#!/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 silent-rules mode, on 'make' implementations that do not > +# support nested variables (Bug#9928, Bug#10237). > + > +. ./defs || Exit 1 > + > +set -e > + > +mkdir sub > + > +cat >>configure.in <<'EOF' > +AM_SILENT_RULES > +AM_CONDITIONAL([HAVE_NESTED_VARIABLES], > + [expr "x$AM_V" : '.*\$' >/dev/null]) > +AC_CONFIG_FILES([sub/Makefile]) > +AC_PROG_CC > +AM_PROG_CC_C_O > +AC_OUTPUT > +EOF > + > +cat > Makefile.am <<'EOF' > +# Need generic and non-generic rules. > +bin_PROGRAMS = foo bar > +bar_CFLAGS = $(AM_CFLAGS) > +SUBDIRS = sub > + > +# Check that AM_V and AM_DEFAULT_V work as advertised. > +pkg_verbose = $(pkg_verbose_@AM_V@) > +pkg_verbose_ = $(pkg_verbose_@AM_DEFAULT_V@) > +pkg_verbose_0 = @echo PKG-GEN $@; > + > +bin_SCRIPTS = oop > +oop: > + $(pkg_verbose)echo $@ >$@ > + > +mostlyclean-local: > + rm -f oop > + > +if HAVE_NESTED_VARIABLES > +# Check that the older form (documented in Automake 1.11) works. > +older_pkg_verbose = $(older_pkg_verbose_$(V)) > +older_pkg_verbose_ = $(older_pkg_verbose_$(AM_DEFAULT_VERBOSITY)) > +older_pkg_verbose_0 = @echo OLDER-PKG-GEN $@; > + > +bin_SCRIPTS += older-oop > +older-oop: > + $(older_pkg_verbose)echo $@ >$@ > +endif > +EOF > + > +cat > sub/Makefile.am <<'EOF' > +AUTOMAKE_OPTIONS = subdir-objects > +# Need generic and non-generic rules. > +bin_PROGRAMS = baz bla > +bla_CFLAGS = $(AM_CFLAGS) > +EOF > + > +cat > foo.c <<'EOF' > +int main () > +{ > + return 0; > +} > +EOF > +cp foo.c bar.c > +cp foo.c sub/baz.c > +cp foo.c sub/bla.c > + > +cat >mymake <<'EOF' > +#! /bin/sh > +makerules= > +LC_ALL=C > +export LC_ALL > + > +case $1 in > + -f) > + makefile=$2 > + case $2 in > + -) makerules=`cat` || exit ;; > + esac ;; > + *) > + for makefile in makefile Makefile; do > + test -f $makefile && break > + done ;; > +esac > + > +if > + nested_var_pat='^[^#]*\$([a-zA-Z0-9_]*\$' > + case $makefile in > + -) printf '%s\n' "$makerules" | grep "$nested_var_pat";; > + *) grep "$nested_var_pat" $makefile;; > + esac > +then > + echo >&2 "mymake: $makefile contains nested variables" > + exit 1 > +fi > + > +case $makefile in > + -) printf '%s\n' "$makerules" | $mymake_MAKE "$@";; > + *) exec $mymake_MAKE "$@";; > +esac > +EOF > +chmod a+x mymake > +mymake_MAKE=${MAKE-make} > +export mymake_MAKE > + > +# As a sanity check, verify that `mymake' rejects Makefiles that > +# use nested variables. > +cat > Makefile <<'END' > +a = $(b$(c)) > +all: > + touch bar > +END > +./mymake && Exit 99 > +mv -f Makefile foo.mk > +./mymake -f foo.mk && Exit 99 > +cat foo.mk | ./mymake -f - && Exit 99 > +test -f bar && Exit 99 > +sed '/a =/d' foo.mk > Makefile > +./mymake && test -f bar || Exit 99 > + > +$ACLOCAL > +$AUTOMAKE --add-missing > +$AUTOCONF > + > +for make in ${MAKE-make} ./mymake; do > + ./configure --enable-silent-rules MAKE=$make >enable.out 2>&1 || > + { cat enable.out; Exit 1; } > + cat enable.out > + case $make in > + ./mymake) > + grep 'AM_V_CC = .*0' Makefile > + grep 'checking whether ./mymake supports nested variables... no' \ > + enable.out > + ;; > + esac > + > + $make >stdout || { cat stdout; Exit 1; } > + cat stdout > + $EGREP ' (-c|-o)' stdout && Exit 1 > + grep 'mv ' stdout && Exit 1 > + grep 'CC .*foo\.' stdout > + grep 'CC .*bar\.' stdout > + grep 'CC .*baz\.' stdout > + grep 'CC .*bla\.' stdout > + grep 'CCLD .*foo' stdout > + grep 'CCLD .*bar' stdout > + grep 'CCLD .*baz' stdout > + grep 'CCLD .*bla' stdout > + grep 'PKG-GEN .*oop' stdout > + if test $am_cv_make_support_nested_variables = yes; then > + grep 'OLDER-PKG-GEN .*older-oop' stdout > + fi > + $make clean > + > + ./configure --disable-silent-rules MAKE=$make >disable.out 2>&1 || > + { cat disable.out; Exit 1; } > + cat disable.out > + case $make in > + ./mymake) > + grep 'AM_V_CC = .*1' Makefile > + grep 'checking whether ./mymake supports nested variables... no' \ > + disable.out > + ;; > + esac > + > + $make >stdout || { cat stdout; Exit 1; } > + cat stdout > + grep ' -c' stdout > + grep ' -o foo' stdout > + grep 'echo .*oop' stdout > + if test $am_cv_make_support_nested_variables = yes; then > + grep 'echo .*older-oop' stdout > + fi > + $EGREP '(CC|LD) ' stdout && Exit 1 > + $make clean > +done > + > +: Thanks, Stefano From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 25 13:07:37 2011 Received: (at 10237) by debbugs.gnu.org; 25 Dec 2011 18:07:37 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1ResTw-0000oV-L4 for submit@debbugs.gnu.org; Sun, 25 Dec 2011 13:07:37 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1ResTt-0000oK-FS; Sun, 25 Dec 2011 13:07:34 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 83572A60004; Sun, 25 Dec 2011 10:05:04 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PGrDv9eGY2AP; Sun, 25 Dec 2011 10:05:03 -0800 (PST) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 4AD4039E8007; Sun, 25 Dec 2011 10:05:03 -0800 (PST) Message-ID: <4EF765CB.70903@cs.ucla.edu> Date: Sun, 25 Dec 2011 10:04:59 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#9928: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> <4EF440E6.8000204@gmail.com> In-Reply-To: <4EF440E6.8000204@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, 10237@debbugs.gnu.org, automake-patches@gnu.org, skunk@iskunk.org 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.9 (--) On 12/23/11 00:50, Stefano Lattarini wrote: > could you apply the patch *not to maint nor to master*, but to a *new* > branch (say `silent-fixes' or `silent-portability') based off of maint, > and push that new branch to the public automake repo? OK, done, as 'silent-fixes', with your recent nit-fixes applied. Here's a URL for anyone else who wants to follow along: http://git.savannah.gnu.org/cgit/automake.git/log/?h=silent-fixes From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 26 12:45:25 2011 Received: (at 10237) by debbugs.gnu.org; 26 Dec 2011 17:45:25 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfEc1-0002ur-7B for submit@debbugs.gnu.org; Mon, 26 Dec 2011 12:45:25 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfEbx-0002uZ-Pg; Mon, 26 Dec 2011 12:45:23 -0500 Received: by eekc14 with SMTP id c14so11594463eek.3 for ; Mon, 26 Dec 2011 09:42:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; bh=BLEmmqDaKZG7FqguNYq12kEUZ01FPTZFLLc58Yt9zxE=; b=NnEmy7MQS4kYiXNFq2nIRlPIeBY9UFBq4+a7rPD1koxdEuMd1ndrXQsq9av/IwbrW3 Mm+GtDO9Rzl0IVVvHja1l171lveX0cuTtZn3ip5R1c+zlIUK60k4dd4bLA6O8oon+77X 5wY1ZMpuXmNKJvNlXRbZaRbjuufLxhuuWlT8U= Received: by 10.213.108.203 with SMTP id g11mr2808656ebp.6.1324921365815; Mon, 26 Dec 2011 09:42:45 -0800 (PST) Received: from [87.2.103.80] (host80-103-dynamic.2-87-r.retail.telecomitalia.it. [87.2.103.80]) by mx.google.com with ESMTPS id z43sm94704866eef.7.2011.12.26.09.42.44 (version=SSLv3 cipher=OTHER); Mon, 26 Dec 2011 09:42:44 -0800 (PST) Message-ID: <4EF8B20B.8080007@gmail.com> Date: Mon, 26 Dec 2011 18:42:35 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#10237: bug#9928: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> <4EF440E6.8000204@gmail.com> <4EF765CB.70903@cs.ucla.edu> In-Reply-To: <4EF765CB.70903@cs.ucla.edu> Content-Type: multipart/mixed; boundary="------------030104060107040601010808" X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, 10237@debbugs.gnu.org, automake-patches@gnu.org, skunk@iskunk.org 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.0 (----) This is a multi-part message in MIME format. --------------030104060107040601010808 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit tags 10237 + patch tags 9928 + patch thanks On 12/25/2011 07:04 PM, Paul Eggert wrote: > On 12/23/11 00:50, Stefano Lattarini wrote: >> could you apply the patch *not to maint nor to master*, but to a *new* >> branch (say `silent-fixes' or `silent-portability') based off of maint, >> and push that new branch to the public automake repo? > > OK, done, as 'silent-fixes', with your recent nit-fixes applied. > > Here's a URL for anyone else who wants to follow along: > > http://git.savannah.gnu.org/cgit/automake.git/log/?h=silent-fixes > Thanks. And here is the follow-up tweaking for the test cases I had promised. I will push in a couple of days if there is no objection. Thanks, Stefano --------------030104060107040601010808 Content-Type: text/x-diff; name="0001-tests-tweak-tests-on-silent-rules-for-makes-without-.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-tests-tweak-tests-on-silent-rules-for-makes-without-.pa"; filename*1="tch" >From 7afbc96ccd8b5bde30ec0a41edbbebd919abfe0f Mon Sep 17 00:00:00 2001 Message-Id: <7afbc96ccd8b5bde30ec0a41edbbebd919abfe0f.1324920744.git.stefano.lattarini@gmail.com> From: Stefano Lattarini Date: Mon, 26 Dec 2011 18:23:24 +0100 Subject: [PATCH] tests: tweak tests on silent-rules for makes without nested vars * tests/silent-nested-vars.test: Define MAKE to `./mymake' in the environment, so that it will be automatically picked up by configure. Related tweaks and simplifications. Remove the checks verifying that silent rules are respected also when the 'subdir-objects' option set, the checks testing the old syntax for user-defined silent rules, and the tests using the default $MAKE programs: they are redundant w.r.t. other test cases. Related simplifications. Remove the temporary files used in a sanity check as soon as they are not needed anymore. Do not capture also the standard error of configure: we only want to grep its standard output. Consistently use `stdout' for the name of files where to save the standard output captured from make and configure, for consistency with other tests. Make grepping of configure output and of the generated Makefile stricter. Improve and tweak the `mymake' script a little. * tests/silent6.test: Make grepping of make stdout slightly stricter. Also try to force the use silent rules with `V=1' after having configured with silent rules disabled. --- ChangeLog | 25 ++++++++ tests/silent-nested-vars.test | 128 +++++++++++++--------------------------- tests/silent6.test | 14 +++- 3 files changed, 77 insertions(+), 90 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d6a44a..e299310 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2011-12-26 Stefano Lattarini + + tests: tweak tests on silent-rules for makes without nested vars + * tests/silent-nested-vars.test: Define MAKE to `./mymake' in + the environment, so that it will be automatically picked up by + configure. Related tweaks and simplifications. + Remove the checks verifying that silent rules are respected also + when the 'subdir-objects' option set, the checks testing the + old syntax for user-defined silent rules, and the tests using + the default $MAKE programs: they are redundant w.r.t. other test + cases. Related simplifications. + Remove the temporary files used in a sanity check as soon as they + are not needed anymore. + Do not capture also the standard error of configure: we only want + to grep its standard output. + Consistently use `stdout' for the name of files where to save the + standard output captured from make and configure, for consistency + with other tests. + Make grepping of configure output and of the generated Makefile + stricter. + Improve and tweak the `mymake' script a little. + * tests/silent6.test: Make grepping of make stdout slightly + stricter. Also try to force the use silent rules with `V=1' + after having configured with silent rules disabled. + 2011-12-25 Paul Eggert silent-rules: fallback for makes without nested vars diff --git a/tests/silent-nested-vars.test b/tests/silent-nested-vars.test index 4b0fa3c..0024b5d 100755 --- a/tests/silent-nested-vars.test +++ b/tests/silent-nested-vars.test @@ -21,13 +21,8 @@ set -e -mkdir sub - cat >>configure.in <<'EOF' AM_SILENT_RULES -AM_CONDITIONAL([HAVE_NESTED_VARIABLES], - [expr "x$AM_V" : '.*\$' >/dev/null]) -AC_CONFIG_FILES([sub/Makefile]) AC_PROG_CC AM_PROG_CC_C_O AC_OUTPUT @@ -37,7 +32,6 @@ cat > Makefile.am <<'EOF' # Need generic and non-generic rules. bin_PROGRAMS = foo bar bar_CFLAGS = $(AM_CFLAGS) -SUBDIRS = sub # Check that AM_V and AM_DEFAULT_V work as advertised. pkg_verbose = $(pkg_verbose_@AM_V@) @@ -50,24 +44,6 @@ oop: mostlyclean-local: rm -f oop - -if HAVE_NESTED_VARIABLES -# Check that the older form (documented in Automake 1.11) works. -older_pkg_verbose = $(older_pkg_verbose_$(V)) -older_pkg_verbose_ = $(older_pkg_verbose_$(AM_DEFAULT_VERBOSITY)) -older_pkg_verbose_0 = @echo OLDER-PKG-GEN $@; - -bin_SCRIPTS += older-oop -older-oop: - $(older_pkg_verbose)echo $@ >$@ -endif -EOF - -cat > sub/Makefile.am <<'EOF' -AUTOMAKE_OPTIONS = subdir-objects -# Need generic and non-generic rules. -bin_PROGRAMS = baz bla -bla_CFLAGS = $(AM_CFLAGS) EOF cat > foo.c <<'EOF' @@ -77,14 +53,10 @@ int main () } EOF cp foo.c bar.c -cp foo.c sub/baz.c -cp foo.c sub/bla.c cat >mymake <<'EOF' #! /bin/sh makerules= -LC_ALL=C -export LC_ALL case $1 in -f) @@ -98,8 +70,8 @@ case $1 in done ;; esac +nested_var_pat='^[^#].*\$([^)]*\$' if - nested_var_pat='^[^#]*\$([a-zA-Z0-9_]*\$' case $makefile in -) printf '%s\n' "$makerules" | grep "$nested_var_pat";; *) grep "$nested_var_pat" $makefile;; @@ -116,7 +88,8 @@ esac EOF chmod a+x mymake mymake_MAKE=${MAKE-make} -export mymake_MAKE +MAKE=./mymake +export MAKE mymake_MAKE # As a sanity check, verify that `mymake' rejects Makefiles that # use nested variables. @@ -125,69 +98,52 @@ a = $(b$(c)) all: touch bar END -./mymake && Exit 99 +$MAKE && Exit 99 mv -f Makefile foo.mk -./mymake -f foo.mk && Exit 99 -cat foo.mk | ./mymake -f - && Exit 99 +$MAKE -f foo.mk && Exit 99 +cat foo.mk | $MAKE -f - && Exit 99 test -f bar && Exit 99 sed '/a =/d' foo.mk > Makefile -./mymake && test -f bar || Exit 99 +$MAKE && test -f bar || Exit 99 +rm -f bar Makefile foo.mk $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF -for make in ${MAKE-make} ./mymake; do - ./configure --enable-silent-rules MAKE=$make >enable.out 2>&1 || - { cat enable.out; Exit 1; } - cat enable.out - case $make in - ./mymake) - grep 'AM_V_CC = .*0' Makefile - grep 'checking whether ./mymake supports nested variables... no' \ - enable.out - ;; - esac - - $make >stdout || { cat stdout; Exit 1; } - cat stdout - $EGREP ' (-c|-o)' stdout && Exit 1 - grep 'mv ' stdout && Exit 1 - grep 'CC .*foo\.' stdout - grep 'CC .*bar\.' stdout - grep 'CC .*baz\.' stdout - grep 'CC .*bla\.' stdout - grep 'CCLD .*foo' stdout - grep 'CCLD .*bar' stdout - grep 'CCLD .*baz' stdout - grep 'CCLD .*bla' stdout - grep 'PKG-GEN .*oop' stdout - if test $am_cv_make_support_nested_variables = yes; then - grep 'OLDER-PKG-GEN .*older-oop' stdout - fi - $make clean - - ./configure --disable-silent-rules MAKE=$make >disable.out 2>&1 || - { cat disable.out; Exit 1; } - cat disable.out - case $make in - ./mymake) - grep 'AM_V_CC = .*1' Makefile - grep 'checking whether ./mymake supports nested variables... no' \ - disable.out - ;; - esac - - $make >stdout || { cat stdout; Exit 1; } - cat stdout - grep ' -c' stdout - grep ' -o foo' stdout - grep 'echo .*oop' stdout - if test $am_cv_make_support_nested_variables = yes; then - grep 'echo .*older-oop' stdout - fi - $EGREP '(CC|LD) ' stdout && Exit 1 - $make clean -done +./configure --enable-silent-rules >stdout || { cat stdout; Exit 1; } +cat stdout +grep '^checking whether \./mymake supports nested variables\.\.\. no *$' \ + stdout +$EGREP 'CC|AM_V|GEN' Makefile # For debugging. +grep '^AM_V_CC = *\$(am__v_CC_0) *$' Makefile +grep '^AM_V_GEN = *\$(am__v_GEN_0) *$' Makefile +$MAKE >stdout || { cat stdout; Exit 1; } +cat stdout +$EGREP ' (-c|-o)' stdout && Exit 1 +grep 'mv ' stdout && Exit 1 +grep 'echo .*oop' stdout && Exit 1 +grep 'CC .*foo\.' stdout +grep 'CC .*bar\.' stdout +grep 'CCLD .*foo' stdout +grep 'CCLD .*bar' stdout +grep 'PKG-GEN .*oop' stdout +$MAKE distclean + +./configure --disable-silent-rules > stdout || { cat stdout; Exit 1; } +cat stdout +grep '^checking whether \./mymake supports nested variables\.\.\. no *$' \ + stdout +$EGREP 'CC|AM_V|GEN' Makefile # For debugging. +grep '^AM_V_CC = *\$(am__v_CC_1) *$' Makefile +grep '^AM_V_GEN = *\$(am__v_GEN_1) *$' Makefile + +$MAKE >stdout || { cat stdout; Exit 1; } +cat stdout +grep ' -c' stdout +grep ' -o foo' stdout +grep ' -o bar' stdout +grep 'echo .*>oop' stdout +$EGREP '(CC|LD) ' stdout && Exit 1 : diff --git a/tests/silent6.test b/tests/silent6.test index acd9cea..0e474af 100755 --- a/tests/silent6.test +++ b/tests/silent6.test @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# Copyright (C) 2009, 2010, 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 @@ -47,14 +47,14 @@ $AUTOCONF ./configure --enable-silent-rules $MAKE >stdout || { cat stdout; Exit 1; } cat stdout -grep 'GEN foo' stdout +grep '^ *GEN foo *$' stdout grep 'cp ' stdout && Exit 1 $MAKE clean $MAKE V=1 >stdout || { cat stdout; Exit 1; } cat stdout grep 'GEN ' stdout && Exit 1 -grep 'cp ' stdout +grep 'cp \.*/foo\.in foo' stdout $MAKE distclean @@ -62,7 +62,13 @@ $MAKE distclean $MAKE >stdout || { cat stdout; Exit 1; } cat stdout grep 'GEN ' stdout && Exit 1 -grep 'cp ' stdout +grep 'cp \.*/foo\.in foo' stdout + +$MAKE clean +$MAKE V=0 >stdout || { cat stdout; Exit 1; } +cat stdout +grep '^ *GEN foo *$' stdout +grep 'cp ' stdout && Exit 1 $MAKE distclean -- 1.7.7.3 --------------030104060107040601010808-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 26 13:11:53 2011 Received: (at 10237) by debbugs.gnu.org; 26 Dec 2011 18:11:53 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfF1c-0004G9-PW for submit@debbugs.gnu.org; Mon, 26 Dec 2011 13:11:53 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfF1a-0004Fz-OD; Mon, 26 Dec 2011 13:11:51 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 02A2AA60007; Mon, 26 Dec 2011 10:09:16 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tGsmn70-NT8U; Mon, 26 Dec 2011 10:09:15 -0800 (PST) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 8EA13A60004; Mon, 26 Dec 2011 10:09:15 -0800 (PST) Message-ID: <4EF8B84B.5020708@cs.ucla.edu> Date: Mon, 26 Dec 2011 10:09:15 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10237: bug#9928: bug#10237: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> <4EF440E6.8000204@gmail.com> <4EF765CB.70903@cs.ucla.edu> <4EF8B20B.8080007@gmail.com> In-Reply-To: <4EF8B20B.8080007@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, 10237@debbugs.gnu.org, automake-patches@gnu.org, skunk@iskunk.org 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.9 (--) On 12/26/11 09:42, Stefano Lattarini wrote: > And here is the follow-up tweaking for the test cases I had > promised. I will push in a couple of days if there is no objection. Thanks, that looks good to me; please push it as soon as you like. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 26 16:38:09 2011 Received: (at 10237) by debbugs.gnu.org; 26 Dec 2011 21:38:09 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfIFF-0004JE-IH for submit@debbugs.gnu.org; Mon, 26 Dec 2011 16:38:09 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfIFC-0004J0-LR; Mon, 26 Dec 2011 16:38:07 -0500 Received: by eekc14 with SMTP id c14so11736615eek.3 for ; Mon, 26 Dec 2011 13:35:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=T4JDpXHygy6N6/LjRFEtVtOOFUcLo9WJ0VTKg82H7xA=; b=Ry7RLyYa+vySxDvYKMmENkbBnCiulAKiT6AyAht4RmAkQOX9rzLK7HlmfT8Zgt6P2f hQtGOS2hjapy38oOW3TpWXxo7nXDGPKune7kbcC3k4AWPigZpPpSiVz1Y6ZVU1sPaLxl JKYis4RpqjKZD+c/BQ2hIMefEPu07r1o4WRuc= Received: by 10.213.35.65 with SMTP id o1mr5273265ebd.47.1324935331163; Mon, 26 Dec 2011 13:35:31 -0800 (PST) Received: from [87.2.103.80] (host80-103-dynamic.2-87-r.retail.telecomitalia.it. [87.2.103.80]) by mx.google.com with ESMTPS id 13sm97330410eeu.1.2011.12.26.13.35.29 (version=SSLv3 cipher=OTHER); Mon, 26 Dec 2011 13:35:30 -0800 (PST) Message-ID: <4EF8E89F.9080302@gmail.com> Date: Mon, 26 Dec 2011 22:35:27 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Paul Eggert Subject: Re: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> <4EF440E6.8000204@gmail.com> <4EF765CB.70903@cs.ucla.edu> <4EF8B20B.8080007@gmail.com> <4EF8B84B.5020708@cs.ucla.edu> In-Reply-To: <4EF8B84B.5020708@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, 10237@debbugs.gnu.org, automake-patches@gnu.org, skunk@iskunk.org 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 (---) On 12/26/2011 07:09 PM, Paul Eggert wrote: > On 12/26/11 09:42, Stefano Lattarini wrote: >> And here is the follow-up tweaking for the test cases I had >> promised. I will push in a couple of days if there is no objection. > > Thanks, that looks good to me; please push it as soon as you like. > Done. I plan to merge the 'silent-fixes' branch back into maint as soon as I (or someone else ;-) have done more extensive testsuite runs and/or on-field testing on non-Linux systems (*BSD and Solaris at least, hopefully also Cygwin or MinGW). If someone could also test the patches on a NonStop and/or NextStep system, that would be great. Thanks, Stefano From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 28 15:11:33 2011 Received: (at 10237) by debbugs.gnu.org; 28 Dec 2011 20:11:33 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfzqW-0007DB-Ah for submit@debbugs.gnu.org; Wed, 28 Dec 2011 15:11:33 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RfzqU-0007D0-Sd; Wed, 28 Dec 2011 15:11:32 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id C044339E800D; Wed, 28 Dec 2011 12:08:43 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ewe+ynS5BJfl; Wed, 28 Dec 2011 12:08:43 -0800 (PST) Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 581D739E8006; Wed, 28 Dec 2011 12:08:43 -0800 (PST) Message-ID: <4EFB774C.8080304@cs.ucla.edu> Date: Wed, 28 Dec 2011 12:08:44 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> <4EF440E6.8000204@gmail.com> <4EF765CB.70903@cs.ucla.edu> <4EF8B20B.8080007@gmail.com> <4EF8B84B.5020708@cs.ucla.edu> <4EF8E89F.9080302@gmail.com> In-Reply-To: <4EF8E89F.9080302@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, 10237@debbugs.gnu.org, automake-patches@gnu.org, skunk@iskunk.org 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.9 (--) On 12/26/11 13:35, Stefano Lattarini wrote: > testing on non-Linux systems (*BSD and Solaris at least, hopefully also > Cygwin or MinGW). I tested it on Solaris 8 and that test worked fine. I used Autoconf 2.63, GNU m4 1.4.13, and the system-supplied 'make'. Some of the other tests failed, e.g., because I didn't have Fortran installed, but I didn't investigate them; it hardly seems worth the trouble for such an old system. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 28 15:22:16 2011 Received: (at 10237) by debbugs.gnu.org; 28 Dec 2011 20:22: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 1Rg00u-0007Si-7f for submit@debbugs.gnu.org; Wed, 28 Dec 2011 15:22:16 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Rg00r-0007SU-Gq; Wed, 28 Dec 2011 15:22:14 -0500 Received: by eekc14 with SMTP id c14so13284632eek.3 for ; Wed, 28 Dec 2011 12:19:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=JUKuOToHoQsmWqBZjLZaAm6CLwLdkkR6yg5SqzXa0Qo=; b=RpyQ66cw+K2tXQCIjLZlCVbNVm1moiNcd9+gBhbMMeDz27ePJdbRgHqHOhB2R2IIRM K+lV5iFeswshqZyixzyckFiSQjDr6zq1dmhkJMX/o6NIHcZA8l+J2Y/cB5FxJqxbhuL3 cHd6ltGpEDRk3zKfa+synAvLhFjau0UZ73f44= Received: by 10.213.25.219 with SMTP id a27mr2712845ebc.1.1325103566912; Wed, 28 Dec 2011 12:19:26 -0800 (PST) Received: from [87.2.102.244] (host244-102-dynamic.2-87-r.retail.telecomitalia.it. [87.2.102.244]) by mx.google.com with ESMTPS id q67sm62895393eea.8.2011.12.28.12.19.25 (version=SSLv3 cipher=OTHER); Wed, 28 Dec 2011 12:19:26 -0800 (PST) Message-ID: <4EFB79CB.9010900@gmail.com> Date: Wed, 28 Dec 2011 21:19:23 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#9928: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> <4EF440E6.8000204@gmail.com> <4EF765CB.70903@cs.ucla.edu> <4EF8B20B.8080007@gmail.com> <4EF8B84B.5020708@cs.ucla.edu> <4EF8E89F.9080302@gmail.com> <4EFB774C.8080304@cs.ucla.edu> In-Reply-To: <4EFB774C.8080304@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.9 (---) X-Debbugs-Envelope-To: 10237 Cc: 9928@debbugs.gnu.org, 10237@debbugs.gnu.org, automake-patches@gnu.org, skunk@iskunk.org 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 (---) Hi Paul. On 12/28/2011 09:08 PM, Paul Eggert wrote: > On 12/26/11 13:35, Stefano Lattarini wrote: >> testing on non-Linux systems (*BSD and Solaris at least, hopefully also >> Cygwin or MinGW). > > I tested it on Solaris 8 and that test worked fine. > I used Autoconf 2.63, GNU m4 1.4.13, and the system-supplied 'make'. > > Some of the other tests failed, e.g., because I didn't have > Fortran installed, but I didn't investigate them; it hardly > seems worth the trouble for such an old system. > > I did some testing on Debian unstable, Solaris 10, NetBSD 5.1 and Cygwin 1.5 (in part by running the relevant test cases from the automake testsuite, in part trying out the build system of GNU coreutils). Everything seems fine so far. I want to do some small improvements to the documentation, then I say we are ready to merge the 'silent-fixes' branch into maint. Regards, Stefano From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 30 07:53:06 2011 Received: (at 10237-done) by debbugs.gnu.org; 30 Dec 2011 12:53:07 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RgbxK-0003VI-HX for submit@debbugs.gnu.org; Fri, 30 Dec 2011 07:53:06 -0500 Received: from mail-wi0-f172.google.com ([209.85.212.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RgbxH-0003V5-NE; Fri, 30 Dec 2011 07:53:04 -0500 Received: by wibhj6 with SMTP id hj6so7509925wib.3 for ; Fri, 30 Dec 2011 04:50:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=GhqS/aAlgpqzzbYnjLCYqapgd3BmyQjcJ2uRXYDYxa4=; b=tXfJ4sW+pwhOMHDSMfZj+CkGHKUD76Palw5yqZoewvA+uEaDGkSgSTcm+BUn3KASWV KfoAqPM5BmmDKyS2b5CQeL6Z74xCUSOyLF99MUPB9tlRRak5tvQSHzEI6sRQns8doj3u 8NRs0xlnEt4SDx6jmxcyzb3FX8M2iui+XF3lI= Received: by 10.180.94.97 with SMTP id db1mr85955666wib.16.1325249407553; Fri, 30 Dec 2011 04:50:07 -0800 (PST) Received: from [87.2.95.175] (host175-95-dynamic.2-87-r.retail.telecomitalia.it. [87.2.95.175]) by mx.google.com with ESMTPS id em4sm39442838wbb.20.2011.12.30.04.50.06 (version=SSLv3 cipher=OTHER); Fri, 30 Dec 2011 04:50:06 -0800 (PST) Message-ID: <4EFDB37C.80106@gmail.com> Date: Fri, 30 Dec 2011 13:50:04 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#10237: bug#9928: AM_SILENT_RULES does not work with NonStop make References: <4EDE5624.6020209@cs.ucla.edu> <201112062002.32774.stefano.lattarini@gmail.com> <4EE3E3ED.1010506@cs.ucla.edu> <201112111042.45708.stefano.lattarini@gmail.com> <4EF136AC.4090307@cs.ucla.edu> <4EF1CF46.90200@gmail.com> <4EF3A786.7080507@cs.ucla.edu> <4EF440E6.8000204@gmail.com> <4EF765CB.70903@cs.ucla.edu> <4EF8B20B.8080007@gmail.com> <4EF8B84B.5020708@cs.ucla.edu> <4EF8E89F.9080302@gmail.com> <4EFB774C.8080304@cs.ucla.edu> <4EFB79CB.9010900@gmail.com> In-Reply-To: <4EFB79CB.9010900@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.9 (---) X-Debbugs-Envelope-To: 10237-done Cc: 10237-done@debbugs.gnu.org, automake-patches@gnu.org, 9928-done@debbugs.gnu.org, skunk@iskunk.org 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 (---) On 12/28/2011 09:19 PM, Stefano Lattarini wrote: > > I did some testing on Debian unstable, Solaris 10, NetBSD 5.1 and Cygwin 1.5 (in > part by running the relevant test cases from the automake testsuite, in part > trying out the build system of GNU coreutils). Everything seems fine so far. > I want to do some small improvements to the documentation, then I say we are > ready to merge the 'silent-fixes' branch into maint. > I've just re-read Paul's changes to the manual, and on a second thought, I think they are definitely good enough as they are. I've thus merged the 'silent-fixes' branch into maint, and pushed. I'm thus closing the bugs #9928 and #10237. Thanks, Stefano From unknown Fri Jun 20 20:12:30 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 28 Jan 2012 12:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator