我的项目依赖于C中的第三方库(-ies),它本身就有一个工作的、独立的基于自动工具的构建系统。
我希望在源代码树中有一个第三方库的副本,并为我的项目构建一个通用的基于自动工具的构建系统,这样我就可以有一个配置和所有常用的自动工具打包来完成一个完整的一次性构建。
这个系统将以某种方式首先构建第三方库(使用第三方的configure.ac等,就好像它是孤立构建的),然后编译并将我的所有源代码与第三方库连接起来(我愿意静态地将我的程序链接到第三方库,而不是在系统的任何位置(如/usr/local等)安装第三方库)。
因此,我假设项目的目录结构如下:
project/
src/
folder_with_my_source_code/
third-party/
third-party-lib-1/
src/
Makefile.am // native lib-1 files, prefer to keep unmodified
configure.ac // native lib-1 files, prefer to keep unmodified
third-party-lib-2/
src/
Makefile.am // native lib-2 files, prefer to keep unmodified
configure.ac // native lib-2 files, prefer to keep unmodified
Makefile.am // do I need this at all ?
Makefile.am //this should describe how to build my files
Makefile.am // project's root makefile
configure.ac // this, probably, should somehow include instructions on how to build lib-1 and lib-2 with their supplied configure.ac's ?我如何才能创建这样的链式依赖的构建?
发布于 2019-11-20 12:50:24
您可以使用AC_CONFIG_SUBDIRS
在大多数情况下,调用
AC_OUTPUT就足以在子目录中生成makefile。但是,控制多个独立包的configure脚本可以使用AC_CONFIG_SUBDIRS为子目录中的其他包运行configure脚本。
-宏:AC_CONFIG_SUBDIRS (dir .)
使AC_OUTPUT在给定的空白或换行符列表中的每个子目录dir中运行configure .。
https://stackoverflow.com/questions/58954311
复制相似问题