| Pascal Brand | 5e98be7 | 2014-07-15 16:00:49 +0200 | [diff] [blame] | 1 | include ../flags.mk |
| Jerome Forissier | 1d5cc96 | 2016-11-25 15:07:01 +0100 | [diff] [blame] | 2 | include ../config.mk |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 3 | |
| Jerome Forissier | 1d5cc96 | 2016-11-25 15:07:01 +0100 | [diff] [blame] | 4 | OUT_DIR := $(OO)/libteec |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 5 | |
| 6 | .PHONY: all libteec clean |
| 7 | |
| 8 | all: libteec |
| 9 | ################################################################################ |
| 10 | # Teec configuration |
| 11 | ################################################################################ |
| Julianus Larson | 3eac340 | 2023-05-17 11:15:02 +0200 | [diff] [blame] | 12 | MAJOR_VERSION := 2 |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 13 | MINOR_VERSION := 0 |
| Fabian Hofmann | 28eea17 | 2018-10-21 18:42:19 +0200 | [diff] [blame] | 14 | PATCH_VERSION := 0 |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 15 | LIB_NAME := libteec.so |
| 16 | LIB_MAJOR := $(LIB_NAME).$(MAJOR_VERSION) |
| 17 | LIB_MAJ_MIN := $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION) |
| Fabian Hofmann | 28eea17 | 2018-10-21 18:42:19 +0200 | [diff] [blame] | 18 | LIB_MAJ_MIN_P := $(LIB_NAME).$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION) |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 19 | |
| 20 | TEEC_SRCS := tee_client_api.c \ |
| Jerome Forissier | 5883a75 | 2017-06-01 14:53:52 +0200 | [diff] [blame] | 21 | teec_trace.c |
| Cedric Chaumont | f2b0ed4 | 2014-10-03 16:41:39 +0200 | [diff] [blame] | 22 | |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 23 | TEEC_SRC_DIR := src |
| 24 | TEEC_OBJ_DIR := $(OUT_DIR) |
| 25 | TEEC_OBJS := $(patsubst %.c,$(TEEC_OBJ_DIR)/%.o, $(TEEC_SRCS)) |
| 26 | TEEC_INCLUDES := \ |
| 27 | ${CURDIR}/include \ |
| Eero Aaltonen | 3ac968e | 2023-08-10 15:37:40 +0300 | [diff] [blame] | 28 | ${CURDIR}/src |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 29 | |
| 30 | TEEC_CFLAGS := $(addprefix -I, $(TEEC_INCLUDES)) $(CFLAGS) -D_GNU_SOURCE \ |
| 31 | -DDEBUGLEVEL_$(CFG_TEE_CLIENT_LOG_LEVEL) \ |
| 32 | -DBINARY_PREFIX=\"TEEC\" |
| 33 | |
| Martin Jansa | 09b69af | 2017-06-15 17:20:35 -0700 | [diff] [blame] | 34 | TEEC_LFLAGS := $(LDFLAGS) -lpthread |
| Fabian Hofmann | 28eea17 | 2018-10-21 18:42:19 +0200 | [diff] [blame] | 35 | TEEC_LIBRARY := $(OUT_DIR)/$(LIB_MAJ_MIN_P) |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 36 | |
| Jerome Forissier | 9681680 | 2017-11-13 09:32:07 +0100 | [diff] [blame] | 37 | libteec: $(TEEC_LIBRARY) $(OUT_DIR)/libteec.a |
| Fabian Hofmann | 28eea17 | 2018-10-21 18:42:19 +0200 | [diff] [blame] | 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) |
| Marc Kleine-Budde | 0efaf6b | 2017-06-12 17:55:32 +0200 | [diff] [blame] | 40 | $(VPREFIX)ln -sf $(LIB_MAJOR) $(OUT_DIR)/$(LIB_NAME) |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 41 | |
| 42 | $(TEEC_LIBRARY): $(TEEC_OBJS) |
| Jerome Forissier | 658ae53 | 2016-07-18 18:09:43 +0200 | [diff] [blame] | 43 | @echo " LINK $@" |
| Rouven Czerwinski | aea2081 | 2020-03-30 14:47:50 +0200 | [diff] [blame] | 44 | $(VPREFIX)$(CC) -shared -Wl,-soname,$(LIB_MAJOR) -o $@ $+ $(TEEC_LFLAGS) |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 45 | @echo "" |
| 46 | |
| Jerome Forissier | 9681680 | 2017-11-13 09:32:07 +0100 | [diff] [blame] | 47 | $(OUT_DIR)/libteec.a: $(TEEC_OBJS) |
| 48 | @echo " AR $@" |
| 49 | $(VPREFIX)$(AR) rcs $@ $+ |
| 50 | |
| Pascal Brand | 04ac465 | 2014-06-03 16:12:38 +0200 | [diff] [blame] | 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 | ################################################################################ |
| 59 | clean: |
| Fabian Hofmann | 28eea17 | 2018-10-21 18:42:19 +0200 | [diff] [blame] | 60 | $(RM) $(TEEC_OBJS) $(TEEC_LIBRARY) $(OUT_DIR)/$(LIB_MAJOR) \ |
| 61 | $(OUT_DIR)/$(LIB_MAJ_MIN) $(OUT_DIR)/$(LIB_NAME) |
| Jerome Forissier | 9681680 | 2017-11-13 09:32:07 +0100 | [diff] [blame] | 62 | $(RM) $(OUT_DIR)/libteec.a |
| Jerome Forissier | 6432f51 | 2016-11-28 10:27:56 +0100 | [diff] [blame] | 63 | $(call rmdir,$(OUT_DIR)) |