我有一个要使用 automake 构建的项目。项目由不同的组件或模块组成,并且存在模块间依赖关系,需要按特定顺序构建项目。
例如:
project dir/
module1 (core C shared lib)
module2 (C++ shared lib wrapper around module 1)
module3 (C++ application with dependency on module2)
module4 (C library with dependency on module1)
module5 (C application with dependency on module4)
我对 automake 比较陌生,但我(差不多)知道如何使用它来成功构建单个项目。
我想要一个“主”项目文件(如果可能的话),它指定项目模块的构建顺序,运行单元测试并在以下情况下使整个构建过程失败:
- 其中一个模块构建失败
- 其中一个模块未通过单元测试
我将如何着手编写这样一个“主项目”文件(或调用任何其他机制)来构建具有大量模块间依赖性的项目?
最佳答案
如果您正在使用 autotools,那么您也可以使用 automake。顶级 Makefile.am
可以提供按顺序下降的子目录列表,例如:
SUBDIRS = module1 module2 module3 module4 module5
子目录 Makefile.am
可以添加测试目标,使用“make check”调用,必要时将强制构建:
check_PROGRAMS = t_module1
t_module1_SOURCES = t_module1.c
t_module1_LDADD = ./libmodule1.la
有很多需要学习,而且当前最佳实践可能很难确定,但如果您使用自动工具,您就会习惯这种情况。
编辑:
info automake
提供了引用文档 - 但它是一个糟糕的教程。可以找到我遇到的最好的指南之一 here .
关于c++ - automake 和项目依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8216181/