1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
include ../flags.mk
include ../config.mk
OUT_DIR := $(OO)/libteec
.PHONY: all libteec clean
all: libteec
################################################################################
# Teec configuration
################################################################################
MAJOR_VERSION := 2
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
TEEC_SRC_DIR := src
TEEC_OBJ_DIR := $(OUT_DIR)
TEEC_OBJS := $(patsubst %.c,$(TEEC_OBJ_DIR)/%.o, $(TEEC_SRCS))
TEEC_INCLUDES := \
${CURDIR}/include \
${CURDIR}/src
TEEC_CFLAGS := $(addprefix -I, $(TEEC_INCLUDES)) $(CFLAGS) -D_GNU_SOURCE \
-DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL) \
-DBINARY_PREFIX=\"TEEC\"
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))
|