MinGW + MSYS

MinGW 版だと wrapper が必要だったり必要な option がなかったりするのでやっぱり MSYS 版で。

autoconf, automake, libtool に関して MinGW 版があったことに気がついたのでそっち側に変更した。

とある理由で Windows native で GNU make の使える compile 環境が欲しくなった ( Windows binary を生成する cross compile 方法ってあるのかな ? ) ので探してみたところ今は MinGW と MSYS をいれるという選択肢があるらしい。 MinGWGNU の提供する開発環境の最小構成 ( 要は gcc まわり ) の Windows 版で MSYS はその補助用の最小構成 system ( bash, make, tar, gzip, bzip etc ) という位置づけで両方同じ site で頒布されている。

さらっと見てみた感じ cygwin に比べると楽そうだしとりあえずいれてみるかというところで以下 install 時の log まとめ。

  • MinGW
    • SourceForge の方から MinGW-{version}.exe ( 今は MinGW-5.1.6.exe が最新 ) を取ってきて実行。
    • install する package の選択は default で。 MinGW make は GNU make と機能的に互換でないらしい ( http://www.sixnine.net/cygwin/translation/mingw-doc/mingwfaq.html#s1-20 本家がないので日本語訳 ) のでいれなくていい。
    • gcc の version が ( 多分 ) 3 なので 4 にするために以下の file ( 今の最新 ) を取ってきて MinGW を install したところ ( default は "C:\MinGW" 、 MSYS 付属の bash 上では "/mingw" として見える ) に展開。 MSYS 付属の bash を使って tar xzvf {filename} -C /mingw ( {filename} は各 file の名前に置き換える ) とするか Lhaplus や 7-Zip なんかを使えば OK 。
      • gcc-core-4.4.0-mingw32-bin.tar.gz
      • gcc-core-4.4.0-mingw32-dll.tar.gz
      • gcc-c++-4.4.0-mingw32-bin.tar.gz
      • gcc-c++-4.4.0-mingw32-dll.tar.gz
      • gmp-4.2.4-mingw32-dll.tar.gz
      • mpfr-2.4.1-mingw32-dll.tar.gz
    • autoconf, automake, libtool が必要な software もけっこうあるのでとりあえずいれる
      • autoconf2.5-2.64-1-mingw32-bin.tar.lzma
      • automake1.11-1.11-1-mingw32-bin.tar.lzma
      • libltdl-2.2.7a-1-mingw32-dll-7.tar.lzma
      • libtool-2.2.7a-1-mingw32-bin.tar.lzma
  • MSYS
    • まず MSYS-1.0.11.exe をとってきて install 。
    • install 後に MinGW の位置を聞かれるので入力。
    • 最新の package に更新するために msysCORE の一番新しいもの ( 現時点では msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma ) を取ってきて MSYS を install したところ ( default は "C:\msys" 、付属の bash からだと "/" として access できる ) に展開。 lzma 形式は tar の "--lzma" option を使って tar --lzma -xvf msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma -C / とかやるか 7-Zip ( http://sevenzip.sourceforge.jp/ ) の 4.58 beta 以降を使って解凍。
    • 自分で開発したりそうでなくても configure を生成する必要のある software を compile する場合は autoconf, automake, libtool ( 依存する perl と crypt も ) をいれなければいけないので別途 install 。こいつらも msysCORE と同じように install directory に unpack すればおk。以下最新の file list 。
      • automake-1.11-1-msys-1.0.11-bin.tar.lzma
      • autoconf-2.63-1-msys-1.0.11-bin.tar.lzma
      • libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma
      • libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma
      • perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma
      • crypt-1.1_1-2-msys-1.0.11-bin.tar.lzma
      • libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma

これで gcc4 環境ができる。とりあえず MinGW や MSYS では install / update は package をもらってきて解凍するという手順を踏めばいいらしいということを覚えておけばいいのかな。うーんでもこれ yum や apt がやってることを依存確認も含めて人間が手動でやってるだけだよな。なんか不毛感漂う…。あとはやっぱり思ったよりも手軽じゃないというかどう考えても LinuxUNIX いじってましたってひとじゃないとすんなりとはいかない気がしてうぅむとなるな。 minimal なだけであってそのおかげで多少問題が発生しにくいもののやはり easy ではないというあたりを考えると sh って何 ? ってひとにはオススメできないというか。