diff --git a/Makefile.rules b/Makefile.rules index a6cb6bb30ec..4a2549a592f 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -61,7 +61,7 @@ $(USER_TARGETS):: # PRECONDITIONS: that which must be built/checked first ################################################################################ -SRCMKFILES := $(filter-out Makefile.rules %.in,\ +SRCMKFILES := $(BUILD_SRC_DIR)/Makefile $(filter-out Makefile.rules %.in,\ $(wildcard $(BUILD_SRC_DIR)/Makefile.*)) OBJMKFILES := $(subst $(BUILD_SRC_DIR),$(BUILD_OBJ_DIR),$(SRCMKFILES)) CONFIGURE := $(LLVM_SRC_ROOT)/configure @@ -82,6 +82,8 @@ ifneq ($(strip $(BUILT_SOURCES)),) $(VERB) $(RM) -f $(BUILT_SOURCES) endif +$(BUILT_SOURCES) : $(BUILD_OBJ_ROOT)/Makefile + #------------------------------------------------------------------------ # Make sure we're not using a stale configuration #------------------------------------------------------------------------ @@ -806,21 +808,17 @@ YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output) $(SED) 's/void yyunput/inline void yyunput/' | \ $(SED) 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \ $(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' \ - > $@.tmp - $(VERB) cmp -s $@ $@.tmp > /dev/null || $(MV) -f $@.tmp $@ - @# remove the output of flex if it didn't get moved over... - @rm -f $@.tmp + > $@ # Rule for building the bison parsers... %.c: %.y # Cancel built-in rules for yacc +%.cpp: %.y # Cancel built-in rules for yacc %.h: %.y # Cancel built-in rules for yacc %.cpp %.h : %.y @$(ECHO) "Bisoning $*.y" $(VERB) $(BISON) -v -d -p $( /dev/null || $(MV) -f $*.tab.c $*.cpp - $(VERB) cmp -s $*.tab.h $*.h > /dev/null || $(MV) -f $*.tab.h $*.h - @# If the files were not updated, don't leave them lying around... - @rm -f $*.tab.c $*.tab.h + $(VERB) $(MV) -f $*.tab.c $*.cpp + $(VERB) $(MV) -f $*.tab.h $*.h # To create the directories... %/.dir: