1include ../flags.mk 2include ../config.mk 3 4OUT_DIR := $(OO)/libckteec 5 6.PHONY: all libckteec clean 7 8all: libckteec 9install: libckteec 10 11LIB_NAME := libckteec 12MAJOR_VERSION := 0 13MINOR_VERSION := 1 14PATCH_VERSION := 0 15 16LIB_MAJOR := $(LIB_NAME).so.$(MAJOR_VERSION) 17LIB_MAJ_MIN := $(LIB_NAME).so.$(MAJOR_VERSION).$(MINOR_VERSION) 18LIB_MAJ_MIN_PAT := $(LIB_NAME).so.$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION) 19LIBCKTEEC_SO_LIBRARY := $(LIB_MAJ_MIN_PAT) 20LIBCKTEEC_AR_LIBRARY := $(LIB_NAME).a 21 22LIBCKTEEC_SRC_DIR := src 23 24LIBCKTEEC_SRCS = pkcs11_api.c 25LIBCKTEEC_SRCS += ck_debug.c 26LIBCKTEEC_SRCS += ck_helpers.c 27LIBCKTEEC_SRCS += invoke_ta.c 28LIBCKTEEC_SRCS += pkcs11_processing.c 29LIBCKTEEC_SRCS += pkcs11_token.c 30LIBCKTEEC_SRCS += serializer.c 31LIBCKTEEC_SRCS += serialize_ck.c 32 33LIBCKTEEC_INCLUDES = ${CURDIR}/include 34LIBCKTEEC_INCLUDES += ${CURDIR}/../public 35 36LIBCKTEEC_CFLAGS := $(addprefix -I, $(LIBCKTEEC_INCLUDES)) \ 37 $(CFLAGS) -D_GNU_SOURCE -fPIC 38 39LIBCKTEEC_LFLAGS := $(LDFLAGS) -L$(OUT_DIR)/../libteec -lteec 40 41LIBCKTEEC_OBJ_DIR := $(OUT_DIR) 42LIBCKTEEC_OBJS := $(patsubst %.c,$(LIBCKTEEC_OBJ_DIR)/%.o, $(LIBCKTEEC_SRCS)) 43 44$(LIBCKTEEC_OBJ_DIR)/%.o: ${LIBCKTEEC_SRC_DIR}/%.c 45 $(VPREFIX)mkdir -p $(LIBCKTEEC_OBJ_DIR) 46 @echo " CC $<" 47 $(VPREFIX)$(CC) $(LIBCKTEEC_CFLAGS) -c $< -o $@ 48 49libckteec: $(OUT_DIR)/$(LIBCKTEEC_SO_LIBRARY) 50 51$(OUT_DIR)/$(LIBCKTEEC_SO_LIBRARY): $(LIBCKTEEC_OBJS) 52 @echo " LINK $@" 53 $(VPREFIX)$(CC) -shared -Wl,-soname,$(LIB_MAJOR) -o $@ $+ $(LIBCKTEEC_LFLAGS) 54 @echo "" 55 56libckteec: $(OUT_DIR)/$(LIBCKTEEC_AR_LIBRARY) 57 58$(OUT_DIR)/$(LIBCKTEEC_AR_LIBRARY): $(LIBCKTEEC_OBJS) 59 @echo " AR $@" 60 $(VPREFIX)$(AR) rcs $@ $+ 61 62libckteec: 63 $(VPREFIX)ln -sf $(LIB_MAJ_MIN_PAT) $(OUT_DIR)/$(LIB_MAJ_MIN) 64 $(VPREFIX)ln -sf $(LIB_MAJ_MIN) $(OUT_DIR)/$(LIB_MAJOR) 65 $(VPREFIX)ln -sf $(LIB_MAJOR) $(OUT_DIR)/$(LIB_NAME).so 66 67################################################################################ 68# Cleaning up configuration 69################################################################################ 70clean: 71 $(RM) $(LIBCKTEEC_OBJS) 72 $(RM) $(OUT_DIR)/$(LIB_MAJ_MIN_PAT) 73 $(RM) $(OUT_DIR)/$(LIB_MAJ_MIN) 74 $(RM) $(OUT_DIR)/$(LIB_MAJOR) 75 $(RM) $(OUT_DIR)/$(LIBCKTEEC_SO_LIBRARY) 76 $(RM) $(OUT_DIR)/$(LIBCKTEEC_AR_LIBRARY) 77 $(call rmdir,$(OUT_DIR)) 78 79