# Makefile for bus_monitor
# 使用原始 NNG 接口

BUILD_DIR := $(subst //,/,$(BUILD_ROOT)/build/bus_monitor)
TARGET := bus_monitor

SRC_DIR := .

# 源文件列表
LOCAL_SRCS := bus_monitor.c 

# 对象文件
OBJS := $(addprefix $(BUILD_DIR)/,$(notdir $(LOCAL_SRCS:.c=.o)))
DEPS := $(OBJS:.o=.d)

# 编译选项
LOCAL_CFLAGS := -Wall -Wextra -std=c99 -g -O2
DEPFLAGS := -MMD -MP

# 包含路径
INCLUDES := -I$(SRC_DIR) \
    -I$(BUILD_ROOT)/libnngmsg/include \
    -I$(BUILD_ROOT)/libnngmsg/src \
    -I$(BUILD_ROOT)/alarm/src \
    -I$(BUILD_ROOT)/common/src/event_common \
    $(LNX_CFLAGS)

# 库路径和链接库
LIB_DIRS := -L$(LIB_DIR) \
	-L$(BUILD_ROOT)/libnngmsg/src \
    ${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib

LIBS := -lnng -lnngmsg -lpthread -lm -lrt

# 构建规则
.PHONY: all clean
all: $(BUILD_DIR)/$(TARGET)

# 主程序链接
$(BUILD_DIR)/$(TARGET): $(OBJS)
	@mkdir -p $(@D)
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) $(LIB_DIRS) $^ -o $@ $(LIBS)
	@mkdir -p $(BIN_DIR)
	@cp $(BUILD_DIR)/$(TARGET) $(BIN_DIR)

# 本地源文件编译规则
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
	@mkdir -p $(@D)
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) $(DEPFLAGS) $(INCLUDES) -c $< -o $@

# 清理规则
clean:
	rm -rf $(BUILD_DIR)

# 自动依赖处理
-include $(DEPS)