私は、現在私がクリーンアップして少し単純化しようとしている(非常に畳み込まれた)ビルドシステムを持っています。これは、あらゆる種類の相互依存する環境変数を設定し、次にmake
を開始するPerlスクリプトを中心にしています。 make
が呼び出される対象は、Perlスクリプトに渡される引数、その他の環境変数、および現在の月面に依存します。偽のターゲットをターゲットエイリアスとして使用する
メイクファイルにはあまりにも多くの偽のターゲットが含まれているため、必要がなくてもターゲットが常に再構築されます。これは巨大な時間の浪費です。ターゲットは、(直接的または間接的に)1トンの偽のターゲットに依存し、偽のターゲットは常に「古くなった」とみなされるため、不必要に多くのものが更新されます。
なぜ多くの偽のターゲットがあるのかという理由は、私たちのmakefileは決して直接呼び出されることはありませんが、以前に言及したPerlスクリプトを通して、そして偽のターゲットを持つことによって、Perlスクリプトは正確なパス名ユーザーが更新したい特定のターゲットの
私の意図は、ターゲットがもう偽のターゲットに依存しないようにすることです。私はすべての偽のターゲットをコンクリートの非偽のターゲットに変換して、各ターゲットのツリーに依存しないツリーのみが含まれるようにしたい。 Perlスクリプトで個々のターゲットに簡単にアクセスできるようにするため、それぞれのターゲットに対して具体的なターゲットを言及するだけでビルドレシピにエコーを表示する以外は何もしない新しいターゲットを追加します。
私はmake
にあまり精通していないので、これが意図したとおりに動作するのか、意図しない結果が生じるのか尋ねたいと思います。
ああ、私はレシピなしで目標を持つことができなかったことを知りませんでした。 :) – antred