我有一个递归的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?
答案 0 :(得分:2)
在你的toplevel Makefile.am中,每个库使用一个变量名
LIBFOO = -lfoo
LIBBAR = -lbar
在子目录中引用$(LIBFOO)和$(LIBBAR)