如何使用autotools构建系统完全包含另一个项目?

如何使用autotools构建系统完全包含另一个项目?,autotools,build-system,Autotools,Build System,我的项目依赖于C语言中的第三方库,它本身有一个独立的基于autotools的构建系统 我想在源代码树中有一个第三方库的副本,并为我的项目构建基于autotools的通用构建系统,这样我就可以配置一个和所有常用的autotools来完成完整的一次性构建 该系统将以某种方式首先构建第三方库(使用第三方的configure.ac等,就好像它是独立构建的一样),然后将我的所有源代码编译并链接到第三方库(我愿意将我的程序静态链接到第三方库,而不在系统的任何位置安装第三方库,如/usr/local等) 因此

我的项目依赖于C语言中的第三方库,它本身有一个独立的基于autotools的构建系统

我想在源代码树中有一个第三方库的副本,并为我的项目构建基于autotools的通用构建系统,这样我就可以配置一个和所有常用的autotools来完成完整的一次性构建

该系统将以某种方式首先构建第三方库(使用第三方的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 ?
如何创建此类链式依赖构建?

您可以使用:

在大多数情况下,调用
AC_OUTPUT
足以在子目录中生成makefile。但是,控制多个独立包的
configure
脚本可以使用
AC_CONFIG_子目录
为子目录中的其他包运行
configure
脚本

-宏:AC_配置_子目录(目录…
在给定的空白或换行分隔列表中的每个子目录dir中进行
AC_输出
run
configure

嘿@psb,你可以在这里阅读。一般来说,关于SO的问题应该针对一个特定的问题。例如,在这里你可以问
我如何使用autoconf递归地配置和构建子项目(也使用autoconf?
(如果这确实是你的问题,我不熟悉autoconf,我可能误解了你的意图)而不是征求人们的意见。