Makefile: update scripts when build-time parameters change
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>
This commit is contained in:
parent
2b9391bc67
commit
e4dd89ab98
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,6 +3,7 @@
|
|||||||
/GIT-LDFLAGS
|
/GIT-LDFLAGS
|
||||||
/GIT-GUI-VARS
|
/GIT-GUI-VARS
|
||||||
/GIT-PREFIX
|
/GIT-PREFIX
|
||||||
|
/GIT-SCRIPT-DEFINES
|
||||||
/GIT-USER-AGENT
|
/GIT-USER-AGENT
|
||||||
/GIT-VERSION-FILE
|
/GIT-VERSION-FILE
|
||||||
/bin-wrappers/
|
/bin-wrappers/
|
||||||
|
16
Makefile
16
Makefile
@ -2007,6 +2007,8 @@ common-cmds.h: ./generate-cmdlist.sh command-list.txt
|
|||||||
common-cmds.h: $(wildcard Documentation/git-*.txt)
|
common-cmds.h: $(wildcard Documentation/git-*.txt)
|
||||||
$(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@
|
$(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
|
define cmd_munge_script
|
||||||
$(RM) $@ $@+ && \
|
$(RM) $@ $@+ && \
|
||||||
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
|
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
|
||||||
@ -2019,12 +2021,20 @@ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
|
|||||||
$@.sh >$@+
|
$@.sh >$@+
|
||||||
endef
|
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) && \
|
$(QUIET_GEN)$(cmd_munge_script) && \
|
||||||
chmod +x $@+ && \
|
chmod +x $@+ && \
|
||||||
mv $@+ $@
|
mv $@+ $@
|
||||||
|
|
||||||
$(SCRIPT_LIB) : % : %.sh
|
$(SCRIPT_LIB) : % : %.sh GIT-SCRIPT-DEFINES
|
||||||
$(QUIET_GEN)$(cmd_munge_script) && \
|
$(QUIET_GEN)$(cmd_munge_script) && \
|
||||||
mv $@+ $@
|
mv $@+ $@
|
||||||
|
|
||||||
@ -2726,7 +2736,7 @@ ifndef NO_TCLTK
|
|||||||
$(MAKE) -C git-gui clean
|
$(MAKE) -C git-gui clean
|
||||||
endif
|
endif
|
||||||
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
|
$(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: all install profile-clean clean strip
|
||||||
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
|
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
|
||||||
|
Loading…
Reference in New Issue
Block a user