我想在执行配方时生成一个文件,该文件在文件的单独行中列出变量的每个单词。这是规则的开始。$(OBJ_LIST) 中的每个单词都应该放入 make_temp。注意:$(OBJ_LIST) 是 .o 文件的列表。注意:使用 > 表示 .RECIPEPREFIX。
$(MDIR)zzz.exe: $(OBJ_LIST)
> if exist make_temp del make_temp
如果我把这 3 行放在下面,那么文件将包含文件中的前 3 个单词。
> echo $(word 1,$+) >> make_temp
> echo $(word 2,$+) >> make_temp
> echo $(word 3,$+) >> make_temp
我曾尝试使用 foreach 和 eval 来做到这一点。
> $(foreach obj,$+,$(eval > echo $(obj) >> make_temp))
这会出现错误 makefile.min:473: * recipe 在第一个目标之前开始。停止。这与我将带有 > 的行放在前面没有规则起始语法的行上时会出现相同的错误。因此,这似乎不会继续我想要做的当前食谱列表。
如何使 foreach 和 eval 继续当前的配方列表和/或使用替代方法生成文件列表。