-
Notifications
You must be signed in to change notification settings - Fork 53
Expand file tree
/
Copy pathMakefile
More file actions
65 lines (52 loc) · 1.71 KB
/
Makefile
File metadata and controls
65 lines (52 loc) · 1.71 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
NAME = libwxfreq
SERVERNAME = WxFreq
LIBNAME = libwxfreq.a
OUTPUTDIR = ./output
INCLUDE = $(OUTPUTDIR)/include/$(NAME)
LIB64 = $(OUTPUTDIR)/lib64
LIBINSTALLDIR = /usr/local/lib64/
HEADERINSTALLDIR = /usr/local/include/
DIRLIBEVENT=/data1/mm64/arthurzou/archive
CC = g++
LDFLAGS = -lwxfreq -pthread -L$(LIB64) -I $(dir $(INCLUDE))
CPPFLAGS = $(CFLAGS)
CPPFLAGS += -g -O2 -Wall -std=c++11
INC = -I ./util -I ./freq -I ./net --std=c++11
CPPFILE += $(wildcard freq/*.cpp)
CPPFILE += $(wildcard util/*.cpp)
OBJ = $(patsubst %.cpp, %.o, $(CPPFILE))
DFILE = $(patsubst %.o, %.d, $(OBJ))
NETCPPFILE += main.cpp
NETCPPFILE += $(wildcard net/*.cpp)
NETOBJ = $(patsubst %.cpp, %.o, $(NETCPPFILE))
NETDFILE = $(patsubst %.o, %.d, $(NETOBJ))
.PHONY : all clean test
$(SERVERNAME) : $(OBJ) $(NETOBJ) main.o
@rm -rf $(DFILE)
@rm -rf $(NETDFILE)
$(CC) $(CPPFLAGS) $^ -o $@ -pthread -levent -lrt -static -L $(DIRLIBEVENT)
$(LIBNAME) : $(OBJ)
@rm -rf $(OUTPUTDIR)
@rm -rf $(DFILE)
@mkdir -p $(LIB64)
@mkdir -p $(INCLUDE)
ar scr $@ $(OBJ)
mv $@ $(LIB64)
cp freq/libwxfreq.h $(INCLUDE)
@$(CC) -MM freq/libwxfreq.h $(INC) | \
tr " " "\n" | grep ".h" | xargs -I{} cp {} $(INCLUDE)
@find $(INCLUDE) -name "*.h" | xargs sed -i 's;#include ";#include "$(NAME)/;'
%: test/%.cpp $(LIBNAME)
$(CC) $(CPPFLAGS) $< -o $@.out $(LDFLAGS)
-include $(DFILE)
-include $(NETDFILE)
%.d: %.cpp
@$(CC) $(INC) -MT $*.o -MM $< > $@ && \
echo -e '\t$$(CC) $$(CPPFLAGS) $(INC) -c $$< -o $$@' >> $@
clean:
@echo -n "clean workspace ..."
@rm -rf $(OUTPUTDIR) $(OBJ) $(NETOBJ) $(NETDFILE) $(DFILE) *.out $(SERVERNAME)
@echo -e "\t\t\033[31m[done]\033[0m"
install: $(LIBNAME)
cp -r $(INCLUDE) $(HEADERINSTALLDIR)
cp -r $(LIB64)/$(LIBNAME) $(LIBINSTALLDIR)