我有一个带有两个模块(客户端和服务器)的项目。 每个模块都在它自己的子文件夹中,有自己的make文件。 我在项目的根目录中有单个configure.ac文件。
我们使用AC_SEARCH_LIBS为项目设置编译标志。 问题是两个模块都需要使用不同的库(服务器需要pthread,客户端不需要)。
如何为不同的模块设置不同的编译标志?
最佳做法是什么?
我是否需要拆分configure.ac? (如果是,应该如何正确完成)
答案 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@