make

なぜちょっとした作業をやるときにMakefileを書いてしまうのか

はじめに なぜちょっとした作業をやる時にMakefileを書きたくなってしまうのかということについて頭を整理してみることにした。 ちょっとした作業? その前にちょっとした作業とは何かということについて触れることにする。ちょっとした作業というのはぱっと…

手触りの良いscript -- argparseとMakefileとiteratorの妙

手触りの良いscriptというものについて最近考えている。 ここでの手触りの良さとは何かというと粒度の自由さとアクセス性の良さに関するもの。別の言い方をするなら好きな形で扱え融通が効くようなもののこと。融通が効くというのはどういうことかと言えば、…

なぜmakeのeval,call,defineが欲しくなってしまうのか

なぜmakeのeval,call,defineが欲しくなってしまうのかについてぼーっと考えたりしてた(個人的な興味として、goのgithub.com/magefile/mageでmakeを置き換えられないかな−やっぱり無理かもみたいなものを考える上でmakeについてもう少しまじめに考える必要が…

makefileのforeachのハマりどころ

タスクランナーとしてのmakeのN回目。あんまり深追いしたくはないという気持ちもありつつ。 以前書いたようにmakefile中ではbashの関数などの定義ができない。そんなわけでdefineとcallを使う。これはこれで便利。ただforeachまで使おうとするとちょっとハマ…

Makefileと並行taskと生成されたtaskの実行の悩み

はじめに make に -j オプションを渡してあげると、良い感じにmakeが並行実行してくれる。 Makefile default: do01 do02 do03 do01: @echo start 01 sleep 1 @echo end 01 do02: @echo start 02 sleep 1 @echo end 02 do03: @echo start 03 sleep 1 @echo en…

makefile中でbashなどの関数が使えないのでdefineとcallで代用する

makefile中でbashの関数などを使うことができない(プロセス置換も使えないのだけれどこれはまだ代用品が見つかっていない)。 これの代用品としてcallとdefineを使う。 bashの場合 例えば以下のようなecho3という関数経由でxを3回yを3回出力したいとする。 #!…

Makefileと再帰するときのオプションについて(-Cと-fの違い)

再帰する時に -C を使う場合と -f を使う場合がある。この時のcwdの扱いが異なる。 説明のために、以下のようなファイル構造でファイルが置かれているとする。 $ tree . . ├── Makefile └── sub └── Makefile トップレベルのMakefileの中身は以下のようなも…

makeの再帰と値の受け渡しについて

makefile中でサブディレクトリのmakefileや別のタスクを呼びたい時がある。このような場合には $(MAKE) を使う(くわしくはこのあたり)。起動している自身のコマンドで呼び出してくれるので便利(たとえばmakeがgmakeなどのコマンド名だった場合にgmakeが使わ…

自然言語処理的な何かを始めようとした時に試行錯誤が辛かったのでそれなりに楽にできる環境を考えた

はじめに 久しぶりに幾つかのステップに分かれる変換が行われた結果を見ながら試行錯誤するというような作業をした。手軽に再実行などができる環境がないと辛くなってきたので、それなりに楽にできる環境を整えようとしてみた。 データの変換は幾つかのステ…