目录
1、变量"VPATH",一般搜索。
2、关键字"vpath",选择性搜索。
3、库文件的搜索规则
4、强制目标
///////////////////////////////////////////////////////////////////////////////////////////////////////
1、VPATH用于指定搜索路径,用"空格"或者":"进行分隔。如:
VPATH = src:../headers
在搜索当前目录后搜索指定的两个路径:src和../headers
////////////////////////////////////////////////////////////////////////////////////////////////////////
2、vpath %.h ../headers
其含义是:Makefile 中出现的.h 文件;如果不能在当前目录下找到,则到目录
“../headers ”下寻找。
////////////////////////////////////////////////////////////////////////////////////////////////////////
3、库文件的搜索规则
(1) 当前目录下搜索
(2)在VPATH或者vpath下搜索
(3)在系统库文件存在的默认目录,顺序是:“/lib ”、“/usr/lib ”和“PREFIX/lib ”(在
Linux 系统中为“/usr/local/lib”,其他的系统可能不同)。
////////////////////////////////////////////////////////////////////////////////////////////////////////
4、强制目标
clean: FORCE
rm $(objects)
FORCE:
目标不是一个文件名,在执行规则时总是被认为是最新的,因此作为依赖的规则定义的命令总是被执行。
////////////////////////////////////////////////////////////////////////////////////////////////////////
5、空目标
空目标的依赖文件被改变以后,空目标所在的规则命令就会被执行:
print: foo.c bar.c
lpr -p $?
touch print
命令“lpr –p $? ” 打印这个被修改的文件
////////////////////////////////////////////////////////////////////////////////////////////////////////