aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: f71ad1c0ef4896699350dca8283adc788f692cae (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
	./$(BIN_DIR)/test

$(BIN_DIR)/clc: $(BIN_DIR)/libSimpleParser.so
	$(CXX) -o $(BIN_DIR)/clc $(CLC_SRC) -L$(BIN_DIR)/ -lSimpleParser

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