blob: 6e80a509c8d92f8227d7437a4b4b0e6395e2d816 [file] [log] [blame]
Pascal Brand5e98be72014-07-15 16:00:49 +02001include ../flags.mk
Jerome Forissier1d5cc962016-11-25 15:07:01 +01002include ../config.mk
Pascal Brand04ac4652014-06-03 16:12:38 +02003
Jerome Forissier1d5cc962016-11-25 15:07:01 +01004OUT_DIR := $(OO)/libteec
Pascal Brand04ac4652014-06-03 16:12:38 +02005
6.PHONY: all libteec clean
7
8all: libteec
9################################################################################
10# Teec configuration
11################################################################################
Julianus Larson3eac3402023-05-17 11:15:02 +020012MAJOR_VERSION := 2
Pascal Brand04ac4652014-06-03 16:12:38 +020013MINOR_VERSION := 0
Fabian Hofmann28eea172018-10-21 18:42:19 +020014PATCH_VERSION := 0
Pascal Brand04ac4652014-06-03 16:12:38 +020015LIB_NAME := libteec.so
16LIB_MAJOR := $(LIB_NAME).$(MAJOR_VERSION)
17LIB_MAJ_MIN := $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION)
Fabian Hofmann28eea172018-10-21 18:42:19 +020018LIB_MAJ_MIN_P := $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)
Pascal Brand04ac4652014-06-03 16:12:38 +020019
20TEEC_SRCS := tee_client_api.c \
Jerome Forissier5883a752017-06-01 14:53:52 +020021 teec_trace.c
Cedric Chaumontf2b0ed42014-10-03 16:41:39 +020022
Pascal Brand04ac4652014-06-03 16:12:38 +020023TEEC_SRC_DIR := src
24TEEC_OBJ_DIR := $(OUT_DIR)
25TEEC_OBJS := $(patsubst %.c,$(TEEC_OBJ_DIR)/%.o, $(TEEC_SRCS))
26TEEC_INCLUDES := \
27 ${CURDIR}/include \
Eero Aaltonen3ac968e2023-08-10 15:37:40 +030028 ${CURDIR}/src
Pascal Brand04ac4652014-06-03 16:12:38 +020029
30TEEC_CFLAGS := $(addprefix -I, $(TEEC_INCLUDES)) $(CFLAGS) -D_GNU_SOURCE \
31 -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL) \
32 -DBINARY_PREFIX=\"TEEC\"
33
Martin Jansa09b69af2017-06-15 17:20:35 -070034TEEC_LFLAGS := $(LDFLAGS) -lpthread
Fabian Hofmann28eea172018-10-21 18:42:19 +020035TEEC_LIBRARY := $(OUT_DIR)/$(LIB_MAJ_MIN_P)
Pascal Brand04ac4652014-06-03 16:12:38 +020036
Jerome Forissier96816802017-11-13 09:32:07 +010037libteec: $(TEEC_LIBRARY) $(OUT_DIR)/libteec.a
Fabian Hofmann28eea172018-10-21 18:42:19 +020038 $(VPREFIX)ln -sf $(LIB_MAJ_MIN_P) $(OUT_DIR)/$(LIB_MAJOR)
39 $(VPREFIX)ln -sf $(LIB_MAJ_MIN_P) $(OUT_DIR)/$(LIB_MAJ_MIN)
Marc Kleine-Budde0efaf6b2017-06-12 17:55:32 +020040 $(VPREFIX)ln -sf $(LIB_MAJOR) $(OUT_DIR)/$(LIB_NAME)
Pascal Brand04ac4652014-06-03 16:12:38 +020041
42$(TEEC_LIBRARY): $(TEEC_OBJS)
Jerome Forissier658ae532016-07-18 18:09:43 +020043 @echo " LINK $@"
Rouven Czerwinskiaea20812020-03-30 14:47:50 +020044 $(VPREFIX)$(CC) -shared -Wl,-soname,$(LIB_MAJOR) -o $@ $+ $(TEEC_LFLAGS)
Pascal Brand04ac4652014-06-03 16:12:38 +020045 @echo ""
46
Jerome Forissier96816802017-11-13 09:32:07 +010047$(OUT_DIR)/libteec.a: $(TEEC_OBJS)
48 @echo " AR $@"
49 $(VPREFIX)$(AR) rcs $@ $+
50
Pascal Brand04ac4652014-06-03 16:12:38 +020051$(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:
Fabian Hofmann28eea172018-10-21 18:42:19 +020060 $(RM) $(TEEC_OBJS) $(TEEC_LIBRARY) $(OUT_DIR)/$(LIB_MAJOR) \
61 $(OUT_DIR)/$(LIB_MAJ_MIN) $(OUT_DIR)/$(LIB_NAME)
Jerome Forissier96816802017-11-13 09:32:07 +010062 $(RM) $(OUT_DIR)/libteec.a
Jerome Forissier6432f512016-11-28 10:27:56 +010063 $(call rmdir,$(OUT_DIR))