10.3 Makefile 结构
Source tree 中的 Makefile 使用了递归的机理来运行相对的子树中的 make 目标。递归通过 REC_TARGETS
和 SUBDIR
变量来控制,递归过程在 Makefile.global
中执行。任何加入到 REC_TARGETS
中的变量都将在所有的在 SUBDIR
中的目录中被递归地调用。 此外,目标的带有 -l
后缀的本地变种将会在递归到子目录后被调用,因此递归是深度优先的。
dist, clean, distclean, maintainer-clean
目标默认是递归的,也就是说这些变量将会在所有的含有 Makefile 的目录中调用他们的本地(local) -l
变种。这样真正的深度优先才可以被执行。深度优先对正确运行 *clean
目标是必须的,否则,举个例子, path.mk
将会在调用子目录 *clean
目标之前被删除,但是他包含了 *clean
所要以来的信息。
Last updated