Makefile 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. # TsDB2 Makefile
  2. # 时序数据库构建与测试
  3. .PHONY: all build test clean demo stress persist help
  4. # 默认目标
  5. all: build
  6. # 构建
  7. build:
  8. @echo "=== 构建 TsDB2 ==="
  9. go build ./DB/...
  10. # 运行所有测试
  11. test: test-unit test-demo test-stress
  12. # 单元测试
  13. test-unit:
  14. @echo "=== 运行单元测试 ==="
  15. go test ./DB/... -v
  16. # 运行所有 demo
  17. demo: demo-btree demo-time demo-str demo-compose demo-all
  18. # B+ 树 demo
  19. demo-btree:
  20. @echo "=== 运行 B+ 树 Demo ==="
  21. cd demo && go run btree_demo.go
  22. # 时序索引 demo
  23. demo-time:
  24. @echo "=== 运行时序索引 Demo ==="
  25. cd demo && go run time_demo.go
  26. # 字符串索引 demo
  27. demo-str:
  28. @echo "=== 运行字符串索引 Demo ==="
  29. cd demo && go run str_demo.go
  30. # 复合索引 demo
  31. demo-compose:
  32. @echo "=== 运行复合索引 Demo ==="
  33. cd demo && go run compose_demo.go
  34. # 综合索引 demo
  35. demo-all:
  36. @echo "=== 运行综合索引 Demo ==="
  37. cd demo && go run all_index_demo.go
  38. # 10 万行压力测试
  39. stress:
  40. @echo "=== 运行 10 万行压力测试 ==="
  41. cd demo && go run stress_100k.go
  42. # 持久性测试
  43. persist:
  44. @echo "=== 运行持久性测试 (阶段1: 创建数据) ==="
  45. cd demo && go run persist_check.go
  46. @echo ""
  47. @echo "=== 运行持久性测试 (阶段2: 验证数据) ==="
  48. cd demo && go run persist_check.go phase2
  49. # 运行主程序
  50. run:
  51. @echo "=== 运行主程序 ==="
  52. go run main.go
  53. # 清理临时文件
  54. clean:
  55. @echo "=== 清理临时文件 ==="
  56. rm -f demo/*.db
  57. rm -f *.db
  58. @echo "清理完成"
  59. # 代码格式化
  60. fmt:
  61. @echo "=== 格式化代码 ==="
  62. go fmt ./...
  63. # 代码检查
  64. lint:
  65. @echo "=== 代码检查 ==="
  66. go vet ./...
  67. # 依赖检查
  68. deps:
  69. @echo "=== 检查依赖 ==="
  70. go mod tidy
  71. go mod verify
  72. # 生成项目结构
  73. tree:
  74. @echo "=== 项目结构 ==="
  75. @tree /F /A 2>nul || find . -type f -name "*.go" | head -50
  76. # 显示帮助
  77. help:
  78. @echo "TsDB2 Makefile 使用说明:"
  79. @echo ""
  80. @echo " make build - 构建项目"
  81. @echo " make test - 运行所有测试"
  82. @echo " make demo - 运行所有 demo"
  83. @echo " make demo-btree - 运行 B+ 树 demo"
  84. @echo " make demo-time - 运行时序索引 demo"
  85. @echo " make demo-str - 运行字符串索引 demo"
  86. @echo " make demo-compose- 运行复合索引 demo"
  87. @echo " make demo-all - 运行综合索引 demo"
  88. @echo " make stress - 运行 10 万行压力测试"
  89. @echo " make persist - 运行持久性测试"
  90. @echo " make run - 运行主程序"
  91. @echo " make clean - 清理临时文件"
  92. @echo " make fmt - 格式化代码"
  93. @echo " make lint - 代码检查"
  94. @echo " make deps - 依赖检查"
  95. @echo " make tree - 显示项目结构"
  96. @echo " make help - 显示帮助"
  97. @echo ""
  98. @echo "快速开始:"
  99. @echo " make build && make demo"
  100. @echo ""