迭代Makefile中的列表并获取值和索引

时间:2012-03-12 16:42:19

标签: makefile

在GNU Makefile中,您有一个项目列表:

OBJECTS = foo bar baz

您希望迭代这些项目,并且您对索引和每个项目的值感兴趣(foo => 1,bar => 2,baz => 3)。在Makefile中执行此操作的惯用方法是什么?

1 个答案:

答案 0 :(得分:6)

有几种方法可以做到这一点,它们都不是非常干净(这是一个强烈的提示,你试图做一些不适合制作的东西),你的特殊情况可能需要特殊处理,但是在这里:

OBJECTS = foo bar baz

NLIST = $(shell for x in {1..$(words $(OBJECTS))}; do echo $$x; done)

LIST = $(foreach x,$(NLIST), do_something_with_$(x)_and_$(word $(x),$(OBJECTS)))