• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/make -f
2
3#variables are set by configure
4prefix = @prefix@
5installdir = $(prefix)/
6epidinstalldir = $(installdir)/epid-sdk
7CC = @CC@
8CXX = @CXX@
9CFLAGS = @CFLAGS@
10LDFLAGS = @LDFLAGS@
11RANLIB = @RANLIB@
12TSS_PATH = @TSS_PATH@
13TINY = @TINY@
14
15#set performance affecting flags
16SIZE_CFLAGS := -O2
17
18#gcc flags
19CC_FLAGS := $(CFLAGS) $(SIZE_CFLAGS) -Werror -Wall -Wextra -Wno-missing-braces \
20	-Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-unused-function \
21	-fno-strict-aliasing -Wno-unused-but-set-variable -Wno-comment -Wformat \
22	-Wformat-security -fstack-protector -DNDEBUG -D_FORTIFY_SOURCE=2
23
24#intel c compiler flags
25ICC_FLAGS := $(CFLAGS) $(SIZE_CFLAGS) -Werror -Wall -Wextra -DNDEBUG \
26	-fstack-protector -D_FORTIFY_SOURCE=2 \
27	-Wformat -Wformat-security
28
29ifneq ($(OS),Windows_NT)
30	CC_FLAGS += -fPIC
31	ICC_FLAGS += -fPIC
32	CXX11_FLAG = -std=c++0x
33	EXE_EXTENSION =
34else
35	CC_FLAGS += -D__int64='long long'
36	CXX11_FLAG = -std=gnu++11
37	EXE_EXTENSION = .exe
38endif
39
40#g++ flags
41CXX_FLAGS := $(CC_FLAGS) $(CXX11_FLAG)
42
43#intel c++ compiler flags
44ICPC_FLAGS := $(ICC_FLAGS) $(CXX11_FLAG)
45
46#check if architecture was specified
47#or take it by shell command
48ifeq ($(findstring -m32,$(CFLAGS)),-m32)
49	ARCH = x86
50	CXXFLAGS += -m32
51	LDFLAGS += -m32
52else ifeq ($(findstring -m64,$(CFLAGS)),-m64)
53	ARCH = x86_64
54	CXXFLAGS += -m64
55	LDFLAGS += -m64
56else
57	ifeq ($(findstring arm-,$(CC)),arm-)
58		ARCH = arm
59
60		ifneq (,$(findstring gnueabihf,$(CC)))
61			ARCH := $(addsuffix hf,$(ARCH))
62		endif
63
64	else
65		ARCH := $(shell uname -m)
66	endif
67endif
68
69#set ippflags
70IPP_FLAGS := -D_IPP_v50_ -D_IPP_DEBUG -D_DISABLE_ALG_MD5_ -D_DISABLE_ALG_SM3_
71
72#set tools and flags depending on specified compiler
73ifeq ($(findstring icc,$(CC)),icc)
74	CFLAGS := $(ICC_FLAGS)
75	CXXFLAGS := $(ICPC_FLAGS)
76	AR = $(subst icc,xiar,$(CC))
77else
78	CFLAGS := $(CC_FLAGS)
79	CXXFLAGS := $(CXX_FLAGS)
80endif
81
82# ld flags
83LDFLAGS += -fstack-protector
84ifneq ($(OS),Windows_NT)
85  LDFLAGS += -z noexecstack -z relro -z now -pie
86endif
87
88#gtest defines
89GTEST_DEFINES := -DGTEST_HAS_PTHREAD=0 -D_VARIADIC_MAX=10
90
91#set flags for unit tests executables
92GTEST_FLAGS = --gtest_color=yes \
93	--gtest_print_time=1 \
94	--gtest_output=xml
95
96export CC LDFLAGS ARCH CFLAGS
97export CXX CXXFLAGS
98export AR RANLIB
99export epidinstalldir
100export GTEST_FLAGS GTEST_DEFINES IPP_FLAGS
101export EXE_EXTENSION
102export TSS_PATH
103export TINY
104
105#output of the main parameters
106$(info $$ccompiler is [${CC}])
107$(info $$cxxcompiler is [${CXX}])
108$(info $$architecture is [${ARCH}])
109#targets part
110all:
111	$(MAKE) ipp common member verifier argtable3 examples_util
112	$(MAKE) examples epid_tools
113
114clean:
115	$(MAKE) -C ./ext/ipp/sources/ippcp clean
116	$(MAKE) -C ./epid/common/ clean
117	$(MAKE) -C ./epid/member/ clean
118	$(MAKE) -C ./epid/verifier/ clean
119	$(MAKE) -C ./example/util/ clean
120	$(MAKE) -C ./example/ clean
121	$(MAKE) -C ./tools/ clean
122	$(MAKE) -C ./ext/gtest/ clean
123	$(MAKE) -C ./epid/common-testhelper/ clean
124	$(MAKE) -C ./ext/argtable3/ clean
125ifneq ("$(wildcard ./ext/google_benchmark)","")
126	$(MAKE) -C ./ext/google_benchmark/ clean
127endif
128
129install:
130	$(MAKE) -C ./ext/ipp/sources/ippcp install
131	$(MAKE) -C ./epid/common/ install
132	$(MAKE) -C ./epid/member/ install
133	$(MAKE) -C ./epid/verifier/ install
134	$(MAKE) -C ./example/ install
135	$(MAKE) -C ./tools/ install
136	$(MAKE) -C ./epid/common-testhelper/ install
137
138uninstall:
139	rm -rf  $(epidinstalldir)
140
141ipp:
142	$(MAKE) -C ./ext/ipp/sources/ippcp all
143
144common-testhelper:
145	$(MAKE) -C ./epid/common-testhelper/ all
146
147common-testhelper_utest:
148	$(MAKE) -C ./epid/common-testhelper/ utest
149
150common:
151	$(MAKE) -C ./epid/common/ all
152
153common_utest:
154	$(MAKE) -C ./epid/common/ utest
155
156member:
157	$(MAKE) -C ./epid/member/ all
158
159member_utest:
160	$(MAKE) -C ./epid/member/ utest
161
162verifier:
163	$(MAKE) -C ./epid/verifier/ all
164
165verifier_utest:
166	$(MAKE) -C ./epid/verifier/ utest
167
168gtest:
169	$(MAKE) -C ./ext/gtest/ all
170
171argtable3:
172	$(MAKE) -C ./ext/argtable3/ all
173
174examples_util:
175	$(MAKE) -C ./example/util/ all
176
177utest:
178	$(MAKE) gtest common-testhelper
179	$(MAKE) common-testhelper_utest common_utest member_utest verifier_utest
180
181run_utest:
182	$(MAKE) -C ./epid/common-testhelper/ run_utest
183	$(MAKE) -C ./epid/common/ run_utest
184	$(MAKE) -C ./epid/member/ run_utest
185	$(MAKE) -C ./epid/verifier/ run_utest
186
187check:
188	$(MAKE) utest
189	$(MAKE) run_utest
190
191examples:
192	$(MAKE) -C ./example/ all
193
194epid_tools:
195	$(MAKE) -C ./tools/ all
196
197perf:
198ifneq ("$(wildcard ./ext/google_benchmark/)","")
199	$(MAKE) -C ./ext/google_benchmark/ all
200	$(MAKE) -C ./ext/google_benchmark/ utest
201	$(MAKE) -C ./ext/google_benchmark/ run_utest
202endif
203
204build:
205	$(MAKE) all
206	$(MAKE) check
207	$(MAKE) install
208