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
 |