[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] build: use if_changed_rule with %.o:%.c targets
commit 332c735d24387152e8f578e38066b5d03803c2a2 Author: Anthony PERARD <anthony.perard@xxxxxxxxxx> AuthorDate: Tue Sep 7 09:16:45 2021 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Sep 7 09:16:45 2021 +0200 build: use if_changed_rule with %.o:%.c targets Use $(dot-target) to have the target name prefix with a dot. Now, when the CC command has run, it is recorded in .*.cmd file, then if_changed_rules will compare it on subsequent runs. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/Rules.mk | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/xen/Rules.mk b/xen/Rules.mk index a715a4525e..11c253026b 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -192,19 +192,27 @@ FORCE: SRCPATH := $(patsubst $(BASEDIR)/%,%,$(CURDIR)) -%.o: %.c Makefile +quiet_cmd_cc_o_c = CC $@ ifeq ($(CONFIG_ENFORCE_UNIQUE_SYMBOLS),y) - $(CC) $(c_flags) -c $< -o $(@D)/.$(@F).tmp -MQ $@ -ifeq ($(CONFIG_CC_IS_CLANG),y) - $(OBJCOPY) --redefine-sym $<=$(SRCPATH)/$< $(@D)/.$(@F).tmp $@ -else - $(OBJCOPY) --redefine-sym $(<F)=$(SRCPATH)/$< $(@D)/.$(@F).tmp $@ -endif - rm -f $(@D)/.$(@F).tmp + cmd_cc_o_c = $(CC) $(c_flags) -c $< -o $(dot-target).tmp -MQ $@ + ifeq ($(CONFIG_CC_IS_CLANG),y) + cmd_objcopy_fix_sym = $(OBJCOPY) --redefine-sym $<=$(SRCPATH)/$< $(dot-target).tmp $@ + else + cmd_objcopy_fix_sym = $(OBJCOPY) --redefine-sym $(<F)=$(SRCPATH)/$< $(dot-target).tmp $@ + endif + cmd_objcopy_fix_sym += && rm -f $(dot-target).tmp else - $(CC) $(c_flags) -c $< -o $@ + cmd_cc_o_c = $(CC) $(c_flags) -c $< -o $@ endif +define rule_cc_o_c + $(call cmd_and_record,cc_o_c) + $(call cmd,objcopy_fix_sym) +endef + +%.o: %.c FORCE + $(call if_changed_rule,cc_o_c) + quiet_cmd_cc_o_S = CC $@ cmd_cc_o_S = $(CC) $(a_flags) -c $< -o $@ -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |