-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
30 lines (22 loc) · 921 Bytes
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SOURCES = $(wildcard *.cpp engine/*.cpp parser/*.cpp query/*.cpp record/*.cpp sys/*.cpp util/*.cpp lib/fs/utils/*.cpp)
OBJECTS = $(SOURCES:%.cpp=%.o)
LEX = flex
YACC = bison
CXXFLAGS = -std=c++11 -O2 -march=native
LDFLAGS = -lpthread -pthread -O2 -march=native
TARGET = mydb
all: parser/lexer.cc parser/parser.cc $(TARGET)
$(TARGET): $(OBJECTS) parser/parser.o parser/lexer.o
$(CXX) $(LDFLAGS) $(OBJECTS) parser/parser.o parser/lexer.o -o $(TARGET)
parser/lexer.o: parser/lexer.cc
$(CXX) -c $(CXXFLAGS) parser/lexer.cc -o parser/lexer.o
parser/parser.o: parser/parser.cc
$(CXX) -c $(CXXFLAGS) parser/parser.cc -o parser/parser.o
parser/lexer.cc: parser/lexer.l
$(LEX) -o parser/lexer.cc parser/lexer.l
parser/parser.cc: parser/parser.ypp
$(YACC) -o parser/parser.cc -d parser/parser.ypp
%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $< -o $@
clean:
rm -rf *~ $(TARGET) $(OBJECTS) parser/*.hh parser/*.cc