.PHONY: wrapper build test examples clean clean-all install help
all: wrapper build
wrapper: clean-wrapper
@echo "🔨 编译CTP统一C++包装器..."
cd libs/ctp/wrapper && $(MAKE)
@echo "✅ 统一C++包装器编译完成"
build: wrapper
@echo "🦀 编译Rust项目..."
cargo build
@echo "✅ Rust项目编译完成"
release: wrapper
@echo "🚀 编译发布版本..."
cargo build --release
@echo "✅ 发布版本编译完成"
test: build
@echo "🧪 运行测试..."
cargo test
@echo "✅ 测试完成"
examples: build
@echo "📚 编译示例程序..."
cargo build --examples
@echo "✅ 示例程序编译完成"
run-md-basic: examples
@echo "🔄 运行行情示例..."
cargo run --example md_basic
run-trader-basic: examples
@echo "💹 运行交易示例..."
cargo run --example trader_basic
run-async-md: examples
@echo "⚡ 运行异步行情示例..."
cargo run --example async_md_basic
run-encoding-demo: examples
@echo "🔤 运行编码演示..."
cargo run --example encoding_demo
run-error-handling: examples
@echo "🔧 运行错误处理示例..."
cargo run --example error_handling
clean:
@echo "🧹 清理Rust编译产物..."
cargo clean
@echo "✅ Rust清理完成"
clean-wrapper:
@echo "🧹 清理统一C++包装器..."
cd libs/ctp/wrapper && $(MAKE) clean
@echo "✅ 统一C++包装器清理完成"
clean-all: clean clean-wrapper
@echo "🧹 清理临时文件..."
@find . -name "*.con" -delete 2>/dev/null || true
@find . -name "error.*" -delete 2>/dev/null || true
@echo "✅ 完全清理完成"
fmt:
@echo "✨ 格式化代码..."
cargo fmt
@echo "✅ 代码格式化完成"
clippy: build
@echo "🔍 运行Clippy检查..."
cargo clippy -- -D warnings
@echo "✅ Clippy检查完成"
doc:
@echo "📖 生成文档..."
cargo doc --no-deps --open
@echo "✅ 文档生成完成"
install-wrapper: wrapper
@echo "📦 安装统一C++包装器..."
cd libs/ctp/wrapper && $(MAKE) install
@echo "✅ 统一C++包装器安装完成"
update:
@echo "🔄 检查依赖更新..."
cargo update
@echo "✅ 依赖更新完成"
bench: build
@echo "⚡ 运行基准测试..."
cargo bench
@echo "✅ 基准测试完成"
prepare-release: clean-all
@echo "🚀 准备发布..."
$(MAKE) wrapper
$(MAKE) build
$(MAKE) test
$(MAKE) clippy
$(MAKE) doc
@echo "✅ 发布准备完成"
help:
@echo "CTP Rust SDK 编译帮助"
@echo "====================="
@echo ""
@echo "🔨 编译命令:"
@echo " make - 编译统一包装器和Rust项目 (默认)"
@echo " make wrapper - 只编译统一C++包装器 (自动检测平台)"
@echo " make build - 编译Rust项目"
@echo " make release - 编译发布版本"
@echo " make examples - 编译示例程序"
@echo ""
@echo "🧪 测试命令:"
@echo " make test - 运行测试"
@echo " make clippy - 运行Clippy检查"
@echo " make bench - 运行基准测试"
@echo ""
@echo "📚 示例运行:"
@echo " make run-md-basic - 运行行情示例"
@echo " make run-trader-basic - 运行交易示例"
@echo " make run-async-md - 运行异步行情示例"
@echo " make run-encoding-demo - 运行编码演示"
@echo " make run-error-handling- 运行错误处理示例"
@echo ""
@echo "🧹 清理命令:"
@echo " make clean - 清理Rust编译产物"
@echo " make clean-wrapper- 清理统一C++包装器"
@echo " make clean-all - 完全清理"
@echo ""
@echo "📖 工具命令:"
@echo " make fmt - 格式化代码"
@echo " make doc - 生成文档"
@echo " make update - 更新依赖"
@echo " make install-wrapper - 安装统一C++包装器到系统"
@echo " make prepare-release - 准备发布"
@echo " make help - 显示此帮助"
@echo ""
@echo "🔄 新特性:"
@echo " 统一C++包装器 - 自动检测Linux/macOS并处理版本差异"
@echo " 跨平台兼容 - 一套代码支持CTP 6.7.7 (macOS) 和 6.7.11 (Linux)"