すべてのソース ファイル (c/cpp) の前提条件ルールを追加するにはどうすればよいですか? メイクファイル全体を自分で作成した場合は簡単ですが、ほとんどのものを非表示にするAndroidビルドシステムを使用しています.
やりたい理由: いくつかの c/cpp ファイルに含まれるヘッダー ファイルを生成するルールを追加しました。依存関係が既に生成されている限り、うまく機能します。ただし、クリーンなプロジェクトでは、コンパイル前に使用可能な依存関係情報がありません。その結果、特定の cpp ファイルがまだ存在しないヘッダー ファイルに依存していることがわからないため、make はクリーンなプロジェクトのルールを実行しません。 . そのため、何らかのルールを追加して、コンパイルが行われる前に前提条件ルールが確実に実行されるようにする必要があります。
これまでのところ、私はこれをしました:
include $(CLEAR_VARS)
.PHONY: ForceRule
MyHeader.h: ForceRule
ForceRule: CreateHeader.sh
$(shell CreateHeader.sh MyHeader.h)
# below is standard android way to build shared lib from cpp files:
LOCAL_SRC_FILES: File1.cpp File2.cpp
LOCAL_PATH := $(CURDIR)
include $(BUILD_SHARED_LIBRARY)