1include ../flags.mk
2include ../config.mk
3
4OUT_DIR := $(OO)/libteec
5
6.PHONY: all libteec clean
7
8all: libteec
9################################################################################
10# Teec configuration
11################################################################################
12MAJOR_VERSION	:= 2
13MINOR_VERSION	:= 0
14PATCH_VERSION	:= 0
15LIB_NAME	:= libteec.so
16LIB_MAJOR	:= $(LIB_NAME).$(MAJOR_VERSION)
17LIB_MAJ_MIN	:= $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION)
18LIB_MAJ_MIN_P	:= $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)
19
20TEEC_SRCS	:= tee_client_api.c \
21		   teec_trace.c
22
23TEEC_SRC_DIR	:= src
24TEEC_OBJ_DIR	:= $(OUT_DIR)
25TEEC_OBJS 	:= $(patsubst %.c,$(TEEC_OBJ_DIR)/%.o, $(TEEC_SRCS))
26TEEC_INCLUDES 	:= \
27		   ${CURDIR}/include \
28		   ${CURDIR}/src
29
30TEEC_CFLAGS	:= $(addprefix -I, $(TEEC_INCLUDES)) $(CFLAGS) -D_GNU_SOURCE \
31		   -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL) \
32		   -DBINARY_PREFIX=\"TEEC\"
33
34TEEC_LFLAGS    := $(LDFLAGS) -lpthread
35TEEC_LIBRARY	:= $(OUT_DIR)/$(LIB_MAJ_MIN_P)
36
37libteec: $(TEEC_LIBRARY) $(OUT_DIR)/libteec.a
38	$(VPREFIX)ln -sf $(LIB_MAJ_MIN_P) $(OUT_DIR)/$(LIB_MAJOR)
39	$(VPREFIX)ln -sf $(LIB_MAJ_MIN_P) $(OUT_DIR)/$(LIB_MAJ_MIN)
40	$(VPREFIX)ln -sf $(LIB_MAJOR) $(OUT_DIR)/$(LIB_NAME)
41
42$(TEEC_LIBRARY): $(TEEC_OBJS)
43	@echo "  LINK    $@"
44	$(VPREFIX)$(CC) -shared -Wl,-soname,$(LIB_MAJOR) -o $@ $+ $(TEEC_LFLAGS)
45	@echo ""
46
47$(OUT_DIR)/libteec.a: $(TEEC_OBJS)
48	@echo "  AR      $@"
49	$(VPREFIX)$(AR) rcs $@ $+
50
51$(TEEC_OBJ_DIR)/%.o: ${TEEC_SRC_DIR}/%.c
52	$(VPREFIX)mkdir -p $(TEEC_OBJ_DIR)
53	@echo "  CC      $<"
54	$(VPREFIX)$(CC) $(TEEC_CFLAGS) -c $< -o $@
55
56################################################################################
57# Cleaning up configuration
58################################################################################
59clean:
60	$(RM) $(TEEC_OBJS) $(TEEC_LIBRARY) $(OUT_DIR)/$(LIB_MAJOR) \
61		$(OUT_DIR)/$(LIB_MAJ_MIN) $(OUT_DIR)/$(LIB_NAME)
62	$(RM) $(OUT_DIR)/libteec.a
63	$(call rmdir,$(OUT_DIR))
64