Makefile包含了一组规则用以生成应用程序。注意,是一组哦。
一条规则由三部分组成:target、target的prerequisites、commands,结构应该如下:
Target::prereq1 prereq2
Commands
来个例子:
fuck.o:fuck.c fuck.h
gcc –c fuck.c
fuck.o就是target,fuck.c和fuck.h就是prequisites。Command通常就在接下来的几行,而且在命令行之前要打个Tab.(为什么要打这个)
当make执行一个规则,它就开始寻找那些target和prerequisites。它找啊找,找啊找。找到一个prerequisites,发现prerequisites还和另外一条规则相关联(太贱了)。没办法,只能先更新另外一条规则的说。更新完了,prerequisites搞定了,接着搞target,因为刚才那个prerequisites更新过了,所以这个target也要重新搞一遍。