From: Jeff King <peff@peff.net>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Thomas Rast <trast@student.ethz.ch>,
git@vger.kernel.org
Subject: [PATCHv3 09/11] Makefile: update scripts when build-time parameters change
Date: Wed, 20 Jun 2012 14:32:16 -0400 [thread overview]
Message-ID: <20120620183216.GI30995@sigill.intra.peff.net> (raw)
In-Reply-To: <20120620182855.GA26948@sigill.intra.peff.net>
Currently, running:
make SHELL_PATH=/bin/bash &&
make SHELL_PATH=/bin/sh
will not rebuild any shell scripts in the second command,
leading to incorrect results when building from an unclean
working directory.
This patch introduces a new dependency meta-file to notice
the change.
Signed-off-by: Jeff King <peff@peff.net>
---
.gitignore | 1 +
Makefile | 16 +++++++++++++---
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/.gitignore b/.gitignore
index c60c5a3..6535cd7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
/GIT-LDFLAGS
/GIT-GUI-VARS
/GIT-PREFIX
+/GIT-SCRIPT-DEFINES
/GIT-USER-AGENT
/GIT-VERSION-FILE
/bin-wrappers/
diff --git a/Makefile b/Makefile
index b977903..ea55179 100644
--- a/Makefile
+++ b/Makefile
@@ -2011,6 +2011,8 @@ common-cmds.h: ./generate-cmdlist.sh command-list.txt
common-cmds.h: $(wildcard Documentation/git-*.txt)
$(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@
+SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
+ $(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ)
define cmd_munge_script
$(RM) $@ $@+ && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@@ -2023,12 +2025,20 @@ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
$@.sh >$@+
endef
-$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
+GIT-SCRIPT-DEFINES: FORCE
+ @FLAGS='$(SCRIPT_DEFINES)'; \
+ if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \
+ echo 1>&2 " * new script parameters"; \
+ echo "$$FLAGS" >$@; \
+ fi
+
+
+$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh GIT-SCRIPT-DEFINES
$(QUIET_GEN)$(cmd_munge_script) && \
chmod +x $@+ && \
mv $@+ $@
-$(SCRIPT_LIB) : % : %.sh
+$(SCRIPT_LIB) : % : %.sh GIT-SCRIPT-DEFINES
$(QUIET_GEN)$(cmd_munge_script) && \
mv $@+ $@
@@ -2739,7 +2749,7 @@ ifndef NO_TCLTK
$(MAKE) -C git-gui clean
endif
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
- $(RM) GIT-USER-AGENT GIT-PREFIX
+ $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES
.PHONY: all install profile-clean clean strip
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
--
1.7.11.5.gc0eeaa8
next prev parent reply other threads:[~2012-06-20 18:32 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-31 11:48 git version statistics Jeff King
2012-05-31 12:00 ` Jeff King
2012-05-31 19:35 ` Junio C Hamano
2012-06-01 9:03 ` Jeff King
2012-06-01 14:49 ` Junio C Hamano
2012-06-02 16:32 ` Jeff King
2012-06-02 16:59 ` Tomas Carnecky
2012-06-02 18:49 ` Jeff King
2012-06-02 18:51 ` [PATCH 1/4] move git_version_string into version.c Jeff King
2012-06-02 19:01 ` [PATCH 2/4] version: add git_user_agent function Jeff King
2012-06-19 18:40 ` Thomas Rast
2012-06-19 18:59 ` Jeff King
2012-06-19 19:52 ` Jeff King
2012-06-19 19:52 ` [PATCH 1/3] Makefile: apply dependencies consistently to sparse/asm targets Jeff King
2012-06-19 20:38 ` Junio C Hamano
2012-06-19 20:01 ` [PATCH 2/3] Makefile: split GIT_USER_AGENT from GIT-CFLAGS Jeff King
2012-06-19 20:38 ` Junio C Hamano
2012-06-19 20:03 ` [PATCH 3/3] Makefile: split prefix flags " Jeff King
2012-06-19 20:51 ` Junio C Hamano
2012-06-19 21:04 ` Jeff King
2012-06-19 21:39 ` Junio C Hamano
2012-06-19 23:36 ` Jeff King
2012-06-19 23:58 ` Junio C Hamano
2012-06-19 21:43 ` Jeff King
2012-06-19 23:22 ` [PATCHv2 0/8] makefile cleanups Jeff King
2012-06-19 23:23 ` [PATCHv2 1/8] Makefile: apply dependencies consistently to sparse/asm targets Jeff King
2012-06-20 3:50 ` Jonathan Nieder
2012-06-20 4:26 ` Jeff King
2012-06-20 10:27 ` Jonathan Nieder
2012-06-20 16:37 ` Jeff King
2012-06-20 18:28 ` Jeff King
2012-06-20 18:30 ` [PATCHv3 01/11] Makefile: sort LIB_H list Jeff King
2012-06-20 20:00 ` Junio C Hamano
2012-06-20 20:01 ` Jeff King
2012-06-20 18:30 ` [PATCHv3 02/11] Makefile: fold MISC_H into LIB_H Jeff King
2012-06-20 20:01 ` Junio C Hamano
2012-06-20 21:07 ` Jonathan Nieder
2012-06-20 22:11 ` Jeff King
2012-07-07 3:39 ` [PATCH 02.5/11] Makefile: fold XDIFF_H and VCSSVN_H " Jonathan Nieder
2012-07-09 14:59 ` Junio C Hamano
2012-07-06 22:47 ` [PATCHv3 02/11] Makefile: fold MISC_H " Jonathan Nieder
2012-06-20 18:31 ` [PATCHv3 03/11] Makefile: do not have git.o depend on common-cmds.h Jeff King
2012-06-20 21:09 ` Jonathan Nieder
2012-06-20 18:31 ` [PATCHv3 04/11] Makefile: apply dependencies consistently to sparse/asm targets Jeff King
2012-06-20 21:12 ` Jonathan Nieder
2012-06-20 22:15 ` Jeff King
2012-07-07 4:19 ` [PATCH/RFC] Makefile: document ground rules for target-specific dependencies Jonathan Nieder
2012-06-20 18:31 ` [PATCHv3 05/11] Makefile: do not replace @@GIT_USER_AGENT@@ in scripts Jeff King
2012-06-20 20:06 ` Junio C Hamano
2012-06-20 20:09 ` Jeff King
2012-06-20 18:31 ` [PATCHv3 06/11] Makefile: split GIT_USER_AGENT from GIT-CFLAGS Jeff King
2012-06-20 21:21 ` Jonathan Nieder
2012-06-20 22:16 ` Jeff King
2012-06-20 22:21 ` Jonathan Nieder
2012-07-07 4:42 ` [RFC/PATCH v4 " Jonathan Nieder
2012-06-20 18:31 ` [PATCHv3 07/11] Makefile: split prefix flags " Jeff King
2012-06-20 21:28 ` Jonathan Nieder
2012-06-20 22:22 ` Jeff King
2012-06-20 18:32 ` [PATCHv3 08/11] Makefile: do not replace @@GIT_VERSION@@ in shell scripts Jeff King
2012-06-20 18:32 ` Jeff King [this message]
2012-06-20 18:32 ` [PATCHv3 10/11] Makefile: build instaweb similar to other scripts Jeff King
2012-06-20 18:32 ` [PATCHv3 11/11] Makefile: move GIT-VERSION-FILE dependencies closer to use Jeff King
2012-06-20 21:31 ` Jonathan Nieder
2012-06-20 19:30 ` [PATCHv2 1/8] Makefile: apply dependencies consistently to sparse/asm targets Jonathan Nieder
2012-06-20 19:36 ` Jeff King
2012-06-20 19:45 ` Jonathan Nieder
2012-06-20 19:57 ` Jeff King
2012-06-20 21:00 ` Jonathan Nieder
2012-06-21 8:52 ` Automatic dependency tracking in the Git build system (was: Re: [PATCHv2 1/8] Makefile: apply dependencies consistently to sparse/asm targets) Stefano Lattarini
2012-06-20 20:10 ` [PATCHv2 1/8] Makefile: apply dependencies consistently to sparse/asm targets Junio C Hamano
2012-06-20 23:00 ` Thomas Rast
2012-06-21 5:18 ` Jeff King
2012-06-21 5:43 ` Junio C Hamano
2012-06-19 23:24 ` [PATCHv2 2/8] Makefile: do not replace @@GIT_USER_AGENT@@ in scripts Jeff King
2012-06-19 23:25 ` [PATCHv2 3/8] Makefile: split GIT_USER_AGENT from GIT-CFLAGS Jeff King
2012-06-19 23:25 ` [PATCHv2 4/8] Makefile: split prefix flags " Jeff King
2012-06-19 23:27 ` [PATCHv2 5/8] Makefile: do not replace @@GIT_VERSION@@ in shell scripts Jeff King
2012-06-19 23:28 ` [PATCHv2 6/8] Makefile: update scripts when build-time parameters change Jeff King
2012-06-19 23:29 ` [PATCHv2 7/8] Makefile: build instaweb similar to other scripts Jeff King
2012-06-19 23:30 ` [PATCHv2 8/8] Makefile: move GIT-VERSION-FILE dependencies closer to use Jeff King
2012-06-02 19:03 ` [PATCH 3/4] http: get default user-agent from git_user_agent Jeff King
2012-06-02 19:05 ` [PATCH 4/4] include agent identifier in capability string Jeff King
2012-05-31 15:20 ` git version statistics Stephen Bash
2012-06-01 8:52 ` Jeff King
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120620183216.GI30995@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=trast@student.ethz.ch \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).