如何为子项目定义单独的配置

时间:2017-09-19 09:39:22

标签: autoconf automake

我有一个带有两个模块(客户端和服务器)的项目。 每个模块都在它自己的子文件夹中,有自己的make文件。 我在项目的根目录中有单个configure.ac文件。

我们使用AC_SEARCH_LIBS为项目设置编译标志。 问题是两个模块都需要使用不同的库(服务器需要pthread,客户端不需要)。

如何为不同的模块设置不同的编译标志?

最佳做法是什么?

我是否需要拆分configure.ac? (如果是,应该如何正确完成)

1 个答案:

答案 0 :(得分:0)

无需拆分为多个configure.ac

诀窍是,为每个库创建不同的替换变量,然后可以在Makefile.am中单独使用

configure.ac(摘录):

AC_SEARCH_LIBS([fooFun], [foo], [FOO_LIBS="-lfoo"])
AC_SEARCH_LIBS([barFun], [bar], [BAR_LIBS="-lbar"])
AC_SEARCH_LIBS([bazFun], [baz], [BAZ_LIBS="-lbaz"])
AC_SUBST([FOO_LIBS])
AC_SUBST([BAR_LIBS])
AC_SUBST([BAZ_LIBS])

和server / Makefile.am(摘录):

server_LDADD = @FOO_LIBS@ @BAR_LIBS@

RESP。 client / Makefile.am(摘录):

client_LDADD = @BAZ_LIBS@