diff options
author | Chris Lattner <sabre@nondot.org> | 2003-01-16 22:44:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-01-16 22:44:19 +0000 |
commit | e899678ffdd669338b6d71f429bb76eec0b85b11 (patch) | |
tree | 8addd32d0dcfc2cca3ee015f76fdd4a041144367 | |
parent | 30440c63426358acde919912437f56904de76408 (diff) |
Simplify and correct rules for building lex/yacc files. Make sure to delete
output upon make clean
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5347 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | Makefile.common | 18 | ||||
-rw-r--r-- | Makefile.rules | 18 |
2 files changed, 28 insertions, 8 deletions
diff --git a/Makefile.common b/Makefile.common index eb5b4b661d..43048f7eb7 100644 --- a/Makefile.common +++ b/Makefile.common @@ -451,6 +451,15 @@ $(BUILD_ROOT)/Debug/%.o: %.cpp $(BUILD_ROOT)/Debug/.dir $(BUILD_ROOT)/Debug/%.o: %.c $(BUILD_ROOT)/Debug/.dir $(VERB) $(CompileCG) $< -o $@ +# +# Rules for building lex/yacc files +# +LEX_FILES = $(filter %.l, $(Source)) +LEX_OUTPUT = $(LEX_FILES:%.l=%.cpp) +YACC_FILES = $(filter %.y, $(Source)) +YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output) +.PRECIOUS: $(LEX_OUTPUT) $(YACC_OUTPUT) + # Create a .cpp source file from a flex input file... this uses sed to cut down # on the warnings emited by GCC... %.cpp: %.l @@ -459,13 +468,13 @@ $(BUILD_ROOT)/Debug/%.o: %.c $(BUILD_ROOT)/Debug/.dir # Rule for building the bison parsers... %.cpp %.h : %.y - $(VERB) $(BISON) -v -d -p $(<:%Parser.y=%) $(basename $@).y - $(VERB) mv -f $(basename $@).tab.c $(basename $@).cpp - $(VERB) mv -f $(basename $@).tab.h $(basename $@).h + $(VERB) $(BISON) -v -d -p $(<:%Parser.y=%) $*.y + $(VERB) mv -f $*.tab.c $*.cpp + $(VERB) mv -f $*.tab.h $*.h # To create the directories... %/.dir: - $(VERB) mkdir -p $(@D) + $(VERB) mkdir -p $* @date > $@ # To create postscript files from dot files... @@ -476,6 +485,7 @@ $(BUILD_ROOT)/Debug/%.o: %.c $(BUILD_ROOT)/Debug/.dir clean:: $(VERB) rm -rf $(BUILD_ROOT)/Debug $(BUILD_ROOT)/Release $(BUILD_ROOT)/Profile $(BUILD_ROOT)/Depend $(VERB) rm -f core core.[0-9][0-9]* *.o *.d *.so *~ *.flc + $(VERB) rm -f $(LEX_OUTPUT) $(YACC_OUTPUT) # If dependancies were generated for the file that included this file, # include the dependancies now... diff --git a/Makefile.rules b/Makefile.rules index eb5b4b661d..43048f7eb7 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -451,6 +451,15 @@ $(BUILD_ROOT)/Debug/%.o: %.cpp $(BUILD_ROOT)/Debug/.dir $(BUILD_ROOT)/Debug/%.o: %.c $(BUILD_ROOT)/Debug/.dir $(VERB) $(CompileCG) $< -o $@ +# +# Rules for building lex/yacc files +# +LEX_FILES = $(filter %.l, $(Source)) +LEX_OUTPUT = $(LEX_FILES:%.l=%.cpp) +YACC_FILES = $(filter %.y, $(Source)) +YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output) +.PRECIOUS: $(LEX_OUTPUT) $(YACC_OUTPUT) + # Create a .cpp source file from a flex input file... this uses sed to cut down # on the warnings emited by GCC... %.cpp: %.l @@ -459,13 +468,13 @@ $(BUILD_ROOT)/Debug/%.o: %.c $(BUILD_ROOT)/Debug/.dir # Rule for building the bison parsers... %.cpp %.h : %.y - $(VERB) $(BISON) -v -d -p $(<:%Parser.y=%) $(basename $@).y - $(VERB) mv -f $(basename $@).tab.c $(basename $@).cpp - $(VERB) mv -f $(basename $@).tab.h $(basename $@).h + $(VERB) $(BISON) -v -d -p $(<:%Parser.y=%) $*.y + $(VERB) mv -f $*.tab.c $*.cpp + $(VERB) mv -f $*.tab.h $*.h # To create the directories... %/.dir: - $(VERB) mkdir -p $(@D) + $(VERB) mkdir -p $* @date > $@ # To create postscript files from dot files... @@ -476,6 +485,7 @@ $(BUILD_ROOT)/Debug/%.o: %.c $(BUILD_ROOT)/Debug/.dir clean:: $(VERB) rm -rf $(BUILD_ROOT)/Debug $(BUILD_ROOT)/Release $(BUILD_ROOT)/Profile $(BUILD_ROOT)/Depend $(VERB) rm -f core core.[0-9][0-9]* *.o *.d *.so *~ *.flc + $(VERB) rm -f $(LEX_OUTPUT) $(YACC_OUTPUT) # If dependancies were generated for the file that included this file, # include the dependancies now... |