| #!/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 |