Skip to content

Commit 620c293

Browse files
peffgitster
authored andcommitted
Makefile: split GIT_USER_AGENT from GIT-CFLAGS
The default user-agent depends on the GIT_VERSION, which means that anytime you switch versions, it causes a full rebuild. Instead, let's split it out into its own file and restrict the dependency to version.o. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 47eb28e commit 620c293

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/GIT-CFLAGS
33
/GIT-LDFLAGS
44
/GIT-GUI-VARS
5+
/GIT-USER-AGENT
56
/GIT-VERSION-FILE
67
/bin-wrappers/
78
/git

Makefile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1922,7 +1922,11 @@ endif
19221922
GIT_USER_AGENT_SQ = $(subst ','\'',$(GIT_USER_AGENT))
19231923
GIT_USER_AGENT_CQ = "$(subst ",\",$(subst \,\\,$(GIT_USER_AGENT)))"
19241924
GIT_USER_AGENT_CQ_SQ = $(subst ','\'',$(GIT_USER_AGENT_CQ))
1925-
BASIC_CFLAGS += -DGIT_USER_AGENT='$(GIT_USER_AGENT_CQ_SQ)'
1925+
GIT-USER-AGENT: FORCE
1926+
@if test x'$(GIT_USER_AGENT_SQ)' != x"`cat GIT-USER-AGENT 2>/dev/null`"; then \
1927+
echo >&2 " * new user-agent flag"; \
1928+
echo '$(GIT_USER_AGENT_SQ)' >GIT-USER-AGENT; \
1929+
fi
19261930

19271931
ALL_CFLAGS += $(BASIC_CFLAGS)
19281932
ALL_LDFLAGS += $(BASIC_LDFLAGS)
@@ -1987,8 +1991,10 @@ builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \
19871991
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
19881992
'-DGIT_INFO_PATH="$(infodir_SQ)"'
19891993

1994+
version.sp version.s version.o: GIT-USER-AGENT
19901995
version.sp version.s version.o: EXTRA_CPPFLAGS = \
1991-
'-DGIT_VERSION="$(GIT_VERSION)"'
1996+
'-DGIT_VERSION="$(GIT_VERSION)"' \
1997+
'-DGIT_USER_AGENT=$(GIT_USER_AGENT_CQ_SQ)'
19921998

19931999
$(BUILT_INS): git$X
19942000
$(QUIET_BUILT_IN)$(RM) $@ && \
@@ -2710,6 +2716,7 @@ ifndef NO_TCLTK
27102716
$(MAKE) -C git-gui clean
27112717
endif
27122718
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
2719+
$(RM) GIT-USER-AGENT
27132720

27142721
.PHONY: all install profile-clean clean strip
27152722
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell

0 commit comments

Comments
 (0)