Skip to content

Commit a4c3616

Browse files
committed
Merge branch 'jn/makefile'
* jn/makefile: Makefile: consolidate .FORCE-* targets Makefile: learn to generate listings for targets requiring special flags Makefile: use target-specific variable to pass flags to cc Makefile: regenerate assembler listings when asked
2 parents a0db3e5 + 13fca9f commit a4c3616

File tree

2 files changed

+26
-34
lines changed

2 files changed

+26
-34
lines changed

Documentation/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ install-pdf: pdf
204204
install-html: html
205205
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
206206

207-
../GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
207+
../GIT-VERSION-FILE: FORCE
208208
$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
209209

210210
-include ../GIT-VERSION-FILE
@@ -337,4 +337,4 @@ quick-install-man:
337337
quick-install-html:
338338
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
339339

340-
.PHONY: .FORCE-GIT-VERSION-FILE
340+
.PHONY: FORCE

Makefile

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ all::
222222
# DEFAULT_EDITOR='$GIT_FALLBACK_EDITOR',
223223
# DEFAULT_EDITOR='"C:\Program Files\Vim\gvim.exe" --nofork'
224224

225-
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
225+
GIT-VERSION-FILE: FORCE
226226
@$(SHELL_PATH) ./GIT-VERSION-GEN
227227
-include GIT-VERSION-FILE
228228

@@ -1486,20 +1486,19 @@ shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell
14861486
strip: $(PROGRAMS) git$X
14871487
$(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X
14881488

1489-
git.o: git.c common-cmds.h GIT-CFLAGS
1490-
$(QUIET_CC)$(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \
1491-
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
1492-
$(ALL_CFLAGS) -o $@ -c $(filter %.c,$^)
1489+
git.o: common-cmds.h
1490+
git.s git.o: ALL_CFLAGS += -DGIT_VERSION='"$(GIT_VERSION)"' \
1491+
'-DGIT_HTML_PATH="$(htmldir_SQ)"'
14931492

14941493
git$X: git.o $(BUILTIN_OBJS) $(GITLIBS)
14951494
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \
14961495
$(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS)
14971496

1498-
builtin-help.o: builtin-help.c common-cmds.h GIT-CFLAGS
1499-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
1500-
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
1501-
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
1502-
'-DGIT_INFO_PATH="$(infodir_SQ)"' $<
1497+
builtin-help.o: common-cmds.h
1498+
builtin-help.s builtin-help.o: ALL_CFLAGS += \
1499+
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
1500+
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
1501+
'-DGIT_INFO_PATH="$(infodir_SQ)"'
15031502

15041503
$(BUILT_INS): git$X
15051504
$(QUIET_BUILT_IN)$(RM) $@ && \
@@ -1652,30 +1651,26 @@ git.o git.spec \
16521651

16531652
%.o: %.c GIT-CFLAGS
16541653
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $<
1655-
%.s: %.c GIT-CFLAGS
1654+
%.s: %.c GIT-CFLAGS FORCE
16561655
$(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $<
16571656
%.o: %.S GIT-CFLAGS
16581657
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $<
16591658

1660-
exec_cmd.o: exec_cmd.c GIT-CFLAGS
1661-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
1662-
'-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
1663-
'-DBINDIR="$(bindir_relative_SQ)"' \
1664-
'-DPREFIX="$(prefix_SQ)"' \
1665-
$<
1659+
exec_cmd.s exec_cmd.o: ALL_CFLAGS += \
1660+
'-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
1661+
'-DBINDIR="$(bindir_relative_SQ)"' \
1662+
'-DPREFIX="$(prefix_SQ)"'
16661663

1667-
builtin-init-db.o: builtin-init-db.c GIT-CFLAGS
1668-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"' $<
1664+
builtin-init-db.s builtin-init-db.o: ALL_CFLAGS += \
1665+
-DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"'
16691666

1670-
config.o: config.c GIT-CFLAGS
1671-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"' $<
1667+
config.s config.o: ALL_CFLAGS += -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"'
16721668

1673-
http.o: http.c GIT-CFLAGS
1674-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DGIT_USER_AGENT='"git/$(GIT_VERSION)"' $<
1669+
http.s http.o: ALL_CFLAGS += -DGIT_USER_AGENT='"git/$(GIT_VERSION)"'
16751670

16761671
ifdef NO_EXPAT
1677-
http-walker.o: http-walker.c http.h GIT-CFLAGS
1678-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DNO_EXPAT $<
1672+
http-walker.o: http.h
1673+
http-walker.s http-walker.o: ALL_CFLAGS += -DNO_EXPAT
16791674
endif
16801675

16811676
git-%$X: %.o $(GITLIBS)
@@ -1753,7 +1748,7 @@ cscope:
17531748
TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):\
17541749
$(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ)
17551750

1756-
GIT-CFLAGS: .FORCE-GIT-CFLAGS
1751+
GIT-CFLAGS: FORCE
17571752
@FLAGS='$(TRACK_CFLAGS)'; \
17581753
if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \
17591754
echo 1>&2 " * new build flags or prefix"; \
@@ -1763,7 +1758,7 @@ GIT-CFLAGS: .FORCE-GIT-CFLAGS
17631758
# We need to apply sq twice, once to protect from the shell
17641759
# that runs GIT-BUILD-OPTIONS, and then again to protect it
17651760
# and the first level quoting from the shell that runs "echo".
1766-
GIT-BUILD-OPTIONS: .FORCE-GIT-BUILD-OPTIONS
1761+
GIT-BUILD-OPTIONS: FORCE
17671762
@echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@
17681763
@echo PERL_PATH=\''$(subst ','\'',$(PERL_PATH_SQ))'\' >>$@
17691764
@echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@
@@ -1775,14 +1770,12 @@ GIT-BUILD-OPTIONS: .FORCE-GIT-BUILD-OPTIONS
17751770
ifndef NO_TCLTK
17761771
TRACK_VARS = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)')
17771772

1778-
GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
1773+
GIT-GUI-VARS: FORCE
17791774
@VARS='$(TRACK_VARS)'; \
17801775
if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
17811776
echo 1>&2 " * new Tcl/Tk interpreter location"; \
17821777
echo "$$VARS" >$@; \
17831778
fi
1784-
1785-
.PHONY: .FORCE-GIT-GUI-VARS
17861779
endif
17871780

17881781
### Testing rules
@@ -2024,8 +2017,7 @@ endif
20242017

20252018
.PHONY: all install clean strip
20262019
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
2027-
.PHONY: .FORCE-GIT-VERSION-FILE TAGS tags cscope .FORCE-GIT-CFLAGS
2028-
.PHONY: .FORCE-GIT-BUILD-OPTIONS
2020+
.PHONY: FORCE TAGS tags cscope
20292021

20302022
### Check documentation
20312023
#

0 commit comments

Comments
 (0)