automake生成的Makefile当你执行make install 的时候我们知道会找install规则,那么具体是怎么安装的呢? 看下面
install: install-recursive
很显然 install-recursive是依赖install-recursive的,那么install-recursive规则是什么呢?
RECURSIVE_TARGETS= ... install-recursive ...
找了下install-recursive是放在变量RECURSIVE_TARGETS中,当然这变量里面还放了许多其他目标,但我们现在只关心install-recursive,那么变量RECURSIVE_TARGETS是怎么使用的呢?
am__recursive_targets= $(RECURSIVE_TARGETS)
我们看到将变量RECURSIVE_TARGETS中的值放入到了am__recursive_targets中,好吧我们在找下am__recursive_targets变量.我们在Makefile中发现了如下规则,很显然我们要找的install-recursive也在这里面了,看着是shell语法,我们的install-recursive呢,分析下这个shell
$(am__recursive_targets):
@fail=; \ #定义了一个变量
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@