我的要求:
- 快速构建;非递归 make(Stack Overflow 问题 你对非递归 make 有什么经验?)
- 模块化系统(即最小依赖项,在子目录中具有组件的 makefile)
- 多平台(通常用于单元测试的 PC,用于系统集成/发布的嵌入式目标)
- 完整的依赖关系检查
- 能够执行(自动)单元测试(敏捷工程)
- 与持续集成系统连接
- 易于使用
目前的限制如下:
- 没有单元测试集成
- 基于Windows的ARM编译器与Cygwin路径不兼容
- makefile与Windows \路径不兼容
- 前置依赖关系
project_root
/algorithm
/src
/algo1.c
/algo2.c
/unit_test
/algo1_test.c
/algo2_test.c
/out
algo1_test.exe
algo1_test.xml
algo2_test.exe
algo2_test.xml
headers.h
/embunit
/harnass
makefile
Rules.top
我希望保持简单;这里的单元测试(algo1_test.exe)依赖于“算法”组件(ok)和单元测试框架(在构建时可能已知也可能未知)。然而,将构建规则移动到顶部并不吸引我,因为这会在整个系统中分布组件的本地知识。至于Cygwin路径:我正在努力使用相对路径进行构建。这解决了/cygdrive/c问题(编译器通常可以处理/路径),而不需要引入C:(这是make不喜欢的)。还有其他想法吗?
/
作为路径分隔符。几乎每个使用路径的API函数都会将它们透明地转换为\
。 - Joey