diff options
-rw-r--r-- | Makerules | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -107,21 +107,23 @@ disp_t_strip = $($(DISP)_disp_t_strip) disp_ar = $($(DISP)_disp_ar) disp_ld = $($(DISP)_disp_ld) -CFLAGS_gen.dep = -MT $@ -MD -MF $(dir $@).$(notdir $@).dep +any-prereq = $(filter-out FORCE,$?) $(filter-out FORCE $(wildcard $^),$^) # True if not identical. Neither order nor whitespace nor identical flags # matter. compare_flags = $(strip $(filter-out $(cmd_$(1)), $(cmd_$(@))) \ $(filter-out $(cmd_$(@)), $(cmd_$(1)))) -# Rebuild if the used CC or flags changed. +# Rebuild if any prerequisite, the used CC or flags changed. # Previously used flags are stored in the corresponding .%.dep files -maybe_exec = $(if $(strip $(compare_flags)), \ +maybe_exec = $(if $(strip $(compare_flags) $(any-prereq)), \ @set -e; \ $(disp_$(1)); \ $(cmd_$(1)); \ echo 'cmd_$@ := $(cmd_$1)' >> $(dir $@).$(notdir $@).dep) +CFLAGS_gen.dep = -MT $@ -MD -MF $(dir $@).$(notdir $@).dep + cmd_compile.c = $(CC) -c $< -o $@ $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@)) $(filter-out $(CFLAGS-OMIT-$(notdir $<)),$(CFLAGS-$(notdir $(^D)))) $(CFLAGS-$(subst $(top_srcdir),,$(dir $<))) $(CFLAGS-$(notdir $<)) $(CFLAGS-$(notdir $@)) $(CFLAGS_gen.dep) cmd_compile.i = $(cmd_compile.c:-c=-E -dD) cmd_compile.s = $(cmd_compile.c:-c=-S) |