-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathmakefile
125 lines (71 loc) · 2.73 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
TARGETNAME ?= bOPRFmain.exe
to_lowercase = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
CONFIG ?= RELEASE
CONFIGURATION_FLAGS_FILE := $(call to_lowercase,$(CONFIG)).mak
include $(CONFIGURATION_FLAGS_FILE)
ifeq ($(BINARYDIR),)
error:
$(error Invalid configuration, please check your inputs)
endif
PRIMARY_LIB=$(BINARYDIR)/libbOPRF.a
SRC=.
FRONTEND_DIR=$(SRC)/bOPRFmain
PRIMARY_DIR=$(SRC)/bOPRFlib
FRONTEND_SRC=$(wildcard $(FRONTEND_DIR)/*.cpp)
FRONTEND_OBJ=$(addprefix $(BINARYDIR)/,$(FRONTEND_SRC:.cpp=.o))
PRIMARY_SRC=\
$(wildcard $(PRIMARY_DIR)/Common/*.cpp) \
$(wildcard $(PRIMARY_DIR)/Crypto/*.cpp) \
$(wildcard $(PRIMARY_DIR)/PSI/*.cpp) \
$(wildcard $(PRIMARY_DIR)/OT/*.cpp) \
$(wildcard $(PRIMARY_DIR)/OT/Base/*.cpp) \
$(wildcard $(PRIMARY_DIR)/OT/Base/Math/*.cpp) \
$(wildcard $(PRIMARY_DIR)/OT/Base/crypto/*.cpp) \
$(wildcard $(PRIMARY_DIR)/Network/*.cpp)
PRIMARY_OBJ=$(addprefix $(BINARYDIR)/,$(PRIMARY_SRC:.cpp=.o))
PRIMARY_H=$(PRIMARY_SRC:.cpp=.h)
TPL=thirdparty/linux
BOOST=thirdparty/linux/boost
INC=-I./libbOPRF/\
-I$(TPL)\
-I$(BOOST)/includes/
TPL_LIB=$(BOOST)/stage/lib/libboost_system.a\
$(BOOST)/stage/lib/libboost_thread.a\
$(TPL)/miracl/miracl/source/libmiracl.a\
$(TPL)/cryptopp/libcryptopp.a\
$(TPL)/mpir/.libs/libmpir.a
LIB=\
$(TPL_LIB)\
-lpthread\
-lrt
EXPORTHEADS=$(PRIMARY_H)
LDFLAGS += $(COMMONFLAGS)
LDFLAGS += -L$(BINARYDIR)
LDFLAGS += $(addprefix -L,$(LIBRARY_DIRS))
#LDFLAGS += $(addprefix -l,$(LIBRARY_NAMES))
#LDFLAGS += -Wl,--verbose
CXXFLAGS += $(COMMONFLAGS)
CXXFLAGS += $(addprefix -I,$(INCLUDE_DIRS)) -std=c++11
CXXFLAGS += $(addprefix -D,$(PREPROCESSOR_MACROS))
##########################################################################################
all_objs := \
$(PRIMARY_OBJ)\
$(FRONTEND_OBJ)
PRIMARY_OUTPUTS := \
$(BINARYDIR)/$(TARGETNAME)
all: $(PRIMARY_OUTPUTS)
-include $(all_objs:.o=.dep)
clean:
rm -fr $(BINARYDIR)
$(BINARYDIR):
mkdir $(BINARYDIR)
$(BINARYDIR)/$(TARGETNAME): $(all_objs) $(EXTERNAL_LIBS) $(PRIMARY_LIB)
$(LD) -o $@ $(LDFLAGS) $(START_GROUP) $(all_objs) $(LIBRARY_LDFLAGS)\
-Wl,-Bstatic $(addprefix -l,$(STATIC_LIBRARY_NAMES))\
-Wl,-Bdynamic $(addprefix -l,$(SHARED_LIBRARY_NAMES))\
-Wl,--as-needed $(END_GROUP)
$(BINARYDIR)/%.o : %.cpp $(all_make_files) |$(BINARYDIR)
@mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) -c $< -o $@ -MD -MF $(@:.o=.dep)
$(PRIMARY_LIB): $(PRIMARY_OBJ) | $(BINARYDIR)
$(AR) $(ARFLAGS) $@ $(PRIMARY_OBJ)