rakeは賢いという話

隣の芝の青さを羨んでいても仕方が無いので、Makefileを親ディレクトリを遡って探してからmakeするmake.sh。

$ cat /usr/bin/make.sh
#!/bin/bash

while [ ! -f Makefile ]
do
  cd ..
done

make $*

-fとかでMakefileを指定されてると気が狂いそうだけど、まあ良いや。そもそも複数のディレクトリをまたがってEmacsで編集してるときにどこでもmakeしたいというのが動機だから。そういう場面で、-fが必要なMakefileはありえない。

返す刀で.emacs

(setq-default compile-command "make.sh -s")

と書き加えて作業終了。*1

めでたしめでたし。

*1:ところでsetqとsetq-deafultはどう違うんだろう。