50 lines
1.8 KiB
Makefile
50 lines
1.8 KiB
Makefile
# 定义项目名称与变量
|
|
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
|