# libiec IEC-104 服务端模块
include ./../../../linux.mk
L := $(notdir $(realpath $(CURDIR)/..))
M := libiec
O := $(LIB_REL)/$(M).a
S := $(SRC_ROOT_DIR)/$(L)/libiec/src
I := -I$(SRC_ROOT_DIR)/$(L)/libiec/inc \
     -I$(SRC_ROOT_DIR)/$(L)/inc \
     -I$(SRC_ROOT_DIR)/protocol/lib60870/inc \
     -I$(SRC_ROOT_DIR)/public/libdatacenter/inc \
     -I$(SRC_ROOT_DIR)/public/liblog/inc \
     -I$(SRC_ROOT_DIR)/public/libtask/inc \
     -I$(SRC_ROOT_DIR)/public/libxml/inc
B := $(CURDIR)/$(M)/obj
SRCS := $(wildcard $(S)/*.cpp) $(wildcard $(S)/*.c)
OBJS := $(patsubst $(S)/%.cpp, $(B)/%.o, $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS)))
F := $(CXX_FLAGS) $(I) -include cbb_compat.h

.PHONY: all
all:
	@$(MAKE) $(O)

$(O): $(OBJS)
	@mkdir -p $(dir $@)
	$(AR) rcs $@ $^
	@echo "[$(M)] built"

$(B)/%.o: $(S)/%.cpp
	@mkdir -p $(dir $@)
	$(CXX) $(F) -c $< -o $@

$(B)/%.o: $(S)/%.c
	@mkdir -p $(dir $@)
	$(CC) $(C_FLAGS) $(I) -c $< -o $@

.PHONY: clean
clean:
	rm -rf $(B) $(O)

.PHONY: rebuild
rebuild: clean all
