aboutsummaryrefslogtreecommitdiffstats
path: root/makefile
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-03-01 17:35:06 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-03-01 17:35:06 +0000
commit34d69709e621b9609833a3d6bae31195b425f2f8 (patch)
tree1bc87404f517cc26700e361d421ea6e0e665eec4 /makefile
parente9644f6b24360e55c865c99d9ffbf285cb9d61a0 (diff)
downloadCompiler-34d69709e621b9609833a3d6bae31195b425f2f8.tar.gz
Compiler-34d69709e621b9609833a3d6bae31195b425f2f8.zip
Adding compiler to makefile
Diffstat (limited to 'makefile')
-rw-r--r--makefile33
1 files changed, 33 insertions, 0 deletions
diff --git a/makefile b/makefile
index 66f6695..9cef91e 100644
--- a/makefile
+++ b/makefile
@@ -11,6 +11,10 @@ PARINC := -Ic_parser/include
PARBUILDDIR := c_parser/build
PARSRCDIR := c_parser/src
+COMPINC := -Ic_compiler/include
+COMPBUILDDIR := c_compiler/build
+COMPSRCDIR := c_compiler/src
+
all : bin/c_lexer bin/c_parser
# Make the c_lexer
@@ -62,6 +66,35 @@ $(PARSRCDIR)/c_parser.tab.cpp $(PARSRCDIR)/c_parser.tab.hpp : $(PARSRCDIR)/c_par
@echo "Creating yacc..."
@echo " bison -v -d $< -o $(PARSRCDIR)/c_parser.tab.cpp"; bison -v -d $< -o $(PARSRCDIR)/c_parser.tab.cpp
+# Make the c_parser
+bin/c_compiler : $(COMPBUILDDIR)/parser_main.o $(COMPBUILDDIR)/c_parser.tab.o $(COMPBUILDDIR)/c_lexer.yy.o
+ @echo "Linking..."
+ @echo " mkdir -p bin"; mkdir -p bin
+ @echo " $(CC) $^ -o bin/c_parser"; $(CC) $^ -o bin/c_parser
+
+$(COMPBUILDDIR)/%.o : $(COMPSRCDIR)/%.cpp
+ @echo "Building sources..."
+ @echo " mkdir -p $(COMPBUILDDIR)"; mkdir -p $(COMPBUILDDIR)
+ @echo " $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<
+
+$(COMPBUILDDIR)/%.yy.o : $(COMPSRCDIR)/%.yy.cpp
+ @echo "Building lex..."
+ @echo " mkdir -p $(COMPBUILDDIR)"; mkdir -p $(COMPBUILDDIR)
+ @echo " $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<
+
+$(COMPBUILDDIR)/c_parser.tab.o : $(COMPSRCDIR)/c_parser.tab.cpp
+ @echo "Building yacc..."
+ @echo " mkdir -p $(COMPBUILDDIR)"; mkdir -p $(COMPBUILDDIR)
+ @echo " $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(COMPINC) -c -o $@ $<
+
+$(COMPSRCDIR)/c_lexer.yy.cpp : $(COMPSRCDIR)/c_lexer.flex
+ @echo "Creating lex..."
+ @echo " flex -o $@ $<"; flex -o $@ $<
+
+$(COMPSRCDIR)/c_parser.tab.cpp $(COMPSRCDIR)/c_parser.tab.hpp : $(COMPSRCDIR)/c_parser.y
+ @echo "Creating yacc..."
+ @echo " bison -v -d $< -o $(COMPSRCDIR)/c_parser.tab.cpp"; bison -v -d $< -o $(COMPSRCDIR)/c_parser.tab.cpp
+
clean :
@echo "Cleaning..."
@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 $(PARSRCDIR)/c_parser.output