blob: 560c151674e92f1105337c99fb0caaa8da65d8cf (
plain)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
CXX = g++
CXXFLAGS = -std=c++11 -W -Wall -Wextra -pedantic -fpic
SRC_DIR = src
BIN_DIR = bin
LIB_SRC = $(SRC_DIR)/nodes.cc \
$(SRC_DIR)/tree.cc \
$(SRC_DIR)/utils.cc \
$(SRC_DIR)/parser.cc
LIB_OBJ = $(subst .cc,.o,$(LIB_SRC))
TEST_SRC = test.cc
CLC_SRC = clc.cc
all: lib test clc
lib: $(BIN_DIR)/libSimpleParser.so;
test: $(BIN_DIR)/test;
clc: $(BIN_DIR)/clc;
$(BIN_DIR)/libSimpleParser.so: $(LIB_OBJ)
$(CXX) -shared -o $(BIN_DIR)/libSimpleParser.so $(LIB_OBJ) $(CXXFLAGS)
$(BIN_DIR)/test: $(BIN_DIR)/libSimpleParser.so
$(CXX) -o $(BIN_DIR)/test $(TEST_SRC) -lgtest -L$(BIN_DIR)/ -lSimpleParser -std=c++11
./$(BIN_DIR)/test
$(BIN_DIR)/clc: $(BIN_DIR)/libSimpleParser.so
$(CXX) -o $(BIN_DIR)/clc $(CLC_SRC) -L$(BIN_DIR)/ -lSimpleParser -std=c++11
install: $(BIN_DIR)/libSimpleParser.so $(BIN_DIR)/clc
install -m 0755 $(BIN_DIR)/libSimpleParser.so /usr/lib
install -m 0755 $(BIN_DIR)/clc /usr/bin
.PHONY: clean;
clean:
rm -f $(LIB_OBJ)
rm -f $(BIN_DIR)/*
depend: .depend
.depend: $(LIB_SRC)
$(CXX) -M $(CXXFLAGS) $< > $@
include .depend
|