读GNU官网上的Make Manual,还只是读到1-2 chapter。相比之前的认知,有了一些新的认识,留此记录。
make工具
make是一个工具,其核心是根据文件的依赖关系,以及用户定义的命令过程,来生成目标文件。make工具支持一些变量/语法和内置函数以及shell命令。
用户可以把这些写在Makefile中,来定义make工具工作的行为和过程。
Rule
一条make file rule是由如何的部分组成的:
target … : prerequisites …
recipe
…
…
我将其比喻为:
菜:材料
由材料做成菜的做法
Make工具默认会将找到的第一个菜,作为其default goal。这个菜,可能会依赖于其他菜。所以我们要把我们需要生成的可执行文件作为第一个菜哦~
但是有的菜是没有材料的,并且也不被default goal所依赖,这种菜叫伪菜。伪菜的用途就是为了让make调用“做法”中所包含的命令,干一些辅助的事情。
我们在命令行敲入”make”,只会生成default goal。如果要生成伪菜,就必须显式的敲入”make 伪菜”。
$符号
$符号在makefile中,是用来做变量引用用的,例如$(objects)就是代表objects变量的值。如果要引用$符号本身,需要使用$$。
通配符
* ? ~ […]这些通配符,都可以被make工具解析并扩展。
待续。。。
参考文献:http://www.gnu.org/software/make/manual/make.html#Include