Makefiles: Teach LLVM's recursive makefile descent to update objdir Makefiles if

they are out of date, instead of only testing if they exist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105636 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2010-06-08 20:10:13 +00:00
parent b84adb3b80
commit 546023f5cb

View File

@ -807,7 +807,8 @@ SubDirs += $(DIRS)
ifneq ($(PROJ_SRC_ROOT),$(PROJ_OBJ_ROOT)) ifneq ($(PROJ_SRC_ROOT),$(PROJ_OBJ_ROOT))
$(RecursiveTargets):: $(RecursiveTargets)::
$(Verb) for dir in $(DIRS); do \ $(Verb) for dir in $(DIRS); do \
if [ ! -f $$dir/Makefile ]; then \ if ([ ! -f $$dir/Makefile ] || \
[ $$dir/Makefile -ot $(PROJ_SRC_DIR)/$$dir/Makefile ]); then \
$(MKDIR) $$dir; \ $(MKDIR) $$dir; \
$(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \ $(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
fi; \ fi; \
@ -829,7 +830,8 @@ endif
ifdef EXPERIMENTAL_DIRS ifdef EXPERIMENTAL_DIRS
$(RecursiveTargets):: $(RecursiveTargets)::
$(Verb) for dir in $(EXPERIMENTAL_DIRS); do \ $(Verb) for dir in $(EXPERIMENTAL_DIRS); do \
if [ ! -f $$dir/Makefile ]; then \ if ([ ! -f $$dir/Makefile ] || \
[ $$dir/Makefile -ot $(PROJ_SRC_DIR)/$$dir/Makefile ]); then \
$(MKDIR) $$dir; \ $(MKDIR) $$dir; \
$(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \ $(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
fi; \ fi; \
@ -863,7 +865,9 @@ unitcheck:: $(addsuffix /.makeunitcheck,$(PARALLEL_DIRS))
ParallelTargets := $(foreach T,$(RecursiveTargets),%/.make$(T)) ParallelTargets := $(foreach T,$(RecursiveTargets),%/.make$(T))
$(ParallelTargets) : $(ParallelTargets) :
$(Verb) if [ ! -f $(@D)/Makefile ]; then \ $(Verb) if ([ ! -f $(@D)/Makefile ] || \
[ $(@D)/Makefile -ot \
$(PROJ_SRC_DIR)/$(@D)/Makefile ]); then \
$(MKDIR) $(@D); \ $(MKDIR) $(@D); \
$(CP) $(PROJ_SRC_DIR)/$(@D)/Makefile $(@D)/Makefile; \ $(CP) $(PROJ_SRC_DIR)/$(@D)/Makefile $(@D)/Makefile; \
fi; \ fi; \
@ -882,7 +886,8 @@ ifneq ($(PROJ_SRC_ROOT),$(PROJ_OBJ_ROOT))
$(RecursiveTargets):: $(RecursiveTargets)::
$(Verb) for dir in $(OPTIONAL_DIRS); do \ $(Verb) for dir in $(OPTIONAL_DIRS); do \
if [ -d $(PROJ_SRC_DIR)/$$dir ]; then\ if [ -d $(PROJ_SRC_DIR)/$$dir ]; then\
if [ ! -f $$dir/Makefile ]; then \ if ([ ! -f $$dir/Makefile ] || \
[ $$dir/Makefile -ot $(PROJ_SRC_DIR)/$$dir/Makefile ]); then \
$(MKDIR) $$dir; \ $(MKDIR) $$dir; \
$(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \ $(CP) $(PROJ_SRC_DIR)/$$dir/Makefile $$dir/Makefile; \
fi; \ fi; \