blob: 3b279ab131aba2732676332166e8b1e5fff92594 [file] [log] [blame]
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))