我从源代码树构建了二十多个目标,通常有三个活动分支,包括生成和调试版本。到目前为止,我已经使用了一个定义目标的个人Makefile,其中包含一个公共Makefile,它定义了编译标志,然后包含来自特定源树的Makefile。这有效,但我不禁想到有更好的方法。
我想使用sqlite3数据库来存储和组织构建标志的完整列表。在编译时,将查询数据库以生成基于项目版本,平台和开发/生产的标志,并开始构建。
这个数据库是一个单独的地方,我可以记录并跟踪我所有开发版本的当前设置。一组基本的存储标志将被版本,目标平台上的更细粒度的标志覆盖,然后构建质量级别。
作为实现这样的东西的一部分,我还会创建一些shell脚本来操作数据库和获取/设置标志,以及允许我实验室中的其他开发人员更容易地采用它。
这已经完成了吗?有这样的例子吗?
有没有不同/更好的方法来处理这个问题?
两件事: *我无法修改原始项目Makefile。 *尝试使用像automake这样的东西会很麻烦,因为必要的数量 配置标志以在代码库的现有模块中启用调试级别将为数百个。
答案 0 :(得分:1)
我怀疑你可能想看看更复杂的构建系统。查看ant,jam和其他构建系统工具。我认为你所描述的标准GNU方式是通过./configure(autoconf)脚本,虽然我可以看到管理不同的配置会很困难。
虽然可以编写自己的Makefile配置系统,但我怀疑如果你希望你的代码有更广泛的采用,那么使用更标准的构建系统是正确的答案。
答案 1 :(得分:0)
恕我直言,为此使用数据库是过度的。使用makefile include是一种干净而简单的方法来处理它。您对此方法的疑虑/问题/问题是什么?也许有一种方法可以重构你的makefile以实现你的目标,而无需添加数据库,也无需切换到完全不同的构建系统。