patsubst和dir用法

时间:2012-03-12 12:20:59

标签: makefile gnu-make

我想弄清楚.mk文件中的以下两行是什么意思

包括$(ROOTDIRECT)/ target / $(MYSUBDIR)/defs.mk
包括$(ROOTDIRECT)/ target / $(dir $(patsubst%/,%,$(MYSUBDIR)))/ defs.mk

为清楚起见,让ROOTDIRECT为“/ home / me”,MYSUBDIR为“platform” 我猜的第一行是直截了当的,包括“/home/me/target/platform/defs.mk”

我不理解的第二行,我对环境的猜测是它包含“/home/me/target/defs.mk”
我是对还是错,有人可以帮我理解第二行

1 个答案:

答案 0 :(得分:6)

$(patsubst %/,%,$(MYSUBDIR))%/替换与%模式匹配的任何内容,其中%可以是任何内容。

换句话说,它会删除/的结尾$(MYSUBDIR)

参见GNU制作手册8.2 Functions for String Substitution and Analysis