msg_udp_ctrl/Makefile
2025-05-30 16:41:12 +08:00

67 lines
1.7 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ================================================================
# 1. 确保交叉编译工具链路径正确
# 2. 确保源码放在src目录头文件放在inc目录
# 3. 命令行执行:
# make # 编译
# make clean # 清理
#
# 4. 编译输出文件在build下msg_udp_ctrl.out
# ================================================================
# TODO 交叉编译器路径配置
TOOLCHAIN_DIR ?= /home/qieyuan/bupt_project/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
CROSS_COMPILE ?= $(TOOLCHAIN_DIR)/bin/aarch64-linux-gnu-
# 编译配置
CC = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar
STRIP = $(CROSS_COMPILE)strip
# 输出目录配置
BUILD_DIR = build
TARGET = $(BUILD_DIR)/msg_udp_ctrl.out
# 代码目录配置
SRC_DIR = src
INC_DIR = inc
OBJ_DIR = $(BUILD_DIR)/obj
# 编译器选项配置
CFLAGS = -O2 -Wall -Werror -g
CFLAGS += -I$(INC_DIR) # 头文件搜索路径
CFLAGS += -MMD -MP # 自动生成依赖关系
CFLAGS += -fPIC # 位置无关代码
LDFLAGS = -lpthread -lrt # 多线程与mmap拓展库
# UDP专用宏定义
# DEFINES = -DUSE_UDP_OPTIMIZE=1
# CFLAGS += $(DEFINES)
# 自动收集源文件
SRCS = $(wildcard $(SRC_DIR)/*.c)
OBJS = $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
DEPS = $(OBJS:.o=.d) # 依赖
# ======================== 构建规则 ===============================
.PHONY: all clean
all: $(TARGET)
# 主目标链接
$(TARGET): $(OBJS)
@echo "Linking $@"
@mkdir -p $(@D) # 创建目标目录
$(CC) $^ -o $@ $(LDFLAGS)
# 编译规则
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@echo "Compiling $<"
@mkdir -p $(@D) # 创建对象目录
$(CC) $(CFLAGS) -c $< -o $@
# 包含自动生成的依赖关系
-include $(DEPS)
clean:
rm -rf $(BUILD_DIR)