123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- #!/usr/bin/make -f
- #variables are set by configure
- prefix = /usr/local
- installdir = $(prefix)/
- epidinstalldir = $(installdir)/epid-sdk
- CC = gcc
- CXX = g++
- CFLAGS =
- LDFLAGS =
- RANLIB = ranlib
- TSS_PATH =
- 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 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
- 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) common member verifier argtable3
- clean:
- $(MAKE) -C ./epid/common/ clean
- $(MAKE) -C ./epid/member/ clean
- $(MAKE) -C ./epid/verifier/ 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 ./epid/common/ install
- $(MAKE) -C ./epid/member/ install
- $(MAKE) -C ./epid/verifier/ install
- $(MAKE) -C ./epid/common-testhelper/ install
- uninstall:
- rm -rf $(epidinstalldir)
- 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
- 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
- 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
|