Makefile 迭代生成文件中的列表并获取值和索引

Makefile 迭代生成文件中的列表并获取值和索引,makefile,Makefile,在GNU Makefile中,您有一个项目列表: OBJECTS = foo bar baz 您希望迭代这些项,并且对每个项的索引和值都感兴趣(foo=>1,bar=>2,baz=>3)。在Makefile中这样做的惯用方法是什么?有几种方法可以做到这一点,它们都不是很干净(这是一个强烈的暗示,表明您正在尝试做一些不太适合制作的事情),您的特定情况可能需要特殊处理,但下面是: OBJECTS = foo bar baz NLIST = $(shell for x in {1..$(words

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

OBJECTS = foo bar baz

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

有几种方法可以做到这一点,它们都不是很干净(这是一个强烈的暗示,表明您正在尝试做一些不太适合制作的事情),您的特定情况可能需要特殊处理,但下面是:

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)))