Skip to content

Commit 373a5ed

Browse files
jrngitster
authored andcommitted
Makefile: use target-specific variable to pass flags to cc
This allows reusing the standard %.o: %.c pattern rule even for targets that require special flags to be set. Thus after this change, any changes in the command for compilation only have to be performed in one place. Target-specific variables have been supported in GNU make since version 3.77, which has been available since 1998. Acked-by: Linus Torvalds <[email protected]> Signed-off-by: Jonathan Nieder <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 31838b4 commit 373a5ed

File tree

1 file changed

+18
-23
lines changed

1 file changed

+18
-23
lines changed

Makefile

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,20 +1467,19 @@ shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell
14671467
strip: $(PROGRAMS) git$X
14681468
$(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X
14691469

1470-
git.o: git.c common-cmds.h GIT-CFLAGS
1471-
$(QUIET_CC)$(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \
1472-
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
1473-
$(ALL_CFLAGS) -o $@ -c $(filter %.c,$^)
1470+
git.o: common-cmds.h
1471+
git.o: ALL_CFLAGS += -DGIT_VERSION='"$(GIT_VERSION)"' \
1472+
'-DGIT_HTML_PATH="$(htmldir_SQ)"'
14741473

14751474
git$X: git.o $(BUILTIN_OBJS) $(GITLIBS)
14761475
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \
14771476
$(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS)
14781477

1479-
builtin-help.o: builtin-help.c common-cmds.h GIT-CFLAGS
1480-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
1481-
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
1482-
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
1483-
'-DGIT_INFO_PATH="$(infodir_SQ)"' $<
1478+
builtin-help.o: common-cmds.h
1479+
builtin-help.o: ALL_CFLAGS += \
1480+
'-DGIT_HTML_PATH="$(htmldir_SQ)"' \
1481+
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
1482+
'-DGIT_INFO_PATH="$(infodir_SQ)"'
14841483

14851484
$(BUILT_INS): git$X
14861485
$(QUIET_BUILT_IN)$(RM) $@ && \
@@ -1638,25 +1637,21 @@ git.o git.spec \
16381637
%.o: %.S GIT-CFLAGS
16391638
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $<
16401639

1641-
exec_cmd.o: exec_cmd.c GIT-CFLAGS
1642-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
1643-
'-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
1644-
'-DBINDIR="$(bindir_relative_SQ)"' \
1645-
'-DPREFIX="$(prefix_SQ)"' \
1646-
$<
1640+
exec_cmd.o: ALL_CFLAGS += \
1641+
'-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
1642+
'-DBINDIR="$(bindir_relative_SQ)"' \
1643+
'-DPREFIX="$(prefix_SQ)"'
16471644

1648-
builtin-init-db.o: builtin-init-db.c GIT-CFLAGS
1649-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"' $<
1645+
builtin-init-db.o: ALL_CFLAGS += \
1646+
-DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"'
16501647

1651-
config.o: config.c GIT-CFLAGS
1652-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"' $<
1648+
config.o: ALL_CFLAGS += -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"'
16531649

1654-
http.o: http.c GIT-CFLAGS
1655-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DGIT_USER_AGENT='"git/$(GIT_VERSION)"' $<
1650+
http.o: ALL_CFLAGS += -DGIT_USER_AGENT='"git/$(GIT_VERSION)"'
16561651

16571652
ifdef NO_EXPAT
1658-
http-walker.o: http-walker.c http.h GIT-CFLAGS
1659-
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DNO_EXPAT $<
1653+
http-walker.o: http.h
1654+
http-walker.o: ALL_CFLAGS += -DNO_EXPAT
16601655
endif
16611656

16621657
git-%$X: %.o $(GITLIBS)

0 commit comments

Comments
 (0)