誰かがここで違いを明らかにできますか:
$(tsdir)/proj
には前提条件$(tsdir)/proja
とがあり$(tsdir)/projb
ます。ビルドするたびにproja
とprojb
の makefile が呼び出されるようにしproj
ます。proja
またはが古くて更新されている場合projb
、そのメイクファイルはそれぞれ$(tsdir)/proja
およびに影響し$(tsdir)/projb
ます。これらのファイルが よりも新しい場合は$(tsdir)/proj
、proj を再構築します。
FORCE
以下のコードとターゲットを使用して、これを機能させます。ターゲットを使用するように切り替えようとする.PHONY
と、これは機能しません。.PHONY
それがおそらくこれを行うためのより「正しい」方法であるため、私は好みます。しかし、それは機能せず、理由がわかりません。proja
とprojb
の makefile は.PHONY
ターゲットで呼び出されませんが、proj
再構築されます。
GNU make 3.81 を使用しています。
ありがとうナチュム
$(tsdir)/proj: $(tsdir)/proja $(tsdir)/projb
...
$(tsdir)/%: FORCE
make -C $(prereqdir)/$*
FORCE:
#or
$(tsdir)/proj: $(tsdir)/proja $(tsdir)/projb
...
.PHONY: $(addprefix $(tsdir)/, $(projects))
$(tsdir)/%:
make -C $(prereqdir)/$*