命令回显:
当规则命令以@开头,则命令不会回显。例如:
@echo "hello,world"
会输出显示:
hello,world
而
echo "hello,world"
会输出显示:
echo "hello,world"
hello,world
命令执行:
command;command;....
或
command;\
command;\
....
表示的是一条shell命令
command
command
....
表示的是多条shell命令
命令执行的错误:
如果命令以"-"开头,则make忽略shell 命令是否返回错误。
如果规则命令返回错误,那会停止执行当前规则的其他命令。
make的递归执行:
$(MAKE) -C subdir
MAKE变量,MAKEFLAGS变量,MAKELEVEL变量
通过
export将变量传递到子make过程,通过
unexport静止将变量传递到子make过程。
export和unexport后面的变量或函数会
立即被展开。
命令包:
define 变量名
命令1
命令2
....
endef
通过$(变量名)来引用命令包。如果命令包之前有任何前缀字符,都会作为命令包里每个命令的前缀。
例如:
@$(变量名) 则展开后如下:
@命令1
@命令2
空命令:
target :;