プログラミングユーティリティ

パターンマッチングの規則

ユーザー定義の暗黙の規則を簡単にプロジェクトに追加する方法を簡素化するために、パターンマッチングの規則が追加されています。

tp%ts : dp%ds
      rule

この形式のターゲットエントリは、関連する依存ファイルからターゲットを構築するパターンマッチングの規則を定義します。tp はターゲット名の接頭辞、ts はその接尾辞です。dp は依存ファイル名の接頭辞、ds はその接尾辞です。% 記号は、ターゲットと依存ファイルの名前の両方に共通する、0 文字または 1 文字以上の連続した文字列を示すワイルドカードです。たとえば、以下のターゲットエントリは、接尾辞が .ms-ms というマクロパッケージを使用するファイルから接尾辞が .trtroff 出力ファイルを構築するパターンマッチングの規則を定義します。

%.tr: %.ms
		troff -t -ms $< > $@

メークファイルにこのエントリが含まれている場合に、以下のコマンドを実行します。

make doc.tr

結果は以下のようになります。

$ make doc.tr 
troff -t -ms doc.ms > doc.tr

doc2.ms というファイルがある場合に同じエントリを使用して、以下のコマンドを実行します。

make doc2.tr

結果は以下のようになります。

$ make doc2.tr 
troff -t -ms doc2.ms > doc2.tr

明示的なターゲットエントリは、ターゲットに適用されるパターンマッチングの規則よりも優先されます。パターンマッチングの規則は、通常は暗黙の規則よりも優先されます。例外的に、パターンマッチングの規則のターゲットエントリにおいて、規則の部分にコマンドが含まれていない場合は、make はターゲットを構築するための規則の検索を続行し、その依存関係として (依存関係) パターンに一致したファイルを使用します。