include ../flags.mk include ../config.mk OUT_DIR := $(OO)/libteec .PHONY: all libteec clean all: libteec ################################################################################ # Teec configuration ################################################################################ MAJOR_VERSION := 1 MINOR_VERSION := 0 PATCH_VERSION := 0 LIB_NAME := libteec.so LIB_MAJOR := $(LIB_NAME).$(MAJOR_VERSION) LIB_MAJ_MIN := $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION) LIB_MAJ_MIN_P := $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION) TEEC_SRCS := tee_client_api.c \ teec_trace.c ifeq ($(CFG_TEE_BENCHMARK),y) TEEC_SRCS += teec_benchmark.c endif TEEC_SRC_DIR := src TEEC_OBJ_DIR := $(OUT_DIR) TEEC_OBJS := $(patsubst %.c,$(TEEC_OBJ_DIR)/%.o, $(TEEC_SRCS)) TEEC_INCLUDES := \ ${CURDIR}/include \ ${CURDIR}/../public \ TEEC_CFLAGS := $(addprefix -I, $(TEEC_INCLUDES)) $(CFLAGS) -D_GNU_SOURCE \ -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL) \ -DBINARY_PREFIX=\"TEEC\" ifeq ($(CFG_TEE_BENCHMARK),y) TEEC_CFLAGS += -DCFG_TEE_BENCHMARK endif TEEC_LFLAGS := $(LDFLAGS) -lpthread TEEC_LIBRARY := $(OUT_DIR)/$(LIB_MAJ_MIN_P) libteec: $(TEEC_LIBRARY) $(OUT_DIR)/libteec.a $(VPREFIX)ln -sf $(LIB_MAJ_MIN_P) $(OUT_DIR)/$(LIB_MAJOR) $(VPREFIX)ln -sf $(LIB_MAJ_MIN_P) $(OUT_DIR)/$(LIB_MAJ_MIN) $(VPREFIX)ln -sf $(LIB_MAJOR) $(OUT_DIR)/$(LIB_NAME) $(TEEC_LIBRARY): $(TEEC_OBJS) @echo " LINK $@" $(VPREFIX)$(CC) -shared -Wl,-soname,$(LIB_MAJOR) -o $@ $+ $(TEEC_LFLAGS) @echo "" $(OUT_DIR)/libteec.a: $(TEEC_OBJS) @echo " AR $@" $(VPREFIX)$(AR) rcs $@ $+ $(TEEC_OBJ_DIR)/%.o: ${TEEC_SRC_DIR}/%.c $(VPREFIX)mkdir -p $(TEEC_OBJ_DIR) @echo " CC $<" $(VPREFIX)$(CC) $(TEEC_CFLAGS) -c $< -o $@ ################################################################################ # Cleaning up configuration ################################################################################ clean: $(RM) $(TEEC_OBJS) $(TEEC_LIBRARY) $(OUT_DIR)/$(LIB_MAJOR) \ $(OUT_DIR)/$(LIB_MAJ_MIN) $(OUT_DIR)/$(LIB_NAME) $(RM) $(OUT_DIR)/libteec.a $(call rmdir,$(OUT_DIR))