Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Makefile: update scripts when build-time parameters change
author
Jeff King
<peff@peff.net>
Wed, 20 Jun 2012 18:32:16 +0000
(14:32 -0400)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 9 Jul 2012 15:57:52 +0000
(08:57 -0700)
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
.gitignore
patch
|
blob
|
history
Makefile
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
2b9391b
)
diff --git
a/.gitignore
b/.gitignore
index c60c5a323ff8dc1a14565abed3f4320c29eabe02..6535cd73ad13a84645969b9ad10e64f045ce4072 100644
(file)
--- a/
.gitignore
+++ b/
.gitignore
@@
-3,6
+3,7
@@
/GIT-LDFLAGS
/GIT-GUI-VARS
/GIT-PREFIX
/GIT-LDFLAGS
/GIT-GUI-VARS
/GIT-PREFIX
+/GIT-SCRIPT-DEFINES
/GIT-USER-AGENT
/GIT-VERSION-FILE
/bin-wrappers/
/GIT-USER-AGENT
/GIT-VERSION-FILE
/bin-wrappers/
diff --git
a/Makefile
b/Makefile
index faddf9f96b3dd3f3428636255a3c5e8910336bfa..03da09605a98a3dbd4cdf3ce43aa9d99b4066c55 100644
(file)
--- a/
Makefile
+++ b/
Makefile
@@
-2007,6
+2007,8
@@
common-cmds.h: ./generate-cmdlist.sh command-list.txt
common-cmds.h: $(wildcard Documentation/git-*.txt)
$(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@
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)|' \
define cmd_munge_script
$(RM) $@ $@+ && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@@
-2019,12
+2021,20
@@
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
$@.sh >$@+
endef
$@.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 $@+ $@
$(QUIET_GEN)$(cmd_munge_script) && \
chmod +x $@+ && \
mv $@+ $@
-$(SCRIPT_LIB) : % : %.sh
+$(SCRIPT_LIB) : % : %.sh
GIT-SCRIPT-DEFINES
$(QUIET_GEN)$(cmd_munge_script) && \
mv $@+ $@
$(QUIET_GEN)$(cmd_munge_script) && \
mv $@+ $@
@@
-2726,7
+2736,7
@@
ifndef NO_TCLTK
$(MAKE) -C git-gui clean
endif
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
$(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
.PHONY: all install profile-clean clean strip
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell