C 如何使用make构建库列表?

C 如何使用make构建库列表?,c,makefile,C,Makefile,我有一个makefile: LIBS = \ lib1 \ lib2 etc... libs : $(LIBS) $(LIBS) : @if [ -f lib/${@}/makefile ]; then cd lib/${@}/; $(MAKE); fi 我需要它切换到每个库的目录并构建它。出于某种原因,只构建了$LIBS中的第一个库(即lib1) $@是这里要使用的正确变量吗 谢谢 也许lib/${@}/makefile不存在,但是lib/${}/makefile存在make可

我有一个makefile:

LIBS = \
lib1 \
lib2
etc...

libs : $(LIBS)

$(LIBS) :

    @if [ -f lib/${@}/makefile ]; then cd lib/${@}/; $(MAKE); fi
我需要它切换到每个库的目录并构建它。出于某种原因,只构建了$LIBS中的第一个库(即lib1)

$@是这里要使用的正确变量吗


谢谢

也许
lib/${@}/makefile
不存在,但是
lib/${}/makefile
存在
make
可以很好地处理这两种情况


一般来说,您不应该测试makefile是否存在;如果它不存在,那应该是一个错误:或者该目录不是库目录,或者
$(LIBS)
正被用于一些事情,这意味着它应该被重构。

复制并粘贴上面的确切makefile(减去
等…
行)对于
lib/lib1/makefile
lib/lib2/makefile
文件,它在这里工作得很好。