我正在尝试使用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=turnip
为b
。
显然这不起作用,因为=
在此上下文中是一个特殊字符,但我不知道如何让它意识到这是字符串a
的一部分。
我试过引用,反斜杠,替代转义字符并将-switch2=%
放入变量并使用它。一切都无济于事。
我知道我可以使用patsubst,但是这会将第一个非POSIX扩展名添加到文件中,我宁愿不是那个人。
任何建议表示赞赏!
答案 0 :(得分:1)
您必须使用完整的patsubst
功能。替换引用只是patsubst
的快捷方式:
OUTPUT = $(patsubst -switch2=%,-switch2=turnip,$(INPUT))