makefile终极目标

    所谓终极目标就是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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值