makeコマンド、rakeみたいにディレクトリを遡ってMakefileを探してくれないので面倒
— k1LoW (@k1LoW) 2019年2月2日
Goを書くようになってからなのか、GMOペパボに入ってからなのか、make を実行することが多くなったのですが、make はMakefileがあるディレクトリで実行する必要があります(もしくは -C オプションでMakefileのあるディレクトリを指定)。
ただ、rake や npm に慣れてしまっているからか、ディレクトリ関係なく make を実行してしまい *1、そのたびに make: *** No targets specified and no makefile found. Stop. を突きつけられてしまっていました。
というわけで、ディレクトリを遡ってMakefileを探してそのディレクトリで make を実行するだけのコマンド
mk を作りました。
インストール
go get か Homebrew でインストールできます。
$ go get github.com/k1LoW/mk
or
$ brew install k1LoW/tap/mk
使い方
make の代わりに mk を使うだけです。
$ cat Makefile
hello:
@echo "Hello make"
$ cd path/to/deep/
$ cat Makeflie
cat: Makefile: No such file or directory
上記のようにMakefileのあるディレクトリでないところで、make を実行してもエラーになりますが
$ make hello make: *** No targets specified and no makefile found. Stop.
mk だとディレクトリを遡ってMakefileを探して make を実行できます。
$ mk hello (in /path/to/deep) Hello make
alias make='mk' として使ってみようと思います。