SSブログ
[PR]本のベストセラー

MAKEの達人―UNIX版MAKE Microsoft版NMAKE Borland版MAKE対応 [プログラミング]

昔なつかしいMAKEユーティリティの本。MAKEにはターゲットを作成するための依存ファイルの関係が書かれており、作成されるファイルの日付関係を比較しながら、必要なファイルがコンパイルされ、リンクされるという便利なユーティリティ。このことのMicrosogtのMAKEは「NMAKEコマンド」で、依存ファイルから自動でインクルードファイルを検出し、依存関係に追加するとう機能がなかったらしく、サンプルでそのためのdependsユーティリティがつくられていた。

この本ではMicrosoft、Borland、UNIXのそれぞれのMAKEについて解説。
MAKEはメイクファイルとよばれるファイルに記述された指示に従って動作する。
MAKEの構成要素
・文法 ターゲットと依存関係は1桁目から、コマンドは字下げする、行が複数になるときはバックスラッシュ(DOSでは¥でつなぐ、コメントは#で始める)など
・ターゲット 「:」の左がターゲット、右側が依存ファイル、例 prog.exe:prog1.obj prog2.obj
 MAKEは指示がなければ最初のターゲットを作成する。
・依存ファイル 直接依存ファイル(ターゲットを作るのに必要)、関節依存ファイル(直接依存ファイルを作るのに必要)、MAKEはメイクファイルを読み取って関節依存ファイルから作成する。

MAKEは引数がなければmakefileというファイル名の最初のターゲットを作成しようとする。
コマンドオプションでfをつけると他のファイル名を指定できる。
その他のコマンドオプション
n コマンド行を実行せずに、メイクファイルを処理する。
p マクロとターゲット情報を表示

メイクファイルではマクロを指定できる
CC=cl と指定すると$(CC)=clとなる。メイクファイルをコンパイラで書き直すときなど
CC=tcc とすれば他は書き直さなくてもBorland版になるなど便利な使い方ができる。

マクロにはメイクファイルの最初に指定されるユーザ定義マクロと、MAKEユーティリティがあらかじめ定義している内部マクロがある。内部マクロはOSごとに違う。またOSの環境変数も利用できる。
どれが優先されて使われるかは、OSによって違う。

内部疑似ターゲット
「.」+大文字で表記され、名前のあとに「:」がついている。
例 .SUFFIXES:.inc .tex
MAKEが扱い方を認識できている拡張子リストに 拡張子.incと.texを追加する。

推論規則と非明示コマンド

推論規則・・MAKEが特定の拡張子を持った依存ファイルから特定の拡張子を持つターゲットを生成できるようにするための生成規則を提供する。

.c.obj:
$(CC) $(CFLAGS) $*.c ($*は拡張子を除くターゲット名)
すべての拡張子.cファイルが拡張子.objにこのコマンドで生成される。
このときのコマンドを非明示コマンドという。

MAKEコマンドは再帰的に呼び出せるので、メイクファイルの中でMAKEをしてもよい。
ディレクトリも移動できる。

MAKEファイルが長い場合は一部を他のファイルに書いて、メイクファイルの実行中に読み込む方法がある。
またコマンドラインからのコマンドを一時ファイルに保存して、それを使う方法を解説(DOSのみ)

OSごとの詳細な解説と、それぞれの違い解説。


MAKEの達人―UNIX版MAKE Microsoft版NMAKE Borland版MAKE対応

MAKEの達人―UNIX版MAKE Microsoft版NMAKE Borland版MAKE対応

  • 作者: クロスビー・L. トンド
  • 出版社/メーカー: トッパン
  • 発売日: 1992/11
  • メディア: 単行本



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

[PR]Kindle ストア ベストセラー

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。