Windows環境でpicoruby開発したい

結論

おとなしくWSLとか入れてLinux互換環境とかにしてからやったほうが無難

やったこと

  • RasberryPiPicoでRubyっていうと今はpicorubyがいいのかな、と考えた
  • GNU Arm Toolchainは入れてあって、WindowネイティブでRasPiPicoバイナリは生成可能。(arm-none-eabi-gcc.exeはある)
  • なんてことないだろう、とWindowsのcmdコンソールから開始。
  • picorubyソース一式を落としてくる
  • CRubyが入っていないことに気づき、てきとうにインストール
  • 中身をのぞいてみるが、デフォルトはクロスコンパイル対応になっていないので、build_config/default.rbの中身をほぼbuild_config/prk_firmware-cortex-m0plus.rbにすげかえる。
  • rake実行→止まる。ここから苦難の始まり。
  • コンパイラがないと言われる→実はWindows環境でのCコンパイラも必要。gcc (mingw64) を入れる。
  • cpコマンドがない→バッチファイルとrubyで即席ででっちあげる
  • lempar.cが読めないと怒られる→picorubyではパーザとしてlemonというのを使っているらしく、先にlemon.exeを生成して使うのだが、そいつのテンプレートファイル指定がデフォルトだと動かないらしい。オプションに" -T../lib/lempar.c"を追加。
  • gccのオプションをいじってWarningを抑制したのだが、これは関係なさそう
  • Don't know how to build task 'D:/_dev/pico/picoruby/build/host/bin/picorbc' と怒られる。作り方わからないから教えろよ、ということなのだが、実のところは実行ファイルがpicorbc.exeだということを教えてやればよいのだった。lib/picoruby/build.rb の self.mrbcfile = "#{build_dir}/bin/picorbc" を self.mrbcfile = exefile("#{build_dir}/bin/picorbc") に変更。これでやっと正常終了し、picorbc.exeができた。

ここまで丸一日。だいたいWindowsネイティブでやろうとしたせいだ。それにしてもrakefileの設定は複雑怪奇でわけがわからない。ぐぐってもRailsでの使い方ばかりひっかかるし。
以上、おぼえとして。