还有一个在“嵌套执行”中比较有用的参数,“-w”或是“--print-directory”会在make 的过程中输出一些信息,让你看到目
前的工作目录。比如,如果我们的下级make 目录是“/home/hchen/gnu/make”,如果我们使用“make -w”来执行,
那么当进入该目录时,我们会看到:
make: Entering directory `/home/hchen/gnu/make'.
而在完成下层make 后离开目录时,我们会看到:
make: Leaving directory `/home/hchen/gnu/make'
当你使用“-C”参数来指定make 下层Makefile 时,“-w”会被自动打开的。如果参数中有“-s”(“--slient”)或是
“--no-print-directory”,那么,“-w”总是失效的。
有一个 make 的环境变量叫“MAKECMDGOALS”,这个变量中会存放你所指定的终极目标的列表,如果在命令行上,你没有指定目标,那么,这个变量是空值。
sources = foo.c bar.c
ifneq ( $(MAKECMDGOALS),clean)
include $(sources:.c=.d)
endif
基于上面的这个例子,只要我们输入的命令不是“make clean”,那么makefile 会自动包含“foo.d”和“bar.d”这两个makefile。
阅读(1016) | 评论(0) | 转发(0) |