.PRECIOUS: $(BUILD_OBJ_DIR)/Depend/.dir
.PRECIOUS: $(BUILD_OBJ_DIR)/Debug/.dir $(BUILD_OBJ_DIR)/Release/.dir
-# Create .o files in the ObjectFiles directory from the .cpp and .c files...
-#$(BUILD_OBJ_DIR)/Release/%.o: $(SourceDir)%.cpp $(BUILD_OBJ_DIR)/Release/.dir
- #@echo "Compiling $<"
- #$(VERB) $(CompileO) $< -o $@
-
-#$(BUILD_OBJ_DIR)/Release/%.o: $(SourceDir)%.c $(BUILD_OBJ_DIR)/Release/.dir
- #$(VERB) $(CompileCO) $< -o $@
-
-#$(BUILD_OBJ_DIR)/Profile/%.o: $(SourceDir)%.cpp $(BUILD_OBJ_DIR)/Profile/.dir
- #@echo "Compiling $<"
- #$(VERB) $(CompileP) $< -o $@
-
-#$(BUILD_OBJ_DIR)/Profile/%.o: $(SourceDir)%.c $(BUILD_OBJ_DIR)/Profile/.dir
- #@echo "Compiling $<"
- #$(VERB) $(CompileCP) $< -o $@
-
-#$(BUILD_OBJ_DIR)/Debug/%.o: $(SourceDir)%.cpp $(BUILD_OBJ_DIR)/Debug/.dir
- #@echo "Compiling $<"
- #$(VERB) $(CompileG) $< -o $@
-
-#$(BUILD_OBJ_DIR)/Debug/%.o: $(SourceDir)%.c $(BUILD_OBJ_DIR)/Debug/.dir
- #$(VERB) $(CompileCG) $< -o $@
-
# Create .lo files in the ObjectFiles directory from the .cpp and .c files...
$(BUILD_OBJ_DIR)/Release/%.lo: $(SourceDir)%.cpp $(BUILD_OBJ_DIR)/Release/.dir
@echo "Compiling $<"
@echo "Compiling $<"
$(VERB) $(CompileCG) $< -o $@
-# Create .lo files in the ObjectFiles directory from the .cpp and .c files...
-$(BUILD_OBJ_DIR)/Release/%.lo: $(SourceDir)%.cpp $(BUILD_OBJ_DIR)/Release/.dir
- @echo "Compiling $<"
- $(VERB) $(CompileO) $< -o $@
-
-$(BUILD_OBJ_DIR)/Release/%.lo: $(SourceDir)%.c $(BUILD_OBJ_DIR)/Release/.dir
- $(VERB) $(CompileCO) $< -o $@
-
-$(BUILD_OBJ_DIR)/Profile/%.lo: $(SourceDir)%.cpp $(BUILD_OBJ_DIR)/Profile/.dir
- @echo "Compiling $<"
- $(VERB) $(CompileP) $< -o $@
-
-$(BUILD_OBJ_DIR)/Profile/%.lo: $(SourceDir)%.c $(BUILD_OBJ_DIR)/Profile/.dir
- @echo "Compiling $<"
- $(VERB) $(CompileCP) $< -o $@
-
-$(BUILD_OBJ_DIR)/Debug/%.lo: $(SourceDir)%.cpp $(BUILD_OBJ_DIR)/Debug/.dir
- @echo "Compiling $<"
- $(VERB) $(CompileG) $< -o $@
-
-$(BUILD_OBJ_DIR)/Debug/%.lo: $(SourceDir)%.c $(BUILD_OBJ_DIR)/Debug/.dir
- $(VERB) $(CompileCG) $< -o $@
-
#
# Rules for building lex/yacc files
#
# FIXME. (f.e. char Buffer[10000]; )
#
%.cpp: %.l
- $(FLEX) -t $< | $(SED) '/^find_rule/d' | \
- $(SED) 's/void yyunput/inline void yyunput/' | \
+ @echo Flex\'ing $<...
+ $(VERB) $(FLEX) -t $< | \
+ $(SED) '/^find_rule/d' | \
+ $(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)/' > $@
+ $(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' \
+ > $@.tmp
+ $(VERB) cmp $@ $@.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 %.h : %.y
@echo Bison\'ing $<...
$(VERB) $(BISON) -v -d -p $(<:%Parser.y=%) $*.y
- $(VERB) ${MV} -f $*.tab.c $*.cpp
- $(VERB) ${MV} -f $*.tab.h $*.h
+ $(VERB) cmp $*.tab.c $*.cpp > /dev/null || ${MV} -f $*.tab.c $*.cpp
+ $(VERB) cmp $*.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
# To create the directories...
%/.dir: