#.PHONY:cleanall cleanobj cleandiff
#cleanall:cleandiff cleanobj
# rm program
#cleanobj:
# rm obj.c
# echo 'cleaning........'
#cleandiff:
# rm diff.c
#命令cd和pwd同时执行
exec1:
cd ../
pwd
#先执行命令cd再执行pwd
exec2:
cd ../;pwd
foo := a.o b.o c.o
bar := $(foo:.o=.c)
#替换函数
exec3:
echo '$(bar)'
a := afrom
b := $(subst from,to,$a)
exec4:
@echo '$b'
#取所在目录路径
dirs := $(dir src/foo.c hacks)
exec5:
@echo '$(dirs)'
#取文件名后缀
suf1 := $(suffix a.c a.o)
exec6:
@echo '$(suf1)'
#取前缀
bas = $(basename foo.x a.o)
exec7:
@echo '$(bas)'
#添加后缀
addsux = $(addsuffix .c,foo bar)
exec8:
@echo '$(addsux)'
#添加前缀
addpre = $(addprefix aa,foo bar)
exec9:
@echo '$(addpre)'
#字串连接函数
pjoin = $(join aa, bb cc)
exec10:
@echo '$(pjoin)'
#查找字串函数
findstr = $(findstring ab,dddabf)
exec11:
@echo '$(findstr)'
#过滤函数
sources:=foo.c bar.c baz.s ugh.h
ss=$(filter %.c %.s,$(sources))
exec12:
@echo '$(ss)'
#循环函数
names := a b c d
#表示将names的值依次放进n中,然后以.o的形式输出
files := $(foreach n,$(names),$(n).o)
exec13:
@echo '$(files)'
reverse = $(2)$(1)
foo = $(call reverse,a,b)
exec14:
@echo '$(foo)'
reverse = $(2)$(1)
foo = $(call reverse,a,b)
exec15:
@echo '$(foo)'
#查看变量的类型
aa = $(origin CC)
exec16:
@echo '$(aa)'