Makefile:从完整路径字符串中提取模式

时间:2014-12-02 03:39:20

标签: makefile pattern-matching

在Makefile中,我可以通过$(CURDIR)获取完整路径字符串。结果就像/home/jones/prj/platform/Application_UBUNTU/build_os。如何从字符串中提取UBUNTU

我使用subst将'/'替换为空格。

DIR = $(subst /, " ", $(CURDIR))

我得到home jones prj platform Application_UBUNTU build_os的结果。

然后我尝试使用filter命令,但我不能使用%或通配符来匹配Application_UBUNTU。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用我的回答here中的penultimateword宏。

penultimateword = $(wordlist $(words $1),$(words $1), x $1)

BUILD_OS=$(call penultimateword,$(subst /, ,$(CURDIR)))
BUILD_OS=$(subst _, ,$(BUILD_OS))
BUILD_OS=$(word 2,$(BUILD_OS))

这显然对路径/ etc中的额外下划线很敏感。