ifndef t
t:=default-main
endif
show:
@echo "t="$(t)
# 输入:make show -f Makefile
# 输出:t=default-main
# 输入:make show -f Makefile t=main
# 输出:t=main
2、Makefile中的循环
makefile中支持循环的,并且循环有两种:
GNU平台下Makefile有默认的foreach循环
其他平台可以调用shell脚本的循环
调用shell指令可以通过$(shell 指令)或者指令的形式都可以
下面举例分别利用GNU和shell的循环创建文件和文件夹
target:=a b c d
filename=$(foreach v, $(target), $v.txt)
show:
@echo $(target)
@echo $(foreach v, $(target), $v)
# $(shell touch $(target))
# touch $(filename)
# mkdir $(foreach v, $(target), $v-txt)
for v in $(target);\
do touch $$v.txt;\
done
$(shell for v in $(target); do mkdir $$v-txt;done)
clean:
${RM} -rf $(target) $(filename) *txt