зеркало из https://github.com/microsoft/git.git
Makefile: split prefix flags from GIT-CFLAGS
Most of the build targets do not care about the setting of $prefix (or its derivative variables), but will be rebuilt if the prefix changes. For most setups this doesn't matter (they set prefix once and never change it), but for a setup which puts each branch or version in its own prefix, this unnecessarily causes a full rebuild whenever the branc is changed. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
33ddbcb012
Коммит
be1dbd0a93
|
@ -2,6 +2,7 @@
|
|||
/GIT-CFLAGS
|
||||
/GIT-LDFLAGS
|
||||
/GIT-GUI-VARS
|
||||
/GIT-PREFIX
|
||||
/GIT-USER-AGENT
|
||||
/GIT-VERSION-FILE
|
||||
/bin-wrappers/
|
||||
|
|
30
Makefile
30
Makefile
|
@ -1973,6 +1973,7 @@ shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell
|
|||
strip: $(PROGRAMS) git$X
|
||||
$(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X
|
||||
|
||||
git.sp git.s git.o: GIT-PREFIX
|
||||
git.sp git.s git.o: EXTRA_CPPFLAGS = \
|
||||
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
|
||||
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
|
||||
|
@ -1984,7 +1985,7 @@ git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)
|
|||
|
||||
help.sp help.s help.o: common-cmds.h
|
||||
|
||||
builtin/help.sp builtin/help.s builtin/help.o: common-cmds.h
|
||||
builtin/help.sp builtin/help.s builtin/help.o: common-cmds.h GIT-PREFIX
|
||||
builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \
|
||||
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
|
||||
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
|
||||
|
@ -2031,7 +2032,7 @@ $(SCRIPT_LIB) : % : %.sh
|
|||
ifndef NO_PERL
|
||||
$(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak
|
||||
|
||||
perl/perl.mak: GIT-CFLAGS perl/Makefile perl/Makefile.PL
|
||||
perl/perl.mak: GIT-CFLAGS GIT-PREFIX perl/Makefile perl/Makefile.PL
|
||||
$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
|
||||
|
||||
$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
|
||||
|
@ -2075,7 +2076,7 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
|
|||
endif # NO_PERL
|
||||
|
||||
ifndef NO_PYTHON
|
||||
$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS
|
||||
$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS GIT-PREFIX
|
||||
$(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
|
||||
$(QUIET_GEN)$(RM) $@ $@+ && \
|
||||
INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C git_remote_helpers -s \
|
||||
|
@ -2235,20 +2236,25 @@ else
|
|||
$(OBJECTS): $(LIB_H)
|
||||
endif
|
||||
|
||||
exec_cmd.sp exec_cmd.s exec_cmd.o: GIT-PREFIX
|
||||
exec_cmd.sp exec_cmd.s exec_cmd.o: EXTRA_CPPFLAGS = \
|
||||
'-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
|
||||
'-DBINDIR="$(bindir_relative_SQ)"' \
|
||||
'-DPREFIX="$(prefix_SQ)"'
|
||||
|
||||
builtin/init-db.sp builtin/init-db.s builtin/init-db.o: GIT-PREFIX
|
||||
builtin/init-db.sp builtin/init-db.s builtin/init-db.o: EXTRA_CPPFLAGS = \
|
||||
-DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"'
|
||||
|
||||
config.sp config.s config.o: GIT-PREFIX
|
||||
config.sp config.s config.o: EXTRA_CPPFLAGS = \
|
||||
-DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"'
|
||||
|
||||
attr.sp attr.s attr.o: GIT-PREFIX
|
||||
attr.sp attr.s attr.o: EXTRA_CPPFLAGS = \
|
||||
-DETC_GITATTRIBUTES='"$(ETC_GITATTRIBUTES_SQ)"'
|
||||
|
||||
gettext.sp gettext.s gettext.o: GIT-PREFIX
|
||||
gettext.sp gettext.s gettext.o: EXTRA_CPPFLAGS = \
|
||||
-DGIT_LOCALE_PATH='"$(localedir_SQ)"'
|
||||
|
||||
|
@ -2372,14 +2378,22 @@ cscope:
|
|||
$(FIND_SOURCE_FILES) | xargs cscope -b
|
||||
|
||||
### Detect prefix changes
|
||||
TRACK_CFLAGS = $(CC):$(subst ','\'',$(ALL_CFLAGS)):\
|
||||
$(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ):\
|
||||
$(localedir_SQ):$(USE_GETTEXT_SCHEME)
|
||||
TRACK_PREFIX = $(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ):\
|
||||
$(localedir_SQ)
|
||||
|
||||
GIT-PREFIX: FORCE
|
||||
@FLAGS='$(TRACK_PREFIX)'; \
|
||||
if test x"$$FLAGS" != x"`cat GIT-PREFIX 2>/dev/null`" ; then \
|
||||
echo 1>&2 " * new prefix flags"; \
|
||||
echo "$$FLAGS" >GIT-PREFIX; \
|
||||
fi
|
||||
|
||||
TRACK_CFLAGS = $(CC):$(subst ','\'',$(ALL_CFLAGS)):$(USE_GETTEXT_SCHEME)
|
||||
|
||||
GIT-CFLAGS: FORCE
|
||||
@FLAGS='$(TRACK_CFLAGS)'; \
|
||||
if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \
|
||||
echo 1>&2 " * new build flags or prefix"; \
|
||||
echo 1>&2 " * new build flags"; \
|
||||
echo "$$FLAGS" >GIT-CFLAGS; \
|
||||
fi
|
||||
|
||||
|
@ -2715,7 +2729,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
|
||||
$(RM) GIT-USER-AGENT GIT-PREFIX
|
||||
|
||||
.PHONY: all install profile-clean clean strip
|
||||
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
|
||||
|
|
Загрузка…
Ссылка в новой задаче