将路径字符串列表解析为 make 中不同路径的更好方法?

Better way to resolve a list of path strings to a different path in make?

我正在使用 Atmel 自动生成的 make 文件。链接时,它使用变量 $(OBJS_AS_ARGS)。其中:

OBJS_AS_ARGS +=  \
"hal/src/hal_io.o" \
"hpl/systick/hpl_systick.o" \
"samd21a/gcc/gcc/startup_samd21.o" \
"hal/utils/src/utils_syscalls.o" \
"hal/src/hal_delay.o" \
"hpl/pm/hpl_pm.o" \
"hpl/core/hpl_init.o" \
"samd21a/gcc/system_samd21.o" \
"hpl/core/hpl_core_m0plus_base.o" \

我的目标是将每个字符串的路径更改为相对于父字符串的路径,即:

OBJS_AS_ARGS +=  \  
"../hal/src/hal_io.o" \
"../hpl/systick/hpl_systick.o" \

我在前面加上 ../ 我在想一些 vpath 方法来做到这一点。或者可能是字符串连接。但是,该变量是一个字符串列表。我最终将 ../ 添加到每个字符串。有没有办法设置一个可以工作的 variable/vpath 而不是我修改每个字符串?谢谢。

我不清楚你到底想做什么,但是通过你的例子,这是否符合你的要求?有关 patsubst function.

的更多信息
NEW_ARGS := $(patsubst "%","../%",$(OBJS_AS_ARGS))