いくつかのサブフォルダーで make を呼び出すトップレベルのメイクファイルを取得しようとしています。最上位にはいくつかのターゲットがあり、重要なビットを以下に示します。
MAKE_DIRS := $(dir $(wildcard apps/**/Makefile))
.PHONY: clean_apps apps $(MAKE_DIRS)
clean_apps: TARGET_INFO := clean
apps clean_aps: $(MAKE_DIRS)
$(MAKE_DIRS):
$(MAKE) -C $@ $(TARGET_INFO)
ターゲットを個別に呼び出すと、これは正常に機能します。
make apps; make clean_apps
ただし、同じコマンドラインで次のように呼び出すと:
make clean_apps apps
次に、アプリのターゲットは何も言わないだけです。呼び出し間で変更されていないディレクトリへの依存関係と関係があると思いますが、 .PHONY コマンドはその問題を回避すると思いました...
これに対処するためのより良い方法があるかどうかを知ってうれしいです。
ありがとう、ボブ