在GNU Makefile中,您有一个项目列表:
OBJECTS = foo bar baz
您希望迭代这些项目,并且您对索引和每个项目的值感兴趣(foo => 1,bar => 2,baz => 3)。在Makefile中执行此操作的惯用方法是什么?
答案 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)))