include ./../../../linux.mk

ROOT := $(realpath $(CURDIR)/../../../..)

INC_PATH := -I$(ROOT)/release/inc \
            -I$(ROOT)/src/system/inc \
            -I$(ROOT)/src/public/libdatacenter/inc \
            -I$(ROOT)/src/public/liblog/inc \
            -I$(ROOT)/src/public/libfunc/inc \
            -I$(ROOT)/src/public/libcmd/inc \
            -I$(ROOT)/src/public/libtask/inc \
            -I$(ROOT)/src/public/libmy_xxhash/inc \
            -I$(ROOT)/src/protocol/libmodbus/inc

LIBS := -L$(ROOT)/release/$(BUILD_TYPE)/lib \
        -lsystem -lmodbus_m -lmodbus -l60870 \
        -ldatacenter -lxml -lcmd -ltask \
        -llog -lfunc -lmy_xxhash -lcJSON -lmd5 -lcomm \
        -lpthread -lstdc++

O := $(ROOT)/release/$(BUILD_TYPE)/exe/RTU
S := $(ROOT)/src/system/RTU/src
B := $(CURDIR)/RTU/obj
SRCS := $(wildcard $(S)/*.c)
OBJS := $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS))
F := $(C_FLAGS) $(INC_PATH)

.PHONY: all
all: $(O)
	@echo "[RTU] built -> $(O)"

$(O): $(OBJS)
	@mkdir -p $(dir $@)
	$(CXX) $^ $(LIBS) -o $@

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

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

.PHONY: rebuild
rebuild: clean all
