レシピの実行時に、ファイルの個別の行にある変数のすべての単語をリストするファイルを生成したいと思います。これがルールの始まりです。$(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が発生します。*レシピは最初のターゲットの前に開始されます。止まる。これは、前にルール開始構文がない行に>を含む行を配置したときに発生するエラーと同じです。ですから、これは私がやりたいことである現在のレシピリストを継続しないように思われます。
foreachとevalに現在のレシピリストを継続させたり、別の方法を使用してファイルのリストを生成したりするにはどうすればよいですか。