-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
36 lines (26 loc) · 1.14 KB
/
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
31
32
33
34
35
36
TARGET=libnanofrw.so
BIN=main
CXX=g++
CFLAGS+=-g -shared -fPIC
INCLUDE=-I./
LIB_LIBRARY_PATH+=
LIBS=-lpthread -lrt
SRC=$(wildcard common/*.cpp msghandler/*.cpp net/*.cpp protocol/*.cpp)
OBJS=$(SRC:.cpp=.o)
MAIN_SRC=$(wildcard main/*.cpp)
MAIN_OBJS=$(MAIN_SRC:.cpp=.o)
all:lib/${TARGET} bin/${BIN}
lib/${TARGET}:${OBJS}
[ ! -e $(dir $@) ] && mkdir -p $(dir $@); ${CXX} ${CFLAGS} $(addprefix ./objs/,$^) -o $@ ${LIB_LIBRARY_PATH} ${LIBS}
bin/${BIN}:${MAIN_OBJS}
[ ! -e $(dir $@) ] && mkdir -p $(dir $@); ${CXX} $(addprefix ./objs/,$^) -g -o $@ ${LIB_LIBRARY_PATH} ${LIBS} -L./lib/ -lnanofrw
${OBJS}:%.o:%.cpp
[ ! -e $(dir $(addprefix ./objs/,$^)) ] && mkdir -p $(dir $(addprefix ./objs/,$^)); ${CXX} -c ${CFLAGS} $^ -o $(addprefix ./objs/,$@) ${INCLUDE}
${MAIN_OBJS}:%.o:%.cpp
[ ! -e $(dir $(addprefix ./objs/,$^)) ] && mkdir -p $(dir $(addprefix ./objs/,$^)); echo $^;${CXX} -c -g $^ -o $(addprefix ./objs/,$@) ${INCLUDE}
.PHONY:dir
dir:
[ ! -e objs ] && mkdir objs; [ ! -e bin ] && mkdir bin; [ ! -e lib ] && mkdir lib;echo " create dirs ok"
.PHONY:clean
clean:
rm -rf $(addprefix ./objs/,${OBJS}) $(addprefix ./objs/,${MAIN_OBJS}) bin/* lib/*