Re: Makefile dependency from 'configure' to 'GIT-VERSION-FILE'
From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:55:38
Subsystem:
kernel build + files below scripts/ (unless maintained elsewhere), the rest · Maintainers:
Nathan Chancellor, Nicolas Schier, Linus Torvalds
Hi Martin, Martin von Zweigbergk wrote:
I use autoconf with git.git. I have noticed lately, especially when doing things like "git rebase -i --exec make", that ./configure is run every time. If I understand correctly, this is because of 8242ff4 (build: reconfigure automatically if configure.ac changes, 2012-07-19).
How about this patch (untested)? -- >8 -- Subject: 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 <redacted> Signed-off-by: Jonathan Nieder <redacted> --- [...]
quoted hunk ↗ jump to hunk
--- a/Makefile +++ b/Makefile@@ -2267,12 +2267,9 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : unimplemented.sh mv $@+ $@ endif # NO_PYTHON -configure: configure.ac GIT-VERSION-FILE +configure: configure.ac
[...]
quoted hunk ↗ jump to hunk
--- a/configure.ac +++ b/configure.ac@@ -142,7 +142,10 @@ fi ## Configure body starts here. AC_PREREQ(2.59) -AC_INIT([git], [@@GIT_VERSION@@], [git@vger.kernel.org]) +AC_INIT([git], + m4_esyscmd([ ./GIT-VERSION-GEN && + { sed -ne 's/GIT_VERSION = //p' GIT-VERSION-FILE | xargs echo -n; } ]), + [git@vger.kernel.org])
I don't think that would warrant dropping the GIT-VERSION-FILE dependency, since the resulting configure script still hard-codes the version number. Sane? Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 736ecd45..2a22041f 100644
--- a/Makefile
+++ b/Makefile@@ -2275,7 +2275,7 @@ configure: configure.ac GIT-VERSION-FILE $(RM) $<+ ifdef AUTOCONFIGURED -config.status: configure +config.status: configure.ac $(QUIET_GEN)if test -f config.status; then \ ./config.status --recheck; \ else \
--
1.8.1