1include ../flags.mk
2include ../config.mk
3
4OUT_DIR := $(OO)/libseteec
5
6.PHONY: all libseteec clean
7
8all: libseteec
9install: libseteec
10
11LIB_NAME	:= libseteec
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)
19LIBSETEEC_SO_LIBRARY	:= $(LIB_MAJ_MIN_PAT)
20LIBSETEEC_AR_LIBRARY	:= $(LIB_NAME).a
21
22LIBSETEEC_SRC_DIR	:= src
23
24LIBSETEEC_SRCS	= se.c
25
26LIBSETEEC_INCLUDES	= ${CURDIR}/include
27LIBSETEEC_INCLUDES 	+= ${CURDIR}/../public
28
29LIBSETEEC_CFLAGS	:= $(addprefix -I, $(LIBSETEEC_INCLUDES)) \
30			$(CFLAGS) -D_GNU_SOURCE -fPIC
31
32LIBSETEEC_LFLAGS	:= $(LDFLAGS) -L$(OUT_DIR)/../libteec -lteec -lpthread
33
34LIBSETEEC_OBJ_DIR	:= $(OUT_DIR)
35LIBSETEEC_OBJS		:= $(patsubst %.c,$(LIBSETEEC_OBJ_DIR)/%.o, $(LIBSETEEC_SRCS))
36
37$(LIBSETEEC_OBJ_DIR)/%.o: ${LIBSETEEC_SRC_DIR}/%.c
38	$(VPREFIX)mkdir -p $(LIBSETEEC_OBJ_DIR)
39	@echo "  CC      $<"
40	$(VPREFIX)$(CC) $(LIBSETEEC_CFLAGS) -c $< -o $@
41
42libseteec: $(OUT_DIR)/$(LIBSETEEC_SO_LIBRARY)
43
44$(OUT_DIR)/$(LIBSETEEC_SO_LIBRARY): $(LIBSETEEC_OBJS)
45	@echo "  LINK    $@"
46	$(VPREFIX)$(CC) -shared -Wl,-soname,$(LIB_MAJOR) -o $@ $+ $(LIBSETEEC_LFLAGS)
47	@echo ""
48
49libseteec: $(OUT_DIR)/$(LIBSETEEC_AR_LIBRARY)
50
51$(OUT_DIR)/$(LIBSETEEC_AR_LIBRARY): $(LIBSETEEC_OBJS)
52	@echo "  AR      $@"
53	$(VPREFIX)$(AR) rcs $@ $+
54
55libseteec:
56	$(VPREFIX)ln -sf $(LIB_MAJ_MIN_PAT) $(OUT_DIR)/$(LIB_MAJ_MIN)
57	$(VPREFIX)ln -sf $(LIB_MAJ_MIN) $(OUT_DIR)/$(LIB_MAJOR)
58	$(VPREFIX)ln -sf $(LIB_MAJOR) $(OUT_DIR)/$(LIB_NAME).so
59
60################################################################################
61# Cleaning up configuration
62################################################################################
63clean:
64	$(RM) $(LIBSETEEC_OBJS)
65	$(RM) $(OUT_DIR)/$(LIB_MAJ_MIN_PAT)
66	$(RM) $(OUT_DIR)/$(LIB_MAJ_MIN)
67	$(RM) $(OUT_DIR)/$(LIB_MAJOR)
68	$(RM) $(OUT_DIR)/$(LIBSETEEC_SO_LIBRARY)
69	$(RM) $(OUT_DIR)/$(LIBSETEEC_AR_LIBRARY)
70	$(call rmdir,$(OUT_DIR))
71
72