我有这个makefile:
LIBS = \
lib1 \
lib2
etc...
libs : $(LIBS)
$(LIBS) :
@if [ -f lib/${@}/makefile ]; then cd lib/${@}/; $(MAKE); fi
我需要它切换到每个库的目录并构建它。出于某种原因,只构建$ LIBS中的第一个库(即lib1)。
$ @是在这里使用的正确变量吗?
谢谢!
答案 0 :(得分:0)
也许lib/${@}/makefile
不存在,但lib/${@}/Makefile
呢? make
可以正常使用。
一般情况下,你不应该测试makefile是否存在;如果它不存在应该是一个错误:目录不是库目录,或者$(LIBS)
被用于多个事情,这意味着它应该被重构。