GNU make は GNU awk と相性が良い2007年09月28日 14時20分46秒

最近は GNU make と GNU awk を組み合わせて使うことが多い。gmake から gawk を起動して依存関係を動的に更新しつつ、gmake で更新を行なう。

GNU make には include 拡張があり、もし include されるファイルを作成する規則が make ファイル内にあると、include されるファイルを更新してから、最終的な更新順序を決める。そのため、make depend に当たるものを自動的に行なえるようにもできる。

この書き方を発展させて、対象となるファイルを make ファイルから完全に追い出して、むしろ設定ファイルの様な感じで gmake から扱う。こうすることで、設定ファイルを gmake が読み込み、自動的に make ファイルを更新するようになる。これが、拡張性が高く、また柔軟性に富む。

この様な make ファイルの書き方をしている人は、ただの一人も見たこともないのが不思議なぐらい便利だ。

awk は GNU awk でなくても良いのだが、各種プラットホームにより異なる awk で動作させるよりも gawk を入れたほうが早い。また、gawk には便利な拡張も多いので、どうせならと使っている。それを言ったら別に awk でなくても構わないのだが、大き過ぎず、小さ過ぎずに大量のプロセスを生成しないでテキストの処理をするのに丁度いい大きさなのだ。別に、perl や ruby などでも一向も構わない。