Rev | Line | |
---|
[2] | 1 | # |
---|
| 2 | # $Id$ |
---|
| 3 | # |
---|
| 4 | # [ Description ] |
---|
| 5 | # |
---|
| 6 | # Makefile |
---|
| 7 | # |
---|
| 8 | |
---|
| 9 | #-----[ Directory ]---------------------------------------- |
---|
| 10 | DIR_SRC = src |
---|
| 11 | DIR_INC = include |
---|
| 12 | |
---|
| 13 | #-----[ Commands ]----------------------------------------- |
---|
| 14 | ECHO = echo |
---|
| 15 | RM = rm -f |
---|
| 16 | MV = mv |
---|
| 17 | PWD = `pwd` |
---|
| 18 | |
---|
| 19 | LEXER = flex -v -d |
---|
| 20 | PARSER = bison -d |
---|
| 21 | |
---|
| 22 | LEXER_FILES = $(patsubst $(DIR_SRC)/%.l,$(DIR_SRC)/%_lexer.cpp,$(wildcard $(DIR_SRC)/*.l)) |
---|
| 23 | PARSER_FILES = $(patsubst $(DIR_SRC)/%.y,$(DIR_SRC)/%_parser.cpp,$(wildcard $(DIR_SRC)/*.y)) \ |
---|
| 24 | $(patsubst $(DIR_SRC)/%.y,$(DIR_INC)/%_parser.h,$(wildcard $(DIR_SRC)/*.y)) |
---|
| 25 | |
---|
| 26 | #-----[ Rules ]-------------------------------------------- |
---|
| 27 | .PRECIOUS : $(DIR_SRC)/%_lexer.cpp $(DIR_SRC)/%_parser.cpp $(DIR_INC)/%_parser.h |
---|
| 28 | |
---|
| 29 | all : $(PARSER_FILES) $(LEXER_FILES) |
---|
| 30 | |
---|
| 31 | $(DIR_SRC)/%_lexer.cpp : $(DIR_SRC)/%.l |
---|
| 32 | @$(ECHO) "Generate Lexical analyser : $*" |
---|
| 33 | @$(LEXER) -o$*_lexer.cpp $< |
---|
| 34 | @$(MV) $*_lexer.cpp $@ |
---|
| 35 | |
---|
| 36 | $(DIR_SRC)/%_parser.cpp : $(DIR_SRC)/%.y |
---|
| 37 | @$(ECHO) "Generate Parser : $*" |
---|
| 38 | @$(PARSER) -o $*_parser.cpp $< |
---|
| 39 | @$(MV) $*_parser.cpp $@ |
---|
| 40 | |
---|
| 41 | $(DIR_INC)/%_parser.h : $(DIR_SRC)/%_parser.cpp |
---|
| 42 | @$(MV) $*_parser.hpp $(DIR_INC)/$*_parser.h |
---|
| 43 | # @$(MV) $*_parser.cpp.h $(DIR_INC)/$*_parser.h |
---|
| 44 | |
---|
| 45 | clean : |
---|
| 46 | @$(ECHO) "Delete temporary files in directory "$(PWD) |
---|
| 47 | @$(RM) $(PARSER_FILES) \ |
---|
| 48 | $(LEXER_FILES) \ |
---|
| 49 | *~ \ |
---|
| 50 | $(DIR_SRC)/*~ |
---|
| 51 | |
---|
Note: See
TracBrowser
for help on using the repository browser.