# 定义项目名称与变量 BINARY_NAME := toolbox TARGET_DIR := target # 目标平台配置 TARGET_MAC_ARM := aarch64-apple-darwin TARGET_LINUX_AMD := x86_64-unknown-linux-musl TARGET_LINUX_ARM := aarch64-unknown-linux-musl .PHONY: all help init build-mac-arm build-linux-amd build-linux-arm clean # 默认目标:显示帮助信息 help: @echo "使用说明:" @echo " make init - 安装多平台交叉编译所需的 target" @echo " make all - 编译所有平台 (macOS ARM, Linux AMD64, Linux ARM64)" @echo " make build-mac-arm - 仅编译 macOS Apple Silicon (ARM64)" @echo " make build-linux-amd - 仅编译 Linux AMD64 (x86_64 musl)" @echo " make build-linux-arm - 仅编译 Linux ARM64 (aarch64 musl)" @echo " make clean - 清理编译产物" # 首次使用时环境初始化(安装 target) init: rustup target add $(TARGET_MAC_ARM) rustup target add $(TARGET_LINUX_AMD) rustup target add $(TARGET_LINUX_ARM) # 编译所有平台 all: build-mac-arm build-linux-amd build-linux-arm @echo "\n🎉 所有平台编译完成!产物路径:" @echo " - macOS ARM64: $(TARGET_DIR)/$(TARGET_MAC_ARM)/release/$(BINARY_NAME)" @echo " - Linux AMD64: $(TARGET_DIR)/$(TARGET_LINUX_AMD)/release/$(BINARY_NAME)" @echo " - Linux ARM64: $(TARGET_DIR)/$(TARGET_LINUX_ARM)/release/$(BINARY_NAME)" # 单个平台编译命令 build-mac-arm: @echo "🚀 编译 macOS ARM64 ($(TARGET_MAC_ARM))..." cross build --release --target $(TARGET_MAC_ARM) build-linux-amd: @echo "🚀 编译 Linux AMD64 ($(TARGET_LINUX_AMD))..." cross build --release --target $(TARGET_LINUX_AMD) build-linux-arm: @echo "🚀 编译 Linux ARM64 ($(TARGET_LINUX_ARM))..." cross build --release --target $(TARGET_LINUX_ARM) # 清理生成文件 clean: cargo clean