穿插Makefile变量中的项目

时间:2018-06-10 13:46:22

标签: makefile gnu-make

我使用Makefile生成一个C头,并希望做这样的事情:

printf '{%s, %s}\n' $(ARRAY1) $(ARRAY2)

除了散布ARRAY1ARRAY2中的值。

以下是一个例子:

ARRAY1 := a b c d
ARRAY2 := e f g h

期望的输出:

{a, e}
{b, f}
{c, g}
{d, h}

仅限GNU的解决方案很好。

2 个答案:

答案 0 :(得分:0)

我使用join和替换引用的组合解决了这个问题(虽然可以使用patsubst代替):

printf '{%s}\n' $(join $(ARRAY1),$(ARRAY2:%=,%))

它产生足够接近我想要的东西,只是在逗号后面缺少空格。

答案 1 :(得分:0)

看看gmtt - The GNUmake table toolkit。 它有一个"join tables"函数可以做你想要的,假设你使用gmtt表(除了列数作为前导元素的列表)。