-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
64 lines (49 loc) · 1.81 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
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
CC=g++
AR=ar
CFLAGS = -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -std=c++11 -DOPENSSL -pthread -msse4.1
LDFLAGS = -pthread -lz -lcurl -lcrypto -lbz2
GIT_VERSION := $(shell git describe --dirty --always --tags)
SOURCES := $(shell find . -name '*.cc' -not -path "./run/*" -not -path "./Java/*" -not -path "./deez-github/*")
OBJECTS = $(SOURCES:.cc=.o)
EXECUTABLE = deez
LIB = libdeez
TESTEXE = deeztest
all: CFLAGS += -O3 -DNDEBUG
all: $(SOURCES) $(EXECUTABLE)
debug: CFLAGS += -g -fno-omit-frame-pointer
debug: $(SOURCES) $(EXECUTABLE)
superdebug: CFLAGS += -g -O0 -fno-inline
superdebug: $(SOURCES) $(EXECUTABLE)
profile: CFLAGS += -g -pg -O2
profile: LDFLAGS += -pg
profile: $(SOURCES) $(EXECUTABLE)
gprofile: LDFLAGS += -ltcmalloc -lprofiler
gprofile: CFLAGS += -g -O2
gprofile: $(SOURCES) $(EXECUTABLE)
readname:
$(CC) -O3 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -std=c++11 ReadNameCompressor.cpp -lz -o readname
$(CC) -O3 -DRBZ2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -std=c++11 ReadNameCompressor.cpp -lbz2 -o readnamebz
test: CFLAGS += -O3 -DNDEBUG -std=c++11
test: $(SOURCES) $(TESTEXE)
testdebug: CFLAGS += -g -std=c++11
testdebug: $(SOURCES) $(TESTEXE)
lib: CFLAGS += -fpic -DDEEZLIB -O3 -DNDEBUG
lib: $(SOURCES) $(LIB)
libdebug: CFLAGS += -g -fpic -DDEEZLIB
libdebug: $(SOURCES) $(LIB)
$(EXECUTABLE): OBJECTS := $(subst ./Test.o,,$(OBJECTS))
$(EXECUTABLE): $(OBJECTS)
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
$(LIB): OBJECTS := $(subst ./Test.o,,$(OBJECTS))
$(LIB): $(OBJECTS)
$(CC) $(OBJECTS) $(LDFLAGS) -fpic -shared -o [email protected]
rm -rf $(LIB).a
$(AR) rvs $(LIB).a $(OBJECTS)
.cc.o:
$(CC) $(CFLAGS) -DVER=\"$(GIT_VERSION)\" $< -o $@
clean:
find . -name '*.o' -delete
find . -name '*.class' -delete
find . -name '*.so' -delete
rm -rf $(EXECUTABLE) $(TESTEXE) libdeez.a libdeez.so
rm -rf gmon.out*