コマンドの依存性や隠れた依存性のチェックには、特別なターゲット .KEEP_STATE を使用します。
.KEEP_STATE: ターゲットが有効な場合、make はステータスファイルと照合して、ターゲットを構築するためのコマンドをチェックします。最後に make を実行してからコマンドに変更があった場合、make はターゲットを構築し直します。
.KEEP_STATE: ターゲットが有効な場合、make は cpp(1) およびそのほかのコンパイルプロセッサからレポートを読み取って、#include ファイルなどの「隠れた」ファイルを探します。これらのファイルに関してターゲットが古い場合、make はターゲットを構築し直します。