clairvyの日記

思ったこと,調べたことを書きます

Makefile を書く訳

何か仕事的なことを実行するときにシェルスクリプト的なものを書くときがあります.

スクリプトのサイズ(処理する機能,処理対象)によって,
シェル → スクリプティング言語 → 速いの.みたいな描き直しが発生したりしますが.

シェル → スクリプティング言語の途中に,Makefile を使うことがあります.
まあ,Makefile なんで複雑なこと書けないし,$ (ダラー)をエスケープとかしなきゃいけないけど
2つ好きなところがあります.

  • ターゲットを補完できる
  • 依存関係を表現できる
ターゲットを補完できる

基本Zshell 使っているので,補完したい.
仕組み作ってもいいけど.まあ簡単にやりたい.
そんな感じで,Makefile のtarget を使ってます.

依存関係を表現できる

処理する対象がある程度大きいと処理を分割しよっかなと思ったりします.
一時ファイルとか作ってやるとかです.真面目に最適化するのもいいけど.
まだそれが今後も必要な処理かどうかが,わかっていないとか.

そんなときに,適当に処理を分割して,pipe & filter の処理をわざと区切って
task に落としたりします.

target: bbb

bbb: aaa
    $(scriptB) aaa > bbb

aaa:
    $(scriptA) > aaa

みたいな.

オプションとか真面目に処理するなら,何か言語でやったが速いかもなー.
オプションも簡単に書けて,自動的に Zshell で補完できるのなにかないですかねー.