2014/09/23

引数無しmakeの動作を勘違いしていた

nRF51 SDKにはMakefileのテンプレートなどもあるため、gccでやるときも楽だ。
その中に、こう書かれていた。

## Default build target
.PHONY: all
all: clean release

ああ、makeのデフォルトはreleaseで行われるのね、と思ったのだが・・・。
やってみると、どうもdebugで指定した動作をしているようなのだ。

調べてわかったのは、makeの引数無し動作は「最初に定義されたtargetが実行される」なのだ。
Makefileではこの行よりも前に、debug、releaseの順でターゲットが書かれていた。
そうか、そうだったんだ・・・。

自分でMakefileを書くとき、最初にallが出るようにしているので、ずっと「引数無しはall」と思い込んでいたのだ。
こういう、習慣でやっていることが思い込みにつながる事ってあるよね、うんうん。

今までそれでやれていたので、間違った説明をしたことがあったかも・・・とちょっと怖くなった。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。