一、基本用法
Makefile中执行shell命令需要在命令前面加上@
,例如打印一个变量的值
KERNEL = $(shell uname -r)
INC = /usr/src/kernels/$(KERNEL)/
print:
@echo $(KERNEL)
@echo $(INC)
执行make print
会有得到理想的输出:
2.6.32-754.6.3.el6.x86_64
/usr/src/kernels/2.6.32-754.6.3.el6.x86_64/
如果不加@
符号最后的结果是:
echo 2.6.32-754.6.3.el6.x86_64
2.6.32-754.6.3.el6.x86_64
echo /usr/src/kernels/2.6.32-754.6.3.el6.x86_64/
/usr/src/kernels/2.6.32-754.6.3.el6.x86_64/
可以看到多了几行,分别把每个echo命令也打印出来了。
二、注意事项
2.1 多行命令
当shell脚本中存在多行命令时,换行时要加上\
,例如:
@./configure --prefix=/usr/lib \
aaa=1 bbb=2
2.2 把shell命令的结果赋值给Makefile变量
把shell命令的值赋值需要加上shell
关键字,如:
PWD = @(shell pwd)
此处评论已关闭