所谓终极目标就是make最终所要重建的、 Makefile中某个规则的目标。为了完成
对终极目标的重建,可能会触发它的依赖或者依赖的依赖文件被重建的过程。默认情况
下,终极目标就是出现在Makefile中,除以点号“.”开始的第一个规则中的第一个目标
(如果第一个规则存在多个目标)。
在Makefile所在的目录下执行“make”时,将完成对默认终极目标的重建。另外,也可
以通过命令行将一个 Makefile 中的目标指定为此次 make 过程的终极目标,而不是默认
的终极目标,格式为 “makeTARGET_NAME”,如:“make clean”。使用这种方式,我们也可
以同时指定多个多个终极目标。
也可以指定一个 Makefile 中不存在的目标作为终极目标,前提是存在一个对应的隐含规则
能够实现对这个目标的 make。例如:目录“src” 下存在一个.c 的源文件“foo.c”,在 Makefile 中不存在目标“foo”或者次目录下就没有 makefile 文件,为了编译“foo.c”生成可执行的“foo”。
只需要将“foo”作为 make 的参数执行:“make foo”就可以实现编译“foo”的目的。
make 执行时设置一个特殊变量“MAKECMDGOALS”,此变量记录了命令行参数指定的终极目标列表,没有
通过参数指定终极目标时此变量为空。注意:此变量仅限于用在特殊的场合(比如判断),在 Makeifle 中最 好不要对它进行重新定义!例如:
sources = foo.c bar.c
ifneq ($(MAKECMDGOALS),clean)
include $(sources:.c=.d)
endif
makefile终极目标
最新推荐文章于 2024-03-29 12:38:33 发布