build: 构建系统增强

- build.sh: 编译前删除旧 RTU,编译后拷贝到项目根目录
- linux.mk: ARM 交叉编译新增 -mno-outline-atomics 和 -fno-threadsafe-statics
- copy_headers.sh: 新增 libicp67 头文件拷贝
- makefile: 各模块编译选项微调
This commit is contained in:
ypc 2026-07-14 10:59:27 +08:00
parent b00b998ac1
commit b04cba095d
10 changed files with 39 additions and 11 deletions

View File

@ -1,11 +1,22 @@
#!/bin/bash #!/bin/bash
cd "$(dirname "$0")" cd "$(dirname "$0")"
echo "=== RTU_ALL_AI Build ===" echo "=== RTU_ALL_AI Build ==="
# 删除 config 同级目录下的旧 RTU (即项目根目录)
rm -f ../RTU
if [ "$1" = "arm" ]; then if [ "$1" = "arm" ]; then
echo "ARM cross-compile..." echo "ARM cross-compile..."
make CROSS=arm clean && make CROSS=arm make CROSS=arm clean && make CROSS=arm
cp arm/exe/RTU ../RTU
elif [ "$1" = "debug" ]; then
echo "x86 DEBUG build (-O0 -g)..."
make clean && make DEBUG=1
cp x86/exe/RTU ../RTU
else else
echo "x86 local build..." echo "x86 release build (-O2 -g)..."
make clean && make make clean && make
cp x86/exe/RTU ../RTU
fi fi
echo "=== Done ==="
echo "=== Done === RTU copied to $(dirname "$0")/../RTU"

View File

@ -108,8 +108,7 @@ copy_proto_module "libicp67" "myIcp67.h"
# 系统模块system/ # 系统模块system/
# ================================================================ # ================================================================
copy_sys_header "mySystem.h" copy_sys_header "mySystem.h"
copy_sys_module "libweb_server" "web_server.h" copy_sys_header "app_modules.h"
copy_sys_module "libself_ptl" "self_ptl.h" copy_sys_header "app_msg_queue.h"
copy_sys_module "libcom_router" "com_router.h"
echo "=== done ===" echo "=== done ==="

View File

@ -1,6 +1,6 @@
# release/inc/ 目录下仅 myBase.h 纳入版本管理 # release/inc/ 目录下仅 myBase.h 纳入版本管理
# 其他头文件由 release/copy_headers.sh 在编译前生成 # 其他头文件由 release/copy_headers.sh 在编译前生成
* *
!iec61850_inc !iec61850_inc/
!myBase.h !myBase.h
!.gitignore !.gitignore

View File

@ -31,6 +31,17 @@ REL_INC := -I$(ROOT_DIR)/release/inc
# ------ 编译选项 ------ # ------ 编译选项 ------
C_FLAGS := $(REL_INC) -Wall -g C_FLAGS := $(REL_INC) -Wall -g
CXX_FLAGS := $(REL_INC) -std=c++11 -Wall -g CXX_FLAGS := $(REL_INC) -std=c++11 -Wall -g
# ------ Debug 编译 (make DEBUG=1) ------
ifeq ($(DEBUG), 1)
$(info ===> DEBUG mode: -O0)
C_FLAGS += -O0 -DDEBUG
CXX_FLAGS += -O0 -DDEBUG
else
C_FLAGS += -O2
CXX_FLAGS += -O2
endif
ifeq ($(CROSS), arm) ifeq ($(CROSS), arm)
C_FLAGS += -DRK356x -mno-outline-atomics C_FLAGS += -DRK356x -mno-outline-atomics
CXX_FLAGS += -DRK356x -mno-outline-atomics -fno-threadsafe-statics CXX_FLAGS += -DRK356x -mno-outline-atomics -fno-threadsafe-statics

View File

@ -10,6 +10,8 @@ OBJS := $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS))
F := $(C_FLAGS) $(I) F := $(C_FLAGS) $(I)
F += -include cbb_compat.h F += -include cbb_compat.h
F += -Wno-implicit-function-declaration F += -Wno-implicit-function-declaration
F += -Wno-unused-variable
F += -Wno-unused-function
.PHONY: all .PHONY: all
all: all:

View File

@ -7,7 +7,7 @@ I := -I$(SRC_ROOT_DIR)/$(L)/libicp67/inc -I$(SRC_ROOT_DIR)/public/liblog/inc
B := $(CURDIR)/$(M)/obj B := $(CURDIR)/$(M)/obj
SRCS := $(wildcard $(S)/*.c) SRCS := $(wildcard $(S)/*.c)
OBJS := $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS)) OBJS := $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS))
F := $(C_FLAGS) $(I) F := $(C_FLAGS) $(I) -Wno-unused-variable
.PHONY: all .PHONY: all
all: all:

View File

@ -16,9 +16,13 @@ INC_PATH := -I$(ROOT)/release/inc \
-I$(ROOT)/src/protocol/libmongoose/inc -I$(ROOT)/src/protocol/libmongoose/inc
LIBS := -L$(ROOT)/release/$(BUILD_TYPE)/lib \ LIBS := -L$(ROOT)/release/$(BUILD_TYPE)/lib \
-lweb_server -lmodbus_m -lself_ptl -lcom_router -liec -licp67 -lmodbus -l60870 \ -Wl,--whole-archive \
-lmongoose -ldatacenter -lxml -lcmd -ltask \ -lweb_server -lmodbus_m -lself_ptl -lcom_router -liec -lplc -licp67 \
-ldatacenter -lxml -lcmd -ltask \
-llog -lfunc -lmy_xxhash -lcJSON -lmd5 -lcomm \ -llog -lfunc -lmy_xxhash -lcJSON -lmd5 -lcomm \
-Wl,--no-whole-archive \
-lmodbus -l60870 \
-lmongoose \
-lpthread -lstdc++ -lpthread -lstdc++
O := $(ROOT)/release/$(BUILD_TYPE)/exe/RTU O := $(ROOT)/release/$(BUILD_TYPE)/exe/RTU

View File

@ -5,6 +5,7 @@ M := libiec
O := $(LIB_REL)/$(M).a O := $(LIB_REL)/$(M).a
S := $(SRC_ROOT_DIR)/$(L)/libiec/src S := $(SRC_ROOT_DIR)/$(L)/libiec/src
I := -I$(SRC_ROOT_DIR)/$(L)/libiec/inc \ 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)/protocol/lib60870/inc \
-I$(SRC_ROOT_DIR)/public/libdatacenter/inc \ -I$(SRC_ROOT_DIR)/public/libdatacenter/inc \
-I$(SRC_ROOT_DIR)/public/liblog/inc \ -I$(SRC_ROOT_DIR)/public/liblog/inc \

View File

@ -11,7 +11,7 @@ I := -I$(SRC_ROOT_DIR)/$(L)/libplc/inc -I$(SRC_ROOT_DIR)/$(L)/inc \
B := $(CURDIR)/$(M)/obj B := $(CURDIR)/$(M)/obj
SRCS := $(wildcard $(S)/*.cpp) $(wildcard $(S)/*.c) SRCS := $(wildcard $(S)/*.cpp) $(wildcard $(S)/*.c)
OBJS := $(patsubst $(S)/%.cpp, $(B)/%.o, $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS))) OBJS := $(patsubst $(S)/%.cpp, $(B)/%.o, $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS)))
F := $(CXX_FLAGS) $(I) F := $(CXX_FLAGS) $(I) -Wno-unused-variable
.PHONY: all .PHONY: all
all: all:

View File

@ -10,7 +10,7 @@ I := -I$(SRC_ROOT_DIR)/$(L)/libself_ptl/inc -I$(SRC_ROOT_DIR)/$(L)/inc \
B := $(CURDIR)/$(M)/obj B := $(CURDIR)/$(M)/obj
SRCS := $(wildcard $(S)/*.cpp) $(wildcard $(S)/*.c) SRCS := $(wildcard $(S)/*.cpp) $(wildcard $(S)/*.c)
OBJS := $(patsubst $(S)/%.cpp, $(B)/%.o, $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS))) OBJS := $(patsubst $(S)/%.cpp, $(B)/%.o, $(patsubst $(S)/%.c, $(B)/%.o, $(SRCS)))
F := $(CXX_FLAGS) $(I) F := $(CXX_FLAGS) $(I) -Wno-unused-but-set-variable
.PHONY: all .PHONY: all
all: all: