Step 1: init.txt → services.yaml - 新增 InitParser (yaml-cpp), 支持 YAML/TXT 双模式解析, 向后兼容 init.txt - 新增 services.yaml 声明式服务配置 (name/cmd/args/depends_on/sleep_before) - 改造 pmc_mtd.cpp 集成 InitParser, 支持目录/.yaml/.txt 三种路径模式 - Makefile 添加 InitParser 编译目标 + -lyaml-cpp 链接 - setup 脚本添加 libyaml-cpp-dev / yaml-cpp-devel 依赖 - core/_run.sh 改为 -i . (目录模式, 自动查找 services.yaml → init.txt) Step 2: 11 个 _run.sh 统一参数透传 - 8 个脚本改动: 追加 "$@" / 移除 sleep / 修引号 - waf 保留 -c config.yaml 作为脚本默认值 - services.yaml waf args 改为 [] 避免重复传递 - 开发方案文档: docs/reports/core_services_yaml_dev_doc.md
97 lines
2.4 KiB
Makefile
97 lines
2.4 KiB
Makefile
VERSION := 0.1.0
|
|
|
|
APP_NAME := nidus
|
|
|
|
INSTL_DIRS := /usr/local/bin
|
|
|
|
CONF_NAME := services.yaml
|
|
|
|
CONF_DIR := /etc/Nidus
|
|
|
|
SRV_NAME := Nidus.service
|
|
|
|
SRV_DIR := /etc/systemd/system
|
|
|
|
CPP:= g++
|
|
|
|
INCS:= -I include/
|
|
|
|
MY_LIBS := -L/usr/lib -lus_th -lus_http -lus_httpclient -lus_msg -lcurl
|
|
LIBS := -lpthread -lssl -lcrypto -lboost_program_options -lboost_json -lboost_thread -lboost_filesystem -lyaml-cpp
|
|
|
|
CPPFLAGS := --std=c++20 -O3 -pipe #-Wall -Werror
|
|
|
|
BUILD_DIR = build
|
|
$(shell mkdir -p $(BUILD_DIR))
|
|
|
|
#--------
|
|
all: ${APP_NAME}.out
|
|
${APP_NAME}.out: $(BUILD_DIR)/main.o $(BUILD_DIR)/PPool.o $(BUILD_DIR)/ProcessTask.o $(BUILD_DIR)/HttpTask.o $(BUILD_DIR)/ConfsTask.o $(BUILD_DIR)/Tttask.o $(BUILD_DIR)/pmc_mtd.o $(BUILD_DIR)/subsys_call.o $(BUILD_DIR)/InitParser.o
|
|
$(CPP) $^ $(MY_LIBS) $(LIBS) -o $@
|
|
|
|
$(BUILD_DIR)/main.o: src/main.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/PPool.o: src/main/PPool.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/ProcessTask.o: src/main/ProcessTask.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/Tttask.o: src/main/Tttask.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/HttpTask.o: src/main/HttpTask.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/ConfsTask.o: src/main/ConfsTask.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/pmc_mtd.o: src/main/pmc_mtd.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/subsys_call.o: src/main/subsys_call.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
$(BUILD_DIR)/InitParser.o: src/registry/InitParser.cpp
|
|
$(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@
|
|
|
|
|
|
|
|
install: $(APP_NAME).out
|
|
@echo "正在安装 $(APP_NAME) 到$(INSTL_DIRS)"
|
|
@
|
|
#@mkdir -p $(INSTL_DIRS)
|
|
@cp -f $(APP_NAME).out $(INSTL_DIRS)/$(APP_NAME)
|
|
#@chmod 755 $(INSTL_DIRS)/pmcd
|
|
@
|
|
@echo "正在配置 $(APP_NAME)"
|
|
@mkdir -p $(CONF_DIR)
|
|
@cp $(CONF_NAME) $(CONF_DIR)/$(CONF_NAME)
|
|
@cp init.txt $(CONF_DIR)/init.txt
|
|
@cp $(SRV_NAME) $(SRV_DIR)/$(SRV_NAME)
|
|
@systemctl daemon-reload
|
|
@systemctl enable $(SRV_NAME)
|
|
@systemctl restart $(SRV_NAME)
|
|
@
|
|
@echo "安装完成!"
|
|
|
|
uninstall:
|
|
@echo "正在从 $(INSTL_DIRS) 卸载 $(APP_NAME)"
|
|
@
|
|
@rm -f $(INSTL_DIRS)/$(APP_NAME)
|
|
@rm -f $(CONF_DIRS)/$(CONF_NAME)
|
|
@rm -f $(CONF_DIRS)/init.txt
|
|
@rm -f -d ${CONF_DIRS}
|
|
@
|
|
@systemctl stop $(SRV_NAME)
|
|
@systemctl disable $(SRV_NAME)
|
|
@rm -f $(SRV_DIRS)/$(SRV_NAME)
|
|
@systemctl daemon-reload
|
|
@
|
|
@echo "卸载完成!"
|
|
|
|
clear:
|
|
@rm -rvf $(BUILD_DIR)
|
|
@rm -vf *.out
|