OSDN Git Service

- since we force make into trying to rebuild unconditionally, we have to
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sun, 1 Jun 2008 12:50:21 +0000 (12:50 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sun, 1 Jun 2008 12:50:21 +0000 (12:50 -0000)
  check for changed prerequisites manually.

Makerules

index 16a5fda..a668f4c 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -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)