一、make 的退出码
make 命令执行后有三个退出码:
0 —— 表示成功执行。
1 —— 如果make 运行时出现任何错误,其返回1。
2 —— 如果你使用了make 的“-q”选项,并且make 使得一些目标不需要更新,那么返回2。
二、指定Makefile
前面我们说过,GNU make 找寻默认的Makefile 的规则是在当前目录下依次找三个文件——“GNUmakefile”、“makefile”和“Makefile”。其按顺序找这三个文件,一旦找到,就开始读取这个文件并执行。
我们也可以给 make 命令指定一个特殊名字的Makefile。要达到这个功能,我们要使用make 的“-f”或是“--file”参数(“--makefile”参数也行)。例如,我们有个makefile 的名字是“hchen.mk”,那么,我们可以这样来让make 来执行这个文件:
make –f hchen.mk
三、指定目标
有一个 make 的环境变量叫“MAKECMDGOALS”,这个变量中会存放你所指定的终极目标的列表,如果在命令行上,没有指定目标,那么,这个变量是空值。这个变量可以让你使用在一些比较特殊的情形下。如例:
sources = foo.c bar.c
ifneq ( $(MAKECMDGOALS),clean)
include $(sources:.c=.d)
endif
基于上面的这个例子,只要我们输入的命令不是“make clean”,那么makefile 会自动包含“foo.d”和“bar.d”这两个makefile。
“all”
这个伪目标是所有目标的目标,其功能一般是编译所有的目标。
“clean”
这个伪目标功能是删除所有被make 创建的文件。
“install”
这个伪目标功能是安装已编译好的程序,其实就是把目标执行文件拷贝到指定的目标中去。
“print”
这个伪目标的功能是例出改变过的源文件。
“tar”
这个伪目标功能是把源程序打包备份。也就是一个tar 文件。
“dist”
这个伪目标功能是创建一个压缩文件,一般是把tar 文件压成Z 文件。或是gz 文件。
“TAGS”
这个伪目标功能是更新所有的目标,以备完整地重编译使用。
“check”和“test”
这两个伪目标一般用来测试makefile 的流程。
阅读(770) | 评论(0) | 转发(0) |