在强包含等号上进行替换引用

时间:2014-06-05 11:09:18

标签: string makefile escaping

我正在尝试使用Make substitution reference来修改字符串。问题是该字符串恰好包含一个等于=的符号。

例如:

INPUT = -switch1 -switch2=potato -switch3
OUTPUT = $(INPUT:-switch2=%=-switch2=turnip)

all:
    @echo TEST : $(OUTPUT)

因此,在$(var:a=b)表格中,INPUT为var,-switch2=%a-switch2=turnipb

显然这不起作用,因为=在此上下文中是一个特殊字符,但我不知道如何让它意识到这是字符串a的一部分。
我试过引用,反斜杠,替代转义字符并将-switch2=%放入变量并使用它。一切都无济于事。

我知道我可以使用patsubst,但是这会将第一个非POSIX扩展名添加到文件中,我宁愿不是那个人。

任何建议表示赞赏!

1 个答案:

答案 0 :(得分:1)

您必须使用完整的patsubst功能。替换引用只是patsubst的快捷方式:

OUTPUT = $(patsubst -switch2=%,-switch2=turnip,$(INPUT))