Line | |
---|
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.