NXTでのmake、uploadの手間を省く方法

 結論から書くと

alias mas='make all && sh rxeflash.sh'
alias mcas='make clean && make all && sh rxeflash.sh'

を/home/(ユーザー名)/.bashrc にコピペしておいて、cygwin再起動をする。それから$ mas でmakeとアップロードができたり、$ mcas でクリーンしてmakeしてアップロードができて、かなり楽という話。以下はそれに至るまでのいろいろ段階を踏まえて書いておく。

makeなどの手間を少し省くやり方

 IDEを使ってない人はシェルでmake allとか、sh rxeflash.shとかして開発していることでしょう。


コマンドを普通に入力する場合、

# 「$」以降がコマンド
$ make all
$ sh rxeflash.sh

### または

$ make clean
$ make all
$ sh rxeflash.sh

とやらないとコンパイルとNXTへのアップロードができない。


 毎回コマンドを一つ一つ入力するのはとても面倒なので、これをまとめて実行すると手間を省けてかなり楽になる。

$ make all ; sh rxeflash.sh
$ make clean ; make all ; sh rxeflash.sh


 コマンドは「;」を使ってつなげることができる。しかしこのコマンドは欠点があって、前のコマンドが成功する、しないにかかわらず「;」の後のコマンドを実行されてしまう。こうすると make all が失敗したのに sh rxeflash.sh が実行されて無駄なログが出てめんどくさい。


 そこで「&&」を使って、前のコマンドが成功した場合にのみ実行するように変えてみる。

$ make all && sh rxeflash.sh
$ make clean && make all && sh rxeflash.sh


 これなら一度実行し置けば履歴をみるだけで簡単に一連のコマンドを実行できる。でも、履歴を毎回たどるというのもそれはそれで面倒。それに長いし。


 ならaliasで簡単に実行できるようにしてみる。

alias mas='make all && sh rxeflash.sh'
alias mcas='make clean && make all && sh rxeflash.sh'


 これは $ make all && sh rxeflash.sh の略と、$ make clean && make all && sh rxeflash.sh の略になっている。覚えにくかったら自分で変えると良い。


 これをcygwinにペーストして実行する。ペーストの仕方は、Ctrl + Shift + Insert でできる。これで$ mas または $ mcas と実行すると長いコマンドを実行してくれるのがわかると思う。
 でもこれだとcygwinを起動するたびにaliasを書かないといけないからまたまた面倒。


 ならcygwinbashの設定ファイル「.bashrc」に書いておけば、この設定がずっと有効になるのでそれにコピペする。場所はC:\cygwin\home\(ユーザー名)\.bashrcにある。MacLinux~/.bashrc にある。


 Windowsは拡張子の拡張子がないせいで開けないと思うから、サクラエディタとかEmacsとかを起動してから開けば良い。


 コピペして保存したらcygwin

$ source /home/(ユーザー名)/.bashrc

とやって読み込むか、cygwinを再起動する。これで $ mas と $ mcas が永続化される。

終わりに

 NXTのプログラムの工程は手間がかかるので、aliasで少しは楽をしたほうが作業がスムーズに進む。
 IDEが使える方がいいんだろうけど、いろいろ設定とかで諦めてしまった人はシェルの方で頑張るか、コンパイルせずにロボットのパラメータをいじれるシステムを作ればいいいと思う。