Makefile

2013.08.25/2014.06.23发布于笔记暂无评论#makefile#总结

总结GNU Make的一些基础知识和技巧,以下内容均基于Ubuntu 14.04 x86_64平台的GNU Make 3.81。

变量

变量类型

make支持两种风格的变量定义方式:

  1. 递归扩展变量(recursively expanded variables)
    • 使用=或define指令定义
    • CFLAGS = $(CFLAGS) -O会导致无限递归
    • 变量每次被展开的时候,所使用的函数都会重新被执行,会降低make的效率,更严重的是,wildcard等函数会返回预料之外的结果。
  2. 简单扩展变量(simply expanded varialbes)
    • 使用:=::=定义
    • 在变量定义的时候展开一次
继续阅读...