如何使用autotools构建系统完全包含另一个项目?
我的项目依赖于C语言中的第三方库,它本身有一个独立的基于autotools的构建系统 我想在源代码树中有一个第三方库的副本,并为我的项目构建基于autotools的通用构建系统,这样我就可以配置一个和所有常用的autotools来完成完整的一次性构建 该系统将以某种方式首先构建第三方库(使用第三方的configure.ac等,就好像它是独立构建的一样),然后将我的所有源代码编译并链接到第三方库(我愿意将我的程序静态链接到第三方库,而不在系统的任何位置安装第三方库,如如何使用autotools构建系统完全包含另一个项目?,autotools,build-system,Autotools,Build System,我的项目依赖于C语言中的第三方库,它本身有一个独立的基于autotools的构建系统 我想在源代码树中有一个第三方库的副本,并为我的项目构建基于autotools的通用构建系统,这样我就可以配置一个和所有常用的autotools来完成完整的一次性构建 该系统将以某种方式首先构建第三方库(使用第三方的configure.ac等,就好像它是独立构建的一样),然后将我的所有源代码编译并链接到第三方库(我愿意将我的程序静态链接到第三方库,而不在系统的任何位置安装第三方库,如/usr/local等) 因此
/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 ?
如何创建此类链式依赖构建?您可以使用:
在大多数情况下,调用AC_OUTPUT
足以在子目录中生成makefile。但是,控制多个独立包的configure
脚本可以使用AC_CONFIG_子目录
为子目录中的其他包运行configure
脚本
-宏:AC_配置_子目录(目录…在给定的空白或换行分隔列表中的每个子目录dir中进行
AC_输出
runconfigure
嘿@psb,你可以在这里阅读。一般来说,关于SO的问题应该针对一个特定的问题。例如,在这里你可以问我如何使用autoconf递归地配置和构建子项目(也使用autoconf?
(如果这确实是你的问题,我不熟悉autoconf,我可能误解了你的意图)而不是征求人们的意见。