每个子项目LIBS的Autotools可能吗?

时间:2014-09-11 04:00:54

标签: autotools autoconf automake libtool

我有一个递归的autoconf + automake项目,结构如下:

+
|- configure.ac
|- Makefile.am
|- Makefile.in
|- ...
|-- (subdir1) --+
|               |- Makefile.am
|               |- source.c
|               |- ...
|
|-- (subdir2) --+
|               |- Makefile.am
                |- source.c
                |- ...

顶级configure / Makefile检查各种库是否可用(AC_CHECK_LIB),然后在子目录中构建库(如果选中)。

问题是传递给每个子目录的LIBS变量包含所有必需库的并集,即:

# each subdir sees:
LIBS = -lfoo -lbar -lbaz -lbif

但我想要的是:

# subdir1 gets
LIBS = -lfoo -lbar

# subdir2 gets
    LIBS = -lbaz -lbif

是否有一种机制来指定每个子项目LIBS?

1 个答案:

答案 0 :(得分:2)

在你的toplevel Makefile.am中,每个库使用一个变量名

LIBFOO = -lfoo

LIBBAR = -lbar

在子目录中引用$(LIBFOO)和$(LIBBAR)