From: Stefano Lattarini <stefano.lattarini@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jonathan Nieder <jrnieder@gmail.com>, Jeff King <peff@peff.net>,
Martin von Zweigbergk <martinvonz@gmail.com>,
git <git@vger.kernel.org>
Subject: Re: [PATCH v2] build: do not automatically reconfigure unless configure.ac changed
Date: Wed, 02 Jan 2013 20:35:18 +0100 [thread overview]
Message-ID: <50E48BF6.2020900@gmail.com> (raw)
In-Reply-To: <7va9sr4jgu.fsf@alter.siamese.dyndns.org>
On 01/02/2013 05:50 PM, Junio C Hamano wrote:
> Stefano Lattarini <stefano.lattarini@gmail.com> writes:
>
>> On 01/02/2013 09:48 AM, Jonathan Nieder wrote:
>>> Jeff King wrote:
>>>
>>>> It seems I am late to the party. But FWIW, this looks the most sane to
>>>> me of the patches posted in this thread.
>>> ...
>> FYI, this seems a sane approach to me....
>> The only nit I have to offer is that I'd like to see more comments in
>> the git Makefile about why this "semi-hack" is needed.
>
> Thanks, everybody.
>
> Please eyeball the below for (hopefully) the last time, to be
> eventually merged to maint-1.7.12, maint-1.8.0 and maint (aka
> maint-1.8.1) branches.
>
> -- >8 --
> From: Jonathan Nieder <jrnieder@gmail.com>
> Date: Wed, 2 Jan 2013 00:25:44 -0800
> Subject: [PATCH] build: do not automatically reconfigure unless configure.ac changed
>
> Starting with v1.7.12-rc0~4^2 (build: reconfigure automatically if
> configure.ac changes, 2012-07-19), "config.status --recheck" is
> automatically run every time the "configure" script changes. In
> particular, that means the configuration procedure repeats whenever
> the version number changes (since the configure script changes to
> support "./configure --version" and "./configure --help"), making
> bisecting painfully slow.
>
> The intent was to make the reconfiguration process only trigger for
> changes to configure.ac's logic. Tweak the Makefile rule to match
> that intent by depending on configure.ac instead of configure.
>
> Reported-by: Martin von Zweigbergk <martinvonz@gmail.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> Reviewed-by: Jeff King <peff@peff.net>
> Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
> ---
> Makefile | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 26b697d..2f5e2ab 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2167,8 +2167,14 @@ configure: configure.ac GIT-VERSION-FILE
> $(RM) $<+
>
> ifdef AUTOCONFIGURED
> -config.status: configure
> - $(QUIET_GEN)if test -f config.status; then \
> +# We avoid depending on 'configure' here, because it gets rebuilt
> +# every time GIT-VERSION-FILE is modified, only to update the embedded
> +# version number string, which config.status does not care about.
>
Alas, config.status *do* care about it, in that the '@PACKAGE_VERSION@',
'@PACKAGE_STRING@' and '@DEFS@' substitutions are affected by what is
hard-coded in configure as the version number [1]. But if we do not
use those substitutions in any of our files (and I believe we don't),
then *we* can happily not care about the configure embedded version
number string, and thus avoid the extra configure runs. Phew.
[1] Yes, this is a mess. We know. Sorry!
> +# We
> +# do want to recheck when the platform/environment detection logic
> +# changes, hence this depends on configure.ac.
> +config.status: configure.ac
> + $(QUIET_GEN)$(MAKE) configure && \
> + if test -f config.status; then \
> ./config.status --recheck; \
> else \
> ./configure; \
HTH,
Stefano
next prev parent reply other threads:[~2013-01-02 19:35 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-02 1:11 Makefile dependency from 'configure' to 'GIT-VERSION-FILE' Martin von Zweigbergk
2013-01-02 7:21 ` Jonathan Nieder
2013-01-02 7:47 ` Martin von Zweigbergk
2013-01-02 8:25 ` [PATCH v2] build: do not automatically reconfigure unless configure.ac changed Jonathan Nieder
2013-01-02 8:38 ` Jeff King
2013-01-02 8:48 ` Jonathan Nieder
2013-01-02 14:13 ` Stefano Lattarini
2013-01-02 16:50 ` Junio C Hamano
2013-01-02 17:07 ` Martin von Zweigbergk
2013-01-02 19:35 ` Stefano Lattarini [this message]
2013-01-02 20:25 ` Junio C Hamano
2013-01-02 20:53 ` Stefano Lattarini
2013-01-02 8:42 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50E48BF6.2020900@gmail.com \
--to=stefano.lattarini@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=martinvonz@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).