私のMakefileでは、特定のファイルが存在するかどうかを確認して何かを行い、再度確認したいと考えています。 gnu makeを使うと、私はできません。ここでは簡単な例です:makeでワイルドカードを再評価する
$(info $(wildcard OK))
$(shell touch OK)
$(info $(wildcard OK))
私は一度make
を実行した場合、私は2つの空の行を参照してください。 make
を再度実行すると、両方の行がOK
になります。
私は考えましたが、おそらく$(eval)
は私に最新の答えを聞かせてくれます。 make
が、それは他のコマンドを評価する開始する前に、すべてのワイルドカードの計算を予測するいくつかの方法を持っているかのようにああ、
$(eval $$(info $$(wildcard OK)))
は、同じ答えを生成します。
Android NDKのチェックを満たすには、これを必要とします:私はprebuilt shared libraryをオンザフライで生成する必要があります。
私の目標はAndroid NDKの[prebuilt_shared_library.mk](https://android.googlesource.com/platform/ndk/+/master/build/core/prebuilt-shared-library.mk)スクリプトを利用することです私は自分自身を構築しなければならない図書館です。 NDKフレームワークは$(ワイルドカード)関数を使用してライブラリファイルが存在することを確認しますが、自分でビルドします。 –
キャッシュはディレクトリごとです。 '$(ワイルドカード)'関数がこのディレクトリに対して最初に評価されるときに作成されます。これはおそらく私が回避策を生み出すためには十分です。 –
私はあなたの例とは正反対のことを行います:まず、キャッシュを使わずに '$(shell)'を使います。私はNDKにワイルドカードを使用させてもらいますが、私のロジックはポスト・トゥルーを準備する機会を与えます。 –