#!/usr/bin/make -f
|
|
#variables are set by configure
|
prefix = @prefix@
|
installdir = $(prefix)/
|
epidinstalldir = $(installdir)/epid-sdk
|
CC = @CC@
|
CXX = @CXX@
|
CFLAGS = @CFLAGS@
|
LDFLAGS = @LDFLAGS@
|
RANLIB = @RANLIB@
|
TSS_PATH = @TSS_PATH@
|
TINY = @TINY@
|
|
#set performance affecting flags
|
SIZE_CFLAGS := -O2
|
|
#gcc flags
|
CC_FLAGS := $(CFLAGS) $(SIZE_CFLAGS) -Werror -Wall -Wextra -Wno-missing-braces \
|
-Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-unused-function \
|
-fno-strict-aliasing -Wno-unused-but-set-variable -Wno-comment -Wformat \
|
-Wformat-security -fstack-protector -DNDEBUG -D_FORTIFY_SOURCE=2
|
|
#intel c compiler flags
|
ICC_FLAGS := $(CFLAGS) $(SIZE_CFLAGS) -Werror -Wall -Wextra -DNDEBUG \
|
-fstack-protector -D_FORTIFY_SOURCE=2 \
|
-Wformat -Wformat-security
|
|
ifneq ($(OS),Windows_NT)
|
CC_FLAGS += -fPIC
|
ICC_FLAGS += -fPIC
|
CXX11_FLAG = -std=c++0x
|
EXE_EXTENSION =
|
else
|
CC_FLAGS += -D__int64='long long'
|
CXX11_FLAG = -std=gnu++11
|
EXE_EXTENSION = .exe
|
endif
|
|
#g++ flags
|
CXX_FLAGS := $(CC_FLAGS) $(CXX11_FLAG)
|
|
#intel c++ compiler flags
|
ICPC_FLAGS := $(ICC_FLAGS) $(CXX11_FLAG)
|
|
#check if architecture was specified
|
#or take it by shell command
|
ifeq ($(findstring -m32,$(CFLAGS)),-m32)
|
ARCH = x86
|
CXXFLAGS += -m32
|
LDFLAGS += -m32
|
else ifeq ($(findstring -m64,$(CFLAGS)),-m64)
|
ARCH = x86_64
|
CXXFLAGS += -m64
|
LDFLAGS += -m64
|
else
|
ifeq ($(findstring arm-,$(CC)),arm-)
|
ARCH = arm
|
|
ifneq (,$(findstring gnueabihf,$(CC)))
|
ARCH := $(addsuffix hf,$(ARCH))
|
endif
|
|
else
|
ARCH := $(shell uname -m)
|
endif
|
endif
|
|
#set ippflags
|
IPP_FLAGS := -D_IPP_v50_ -D_IPP_DEBUG -D_DISABLE_ALG_MD5_ -D_DISABLE_ALG_SM3_
|
|
#set tools and flags depending on specified compiler
|
ifeq ($(findstring icc,$(CC)),icc)
|
CFLAGS := $(ICC_FLAGS)
|
CXXFLAGS := $(ICPC_FLAGS)
|
AR = $(subst icc,xiar,$(CC))
|
else
|
CFLAGS := $(CC_FLAGS)
|
CXXFLAGS := $(CXX_FLAGS)
|
endif
|
|
# ld flags
|
LDFLAGS += -fstack-protector
|
ifneq ($(OS),Windows_NT)
|
LDFLAGS += -z noexecstack -z relro -z now -pie
|
endif
|
|
#gtest defines
|
GTEST_DEFINES := -DGTEST_HAS_PTHREAD=0 -D_VARIADIC_MAX=10
|
|
#set flags for unit tests executables
|
GTEST_FLAGS = --gtest_color=yes \
|
--gtest_print_time=1 \
|
--gtest_output=xml
|
|
export CC LDFLAGS ARCH CFLAGS
|
export CXX CXXFLAGS
|
export AR RANLIB
|
export epidinstalldir
|
export GTEST_FLAGS GTEST_DEFINES IPP_FLAGS
|
export EXE_EXTENSION
|
export TSS_PATH
|
export TINY
|
|
#output of the main parameters
|
$(info $$ccompiler is [${CC}])
|
$(info $$cxxcompiler is [${CXX}])
|
$(info $$architecture is [${ARCH}])
|
#targets part
|
all:
|
$(MAKE) ipp common member verifier argtable3 examples_util
|
$(MAKE) examples epid_tools
|
|
clean:
|
$(MAKE) -C ./ext/ipp/sources/ippcp clean
|
$(MAKE) -C ./epid/common/ clean
|
$(MAKE) -C ./epid/member/ clean
|
$(MAKE) -C ./epid/verifier/ clean
|
$(MAKE) -C ./example/util/ clean
|
$(MAKE) -C ./example/ clean
|
$(MAKE) -C ./tools/ clean
|
$(MAKE) -C ./ext/gtest/ clean
|
$(MAKE) -C ./epid/common-testhelper/ clean
|
$(MAKE) -C ./ext/argtable3/ clean
|
ifneq ("$(wildcard ./ext/google_benchmark)","")
|
$(MAKE) -C ./ext/google_benchmark/ clean
|
endif
|
|
install:
|
$(MAKE) -C ./ext/ipp/sources/ippcp install
|
$(MAKE) -C ./epid/common/ install
|
$(MAKE) -C ./epid/member/ install
|
$(MAKE) -C ./epid/verifier/ install
|
$(MAKE) -C ./example/ install
|
$(MAKE) -C ./tools/ install
|
$(MAKE) -C ./epid/common-testhelper/ install
|
|
uninstall:
|
rm -rf $(epidinstalldir)
|
|
ipp:
|
$(MAKE) -C ./ext/ipp/sources/ippcp all
|
|
common-testhelper:
|
$(MAKE) -C ./epid/common-testhelper/ all
|
|
common-testhelper_utest:
|
$(MAKE) -C ./epid/common-testhelper/ utest
|
|
common:
|
$(MAKE) -C ./epid/common/ all
|
|
common_utest:
|
$(MAKE) -C ./epid/common/ utest
|
|
member:
|
$(MAKE) -C ./epid/member/ all
|
|
member_utest:
|
$(MAKE) -C ./epid/member/ utest
|
|
verifier:
|
$(MAKE) -C ./epid/verifier/ all
|
|
verifier_utest:
|
$(MAKE) -C ./epid/verifier/ utest
|
|
gtest:
|
$(MAKE) -C ./ext/gtest/ all
|
|
argtable3:
|
$(MAKE) -C ./ext/argtable3/ all
|
|
examples_util:
|
$(MAKE) -C ./example/util/ all
|
|
utest:
|
$(MAKE) gtest common-testhelper
|
$(MAKE) common-testhelper_utest common_utest member_utest verifier_utest
|
|
run_utest:
|
$(MAKE) -C ./epid/common-testhelper/ run_utest
|
$(MAKE) -C ./epid/common/ run_utest
|
$(MAKE) -C ./epid/member/ run_utest
|
$(MAKE) -C ./epid/verifier/ run_utest
|
|
check:
|
$(MAKE) utest
|
$(MAKE) run_utest
|
|
examples:
|
$(MAKE) -C ./example/ all
|
|
epid_tools:
|
$(MAKE) -C ./tools/ all
|
|
perf:
|
ifneq ("$(wildcard ./ext/google_benchmark/)","")
|
$(MAKE) -C ./ext/google_benchmark/ all
|
$(MAKE) -C ./ext/google_benchmark/ utest
|
$(MAKE) -C ./ext/google_benchmark/ run_utest
|
endif
|
|
build:
|
$(MAKE) all
|
$(MAKE) check
|
$(MAKE) install
|