私はGNUAutotoolsを使用していて、異なるメソッドで別のmakefileをインクルードできることを確認しましたが、結果やAutomakeがインクルードを管理する方法に考えられる違いはどこにも見つかりませんでした。 、もしあれば。
私が見たさまざまな方法はとを使用include $(path_to_file)
し-include $(path_to file)
ていますが、ファイルを含めるときにハイフンは何か違いがありますか?
ハイフンを前に付けると、包含がオプションになります。
インクルードされたファイル(例Make.include
)が存在せず、を使用しているinclude Make.include
場合、ビルドは失敗します。ただし、ビルドを使用している場合-include Make.include
は成功します(ただし、もちろんファイルは含まれません)。
これを使用して、ユーザーが実際のMakefileに触れることなくビルドを変更できるようにします(システムに合わせてビルドを調整する必要があり、VCSを使用して親Makefileへの変更を追跡している場合:この方法で追跡Makefileは「ダーティ」になりません)。
ただし、これはautotoolsに固有のものではなくmake
、一般的に適用されます。
autotoolを使用するときは、automake
インクルードされたファイルを介して気の利いたものを追跡しないことに注意してください。