123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- #!/usr/bin/make -f
- #define path variables
- IPP_SRC_INCLUDE_DIR = ../../ext/ipp/sources/ippcp/src/
- IPP_INCLUDE_DIR = ../../ext/ipp/sources/include/
- GTEST_INCLUDE_DIR = ../../ext/
- LIB_INSTALL_DIR = $(epidinstalldir)/lib/posix-$(ARCH)/
- TEST_INSTALL_DIR = $(epidinstalldir)/test/
- HEADERS_INSTALL_DIR := $(epidinstalldir)/include/epid/member/
- API_HEADERS_INSTALL = $(wildcard ./*.h)
- MEMBER_INCLUDE_DIR = ../../
- TINY_MEMBER_INCLUDE_DIR = ./tiny/
- MEMBER_SRC = $(wildcard ./src/*.c)
- TINY_MEMBER_SRC = $(wildcard ./tiny/src/*.c)
- TINY_MEMBER_MATH_SRC = $(wildcard ./tiny/math/src/*.c)
- TINY_STDLIB_MEMBER_SRC = $(wildcard ./tiny/stdlib/src/*.c)
- MEMBER_TPM2_TSS_UTEST_SRC = $(wildcard ./tpm2/unittests/*.cc)
- ifneq ($(TSS_PATH),)
- MEMBER_TPM2_SRC = $(wildcard ./tpm2/ibm_tss/*.c)
- MEMBER_TPM2_UTEST_SRC = $(filter-out $(wildcard ./tpm2/unittests/*-simulator-test.cc), \
- $(MEMBER_TPM2_TSS_UTEST_SRC))
- MEMBER_INCLUDE_DIR += -I$(TSS_PATH)
- CFLAGS += -DTPM_TSS
- CXXFLAGS += -DTPM_TSS
- else
- MEMBER_TPM2_SRC = $(wildcard ./tpm2/src/*.c)
- MEMBER_TPM2_UTEST_SRC = $(filter-out $(wildcard ./tpm2/unittests/*-tss-test.cc), \
- $(MEMBER_TPM2_TSS_UTEST_SRC))
- endif
- MEMBER_SRC += $(MEMBER_TPM2_SRC)
- MEMBER_LIB = ./libmember.a
- MATH_LIB = ./libmath.a
- STDLIB_LIB = ./libtiny_stdlib.a
- MEMBER_UTEST_EXE = ./member-utest$(EXE_EXTENSION)
- MEMBER_UTEST_SRC = $(wildcard ./unittests/*.cc) \
- ./tpm2/unittests/tpm2_wrapper-testhelper.cc
- TINY_MEMBER_UTEST_SRC = $(wildcard ./tiny/unittests/*.cc)
- TINY_MEMBER_MATH_UTEST_SRC = $(wildcard ./tiny/math/unittests/*.cc)
- ifneq ($(TINY),)
- MEMBER_OBJ = $(TINY_MEMBER_SRC:.c=.o)
- MATH_OBJ = $(TINY_MEMBER_MATH_SRC:.c=.o)
- STDLIB_OBJ = $(TINY_STDLIB_MEMBER_SRC:.c=.o)
- MEMBER_UTEST_OBJ = $(TINY_MEMBER_UTEST_SRC:.cc=.o)
- TINY_MEMBER_MATH_UTEST_OBJ = $(TINY_MEMBER_MATH_UTEST_SRC:.cc=.o)
- MEMBER_INCLUDE_DIR += -I$(TINY_MEMBER_INCLUDE_DIR)
- else
- MEMBER_OBJ = $(MEMBER_SRC:.c=.o)
- MEMBER_UTEST_OBJ = $(MEMBER_UTEST_SRC:.cc=.o)
- MEMBER_TPM2_UTEST_OBJ = $(MEMBER_TPM2_UTEST_SRC:.cc=.o)
- endif
- LIB_MEMBER_DIR = .
- LIB_VERIFIER_DIR = ../verifier
- LIB_COMMON_TESTHELPER_DIR = ../common-testhelper
- LIB_COMMON_DIR = ../common
- LIB_IPPCP_DIR = ../../ext/ipp/sources/ippcp/src
- #set flags for linker
- LDFLAGS += -L$(GTEST_INCLUDE_DIR)/gtest -L$(LIB_COMMON_TESTHELPER_DIR) \
- -L$(LIB_MEMBER_DIR) -L$(LIB_VERIFIER_DIR) -L$(LIB_COMMON_DIR) \
- -L$(LIB_IPPCP_DIR) -lgtest -lcommon-testhelper \
- -lmember -lverifier -lcommon -lippcp
- ifneq ($(TSS_PATH),)
- LDFLAGS += -L$(TSS_PATH) -ltss -lcrypto
- endif
- ifneq ($(TINY),)
- CPPDEFINES := -DNDEBUG
- LDFLAGS += -lmath -ltiny_stdlib
- CFLAGS := -Os -fno-builtin -fno-stack-protector -fomit-frame-pointer -fno-asynchronous-unwind-tables \
- -fdata-sections -ffunction-sections -fvisibility=hidden -Werror -Wall -Wextra
- ifneq ($(OS),Windows_NT)
- CFLAGS += -fPIC
- endif
- ifeq ($(findstring gcc,$(CC)),gcc)
- CFLAGS += -Wno-missing-braces
- endif
- ifeq ($(ARCH), x86)
- CFLAGS += -m32
- endif
- endif
- $(MEMBER_OBJ): %.o: %.c
- $(CC) $(CFLAGS) -I$(IPP_INCLUDE_DIR) -I$(IPP_SRC_INCLUDE_DIR) \
- -I$(MEMBER_INCLUDE_DIR) -c $^ -o $@
- $(MEMBER_LIB): $(MEMBER_OBJ)
- $(AR) rc $(MEMBER_LIB) $(MEMBER_OBJ)
- $(RANLIB) $(MEMBER_LIB)
- $(MEMBER_UTEST_EXE): $(MEMBER_UTEST_OBJ)
- $(CXX) -o $@ $^ $(LDFLAGS)
- $(MEMBER_UTEST_OBJ): %.o: %.cc
- $(CXX) -o $@ $(CXXFLAGS) $(GTEST_DEFINES) -I$(MEMBER_INCLUDE_DIR) \
- -I$(GTEST_INCLUDE_DIR) -c $^
- ifneq ($(TINY),)
- $(MATH_OBJ): %.o: %.c
- $(CC) $(CFLAGS) -I$(MEMBER_INCLUDE_DIR) -c $^ -o $@
- $(STDLIB_OBJ): %.o: %.c
- $(CC) $(CFLAGS) -I$(MEMBER_INCLUDE_DIR) -c $^ -o $@
- $(MATH_LIB): $(MATH_OBJ)
- $(AR) rc $(MATH_LIB) $(MATH_OBJ)
- $(RANLIB) $(MATH_LIB)
- $(STDLIB_LIB): $(STDLIB_OBJ)
- $(AR) rc $(STDLIB_LIB) $(STDLIB_OBJ)
- $(RANLIB) $(STDLIB_LIB)
- TINY_MEMBER_MATH_UTEST_EXE = ./member.math-utest$(EXE_EXTENSION)
- $(TINY_MEMBER_MATH_UTEST_EXE): $(TINY_MEMBER_MATH_UTEST_OBJ)
- $(CXX) -o $@ $^ $(LDFLAGS)
- $(TINY_MEMBER_MATH_UTEST_OBJ): %.o: %.cc
- $(CXX) -o $@ $(CXXFLAGS) $(GTEST_DEFINES) -I$(MEMBER_INCLUDE_DIR) \
- -I$(GTEST_INCLUDE_DIR) -c $^
- else
- MEMBER_TPM2_UTEST_EXE = ./member.tpm2-utest$(EXE_EXTENSION)
- $(MEMBER_TPM2_UTEST_EXE): $(MEMBER_TPM2_UTEST_OBJ)
- $(CXX) -o $@ $^ $(LDFLAGS)
- $(MEMBER_TPM2_UTEST_OBJ): %.o: %.cc
- $(CXX) -o $@ $(CXXFLAGS) $(GTEST_DEFINES) -I$(MEMBER_INCLUDE_DIR) \
- -I$(GTEST_INCLUDE_DIR) -c $^
- endif
- build: all
- LIBS = $(MEMBER_LIB)
- ifneq ($(TINY),)
- LIBS += $(STDLIB_LIB) $(MATH_LIB)
- endif
- all: $(LIBS)
- install:
- mkdir -p '$(LIB_INSTALL_DIR)'
- mkdir -p '$(HEADERS_INSTALL_DIR)'
- cp $(MEMBER_LIB) '$(LIB_INSTALL_DIR)'
- ifneq ($(TINY),)
- cp $(MATH_LIB) '$(LIB_INSTALL_DIR)'
- cp $(STDLIB_LIB) '$(LIB_INSTALL_DIR)'
- endif
- cp $(API_HEADERS_INSTALL) '$(HEADERS_INSTALL_DIR)'
- #install tests if they exist
- ifneq (,$(wildcard $(MEMBER_UTEST_EXE)))
- mkdir -p '$(TEST_INSTALL_DIR)'
- cp $(MEMBER_UTEST_EXE) '$(TEST_INSTALL_DIR)'
- endif
- ifneq ($(TINY),)
- mkdir -p '$(TEST_INSTALL_DIR)'
- cp $(TINY_MEMBER_MATH_UTEST_EXE) '$(TEST_INSTALL_DIR)'
- else
- mkdir -p '$(TEST_INSTALL_DIR)'
- cp $(MEMBER_TPM2_UTEST_EXE) '$(TEST_INSTALL_DIR)'
- endif
- utest: $(MEMBER_UTEST_EXE) $(MEMBER_TPM2_UTEST_EXE) $(TINY_MEMBER_MATH_UTEST_EXE)
- run_utest:
- $(MEMBER_UTEST_EXE) $(GTEST_FLAGS)
- $(MEMBER_TPM2_UTEST_EXE) $(GTEST_FLAGS)
- $(TINY_MEMBER_MATH_UTEST_EXE) $(GTEST_FLAGS)
- check: utest run_utest
- clean:
- rm -f $(MEMBER_OBJ) \
- $(MEMBER_LIB) \
- $(MATH_OBJ) \
- $(MATH_LIB) \
- $(STDLIB_OBJ) \
- $(STDLIB_LIB) \
- $(MEMBER_UTEST_OBJ) \
- $(MEMBER_UTEST_EXE) \
- $(MEMBER_TPM2_UTEST_OBJ) \
- $(MEMBER_TPM2_UTEST_EXE) \
- $(TINY_MEMBER_MATH_UTEST_OBJ) \
- $(TINY_MEMBER_MATH_UTEST_EXE) \
- *.xml
|