JAVA_HOME := java home
export myvar := MYAPP
new := mynewword
test :
@echo "JAVA_HOME => $(JAVA_HOME)"
@echo "make another file ..."
@$(MAKE) -f makefile.2
@$(MAKE) -f makefile.2 new:=$(new)
//编译运行
$ make
JAVA_HOME => java home
make another file ...
make[1]: Entering directory '/mnt/hgfs/VMShare/hello7688/ditai/make/7'
JAVA_HOME =>
myvar => MYAPP
new =>
make[1]: Leaving directory '/mnt/hgfs/VMShare/hello7688/ditai/make/7'
make[1]: Entering directory '/mnt/hgfs/VMShare/hello7688/ditai/make/7'
JAVA_HOME =>
myvar => MYAPP
new => mynewword
make[1]: Leaving directory '/mnt/hgfs/VMShare/hello7688/ditai/make/7'
5、目标变量(局部变量)
作用域只在指定目标及连带规则中
target : name<assignment> value
target : override name<assignment> value
var := hello
test : var := test-hello
test :
@echo "test:"
@echo "var => $(var)"
6、模式变量
模式变量是目标变量的扩展
作用域只在符合模式的目标及连带规则中
pattern : name<assignment> value
pattern : name<assignment> value
new := hell
%e : override := test-new
rule :
@echo "rule:"
@echo "new = $(new)"
7、编程实验
var := hello-var
new := new
test : var := nani?
%e : override new := new-new
test :
@echo "test:"
@echo "var => $(var)"
@echo "new => $(new)"
another :
@echo "another:"
@echo "var => $(var)"
@echo "new => $(new)"
rule :
@echo "rule:"
@echo "var => $(var)"
@echo "new => $(new)"
//编译运行
$ make test another rule
test:
var => nani?
new => new
another:
var => hello-var
new => new
rule:
var => hello-var
new => new-new