koji::*

主に技術系。他に雑多なことをアレコレと

Makefileでifする時のささいな話

こんな感じでMakefileを書くと、any_fileが無い時にmakeがエラーになる。

$ cat Makefile
all:
    [ -e any_file ] && echo "file exists"
$ make
[ -e any_file ] && echo "file exists"
make: *** [all] Error 1

[]が何返してるのか見るとこんな感じ。

$ touch any_file
$ [ -e any_file ]
$ echo $?
$ 0
$ rm any_file
$ [ -e any_file ]
$ echo $?
$ 1

なので&&じゃなくて条件反転して||で書いたらOKでしたっていうお話。