Makru是一个用Python编写的全新编译工具。它的目的不是提供更多的编译逻辑,而是提供一个统一的平台方便开发和引入新的编译逻辑。Makru和目前主流的make-like编译系统最大的不同点再于:它没有使用类似宏语法之类的东西为配置文件提供超高的灵活性,而是直接选择了很多现代包管理工具正在使用的结构化数据配置文件(Makru使用的是yaml)。makru_langc就是在它之上构建的C语言项目编译插件。
得益于这样的选择,makru_langc提供了非常流畅的编译管理体验。你可以快速理解并编辑配置文件,而不是在配置文件的海洋里晕头转向。另外,makru_langc还支持高自由度的自定义,你甚至可以利用它提供的工具编写自己的编译逻辑。
这个文章系列将会介绍一个用makru_langc来管理编译的小演示项目scat,它接收标准输入然后输出到标准输出。为了演示makru_langc的功能,scat会有一个子项目叫libcopy。这个子项目里只有一个函数:从第一个File输入,输出到第二个File。