diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-02-07 19:02:06 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-02-07 19:02:06 +0000 |
commit | 49ff65e37739480fc843b81d3c27a3deb5f9f0bf (patch) | |
tree | a43ff33ee6ccc1af33bb0e37b36a40edec0af1f7 /makefile | |
parent | 934fc643b33e1af6c13e5658133c93a6a35b7cbd (diff) | |
download | Compiler-49ff65e37739480fc843b81d3c27a3deb5f9f0bf.tar.gz Compiler-49ff65e37739480fc843b81d3c27a3deb5f9f0bf.zip |
Started parser but not working yet, finished makefile
Diffstat (limited to 'makefile')
-rw-r--r-- | makefile | 45 |
1 files changed, 40 insertions, 5 deletions
@@ -7,6 +7,12 @@ LEXINC := -Ic_lexer/include LEXBUILDDIR := c_lexer/build LEXSRCDIR := c_lexer/src +PARINC := -Ic_parser/include +PARBUILDDIR := c_parser/build +PARSRCDIR := c_parser/src + +all : bin/c_lexer bin/c_parser + # Make the c_lexer bin/c_lexer : $(LEXBUILDDIR)/main.o $(LEXBUILDDIR)/c_lexer.o $(LEXBUILDDIR)/c_lexer.yy.o @echo "Linking..." @@ -23,14 +29,43 @@ $(LEXBUILDDIR)/%.yy.o : $(LEXSRCDIR)/%.yy.cpp @echo " mkdir -p $(LEXBUILDDIR)"; mkdir -p $(LEXBUILDDIR) @echo " $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $< -$(LEXSRCDIR)/%.yy.cpp : $(LEXSRCDIR)/%.flex +$(LEXSRCDIR)/c_lexer.yy.cpp : $(LEXSRCDIR)/c_lexer.flex @echo "Creating flex" @echo " flex -o $@ $<"; flex -o $@ $< -clean: +# Make the c_parser +bin/c_parser : $(PARBUILDDIR)/parser_main.o $(PARBUILDDIR)/c_parser.tab.o $(PARBUILDDIR)/c_lexer.yy.o + @echo "Linking..." + @echo " mkdir -p bin"; mkdir -p bin + @echo " $(CC) $^ -o bin/c_parser"; $(CC) $^ -o bin/c_parser + +$(PARBUILDDIR)/%.o : $(PARSRCDIR)/%.cpp + @echo "Building sources..." + @echo " mkdir -p $(PARBUILDDIR)"; mkdir -p $(PARBUILDDIR) + @echo " $(CC) $(CFLAGS) $(PARINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(PARINC) -c -o $@ $< + +$(PARBUILDDIR)/%.yy.o : $(PARSRCDIR)/%.yy.cpp + @echo "Building lex..." + @echo " mkdir -p $(PARBUILDDIR)"; mkdir -p $(PARBUILDDIR) + @echo " $(CC) $(CFLAGS) $(PARINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(PARINC) -c -o $@ $< + +$(PARBUILDDIR)/c_parser.tab.o : $(PARSRCDIR)/c_parser.tab.cpp + @echo "Building yacc..." + @echo " mkdir -p $(PARBUILDDIR)"; mkdir -p $(PARBUILDDIR) + @echo " $(CC) $(CFLAGS) $(PARINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(PARINC) -c -o $@ $< + +$(PARSRCDIR)/c_lexer.yy.cpp : $(PARSRCDIR)/c_lexer.flex + @echo "Creating lex..." + @echo " flex -o $@ $<"; flex -o $@ $< + +$(PARSRCDIR)/c_parser.tab.cpp $(PARSRCDIR)/c_parser.tab.hpp : $(PARSRCDIR)/c_parser.y + @echo "Creating yacc..." + @echo " bison -v -d $< -o $(PARSRCDIR)/c_parser.tab.cpp"; bison -v -d $< -o $(PARSRCDIR)/c_parser.tab.cpp + +clean : @echo "Cleaning..." - @echo " rm -r $(LEXBUILDDIR) bin $(LEXSRCDIR)/c_lexer.yy.cpp"; rm -r $(LEXBUILDDIR) bin $(LEXSRCDIR)/c_lexer.yy.cpp + @echo " rm -r $(LEXBUILDDIR) bin $(LEXSRCDIR)/c_lexer.yy.cpp"; rm -r bin $(LEXBUILDDIR) $(LEXSRCDIR)/c_lexer.yy.cpp $(PARBUILDDIR) $(PARSRCDIR)/c_lexer.yy.cpp $(PARSRCDIR)/c_parser.tab.cpp $(PARSRCDIR)/c_parser.tab.hpp -.PHONY: clean +.PHONY : clean -.PRECIOUS: $(LEXSRCDIR)/%.yy.cpp +.PRECIOUS : $(LEXSRCDIR)/%.yy.cpp |