Makeでいうルールの定義がfileですね。 file 'hoge' => ['hoge.c', 'hoge.h'] do |task| sh "gcc hoge.c -o hoge" end ファイル 'hoge' が 'hoge.c', 'hoge.h' に依存していることを表す。 'hoge'を生成するのに、ブロックの中のsh "..."を実行する。 引数taskには、Taskクラスのインスタンスが渡される。(Taskクラスは後述) shメソッドによってシェルを呼び出す。 FileUtilsを継承したRakeFileUtilsモジュールに定義されており、includeされている。 FileUtilsのメソッドと同じく{:verbose => true, :noop => true}でオプションを渡せる。 verboseオプションに合わせて、標準エラー出力に実行コマンドを出すなど、ex