File: Makefile

package info (click to toggle)
optee-client 4.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 932 kB
  • sloc: ansic: 11,409; makefile: 410; xml: 113; sh: 33
file content (78 lines) | stat: -rw-r--r-- 2,300 bytes parent folder | download | duplicates (2)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
include ../flags.mk
include ../config.mk

OUT_DIR := $(OO)/libckteec

.PHONY: all libckteec clean

all: libckteec
install: libckteec

LIB_NAME	:= libckteec
MAJOR_VERSION	:= 0
MINOR_VERSION	:= 1
PATCH_VERSION	:= 0

LIB_MAJOR		:= $(LIB_NAME).so.$(MAJOR_VERSION)
LIB_MAJ_MIN		:= $(LIB_NAME).so.$(MAJOR_VERSION).$(MINOR_VERSION)
LIB_MAJ_MIN_PAT		:= $(LIB_NAME).so.$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)
LIBCKTEEC_SO_LIBRARY	:= $(LIB_MAJ_MIN_PAT)
LIBCKTEEC_AR_LIBRARY	:= $(LIB_NAME).a

LIBCKTEEC_SRC_DIR	:= src

LIBCKTEEC_SRCS		= pkcs11_api.c
LIBCKTEEC_SRCS		+= ck_debug.c
LIBCKTEEC_SRCS		+= ck_helpers.c
LIBCKTEEC_SRCS		+= invoke_ta.c
LIBCKTEEC_SRCS		+= pkcs11_processing.c
LIBCKTEEC_SRCS		+= pkcs11_token.c
LIBCKTEEC_SRCS		+= serializer.c
LIBCKTEEC_SRCS		+= serialize_ck.c

LIBCKTEEC_INCLUDES	= ${CURDIR}/include
LIBCKTEEC_INCLUDES 	+= ${CURDIR}/../libteec/include

LIBCKTEEC_CFLAGS	:= $(addprefix -I, $(LIBCKTEEC_INCLUDES)) \
			$(CFLAGS) -D_GNU_SOURCE -fPIC

LIBCKTEEC_LFLAGS	:= $(LDFLAGS) -L$(OUT_DIR)/../libteec -lteec

LIBCKTEEC_OBJ_DIR	:= $(OUT_DIR)
LIBCKTEEC_OBJS		:= $(patsubst %.c,$(LIBCKTEEC_OBJ_DIR)/%.o, $(LIBCKTEEC_SRCS))

$(LIBCKTEEC_OBJ_DIR)/%.o: ${LIBCKTEEC_SRC_DIR}/%.c
	$(VPREFIX)mkdir -p $(LIBCKTEEC_OBJ_DIR)
	@echo "  CC      $<"
	$(VPREFIX)$(CC) $(LIBCKTEEC_CFLAGS) -c $< -o $@

libckteec: $(OUT_DIR)/$(LIBCKTEEC_SO_LIBRARY)

$(OUT_DIR)/$(LIBCKTEEC_SO_LIBRARY): $(LIBCKTEEC_OBJS)
	@echo "  LINK    $@"
	$(VPREFIX)$(CC) -shared -Wl,-soname,$(LIB_MAJOR) -o $@ $+ $(LIBCKTEEC_LFLAGS)
	@echo ""

libckteec: $(OUT_DIR)/$(LIBCKTEEC_AR_LIBRARY)

$(OUT_DIR)/$(LIBCKTEEC_AR_LIBRARY): $(LIBCKTEEC_OBJS)
	@echo "  AR      $@"
	$(VPREFIX)$(AR) rcs $@ $+

libckteec:
	$(VPREFIX)ln -sf $(LIB_MAJ_MIN_PAT) $(OUT_DIR)/$(LIB_MAJ_MIN)
	$(VPREFIX)ln -sf $(LIB_MAJ_MIN_PAT) $(OUT_DIR)/$(LIB_MAJOR)
	$(VPREFIX)ln -sf $(LIB_MAJOR) $(OUT_DIR)/$(LIB_NAME).so

################################################################################
# Cleaning up configuration
################################################################################
clean:
	$(RM) $(LIBCKTEEC_OBJS)
	$(RM) $(OUT_DIR)/$(LIB_MAJ_MIN_PAT)
	$(RM) $(OUT_DIR)/$(LIB_MAJ_MIN)
	$(RM) $(OUT_DIR)/$(LIB_MAJOR)
	$(RM) $(OUT_DIR)/$(LIBCKTEEC_SO_LIBRARY)
	$(RM) $(OUT_DIR)/$(LIBCKTEEC_AR_LIBRARY)
	$(call rmdir,$(OUT_DIR))