!!!今更MinGW 2009.06(4) MSYS,msysDTK MinGWはそれ単体でも純粋なコンパイラとしては動作するが、ビルド環境としては単純なmakeにしか対応できず、''非常に貧弱''である。特にUnixライクな環境を前提とする多くのオープンソースソフトウェアをビルドするには、bashの''シェルスクリプトで書かれたconfigure''が動作しないことにはビルドできないものが大半だ。逆に言えば、configureが動作すると格段に''ビルドできるものの幅が広がる''。 MSYSは基本的な環境であるmsysCOREとより高度な内容のmsysDTKに分かれているが、最近はこの区分はかなり曖昧だ。ここでは一括してMSYSとして扱う。 !!導入 以下のファイルを取得しよう。 *[MSYS Base System|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963] / [Release Candidate: MSYS-1.0.11|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963&release_id=46827] **[msysCORE-1.0.11-rc-1-bin.tar.gz|http://sourceforge.net/project/downloading.php?group_id=2435&filename=msysCORE-1.0.11-rc-1-bin.tar.gz] **[coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2] *[MSYS System Builder|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=227249] / [Technology Preview: msysDVLPR-1.0.0-alpha-1|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=227249&release_id=536830] **[autoconf-2.61-MSYS-1.0.11-1.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=autoconf-2.61-MSYS-1.0.11-1.tar.bz2] **[automake-1.10-MSYS-1.0.11-1.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=automake-1.10-MSYS-1.0.11-1.tar.bz2] **[libtool1.5-1.5.25a-20070701-MSYS-1.0.11-1.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=libtool1.5-1.5.25a-20070701-MSYS-1.0.11-1.tar.bz2] *[MSYS Supplementary Tools|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879] / [Technology Preview: Tools for MSYS-1.0.11|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879&release_id=540763] **[bison-2.3-MSYS-1.0.11-1.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=bison-2.3-MSYS-1.0.11-1.tar.bz2] **[crypt-1.1-1-MSYS-1.0.11-1.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=crypt-1.1-1-MSYS-1.0.11-1.tar.bz2] **[cvs-1.11.22-MSYS-1.0.11-1-bin.tar.gz|http://sourceforge.net/project/downloading.php?group_id=2435&filename=cvs-1.11.22-MSYS-1.0.11-1-bin.tar.gz] **[flex-2.5.33-MSYS-1.0.11-1.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=flex-2.5.33-MSYS-1.0.11-1.tar.bz2] **[inetutils-1.3.2-40-MSYS-1.0.11-2-bin.tar.gz|http://sourceforge.net/project/downloading.php?group_id=2435&filename=inetutils-1.3.2-40-MSYS-1.0.11-2-bin.tar.gz] **[perl-5.6.1-MSYS-1.0.11-1.tar.bz2|http://sourceforge.net/project/downloading.php?group_id=2435&filename=perl-5.6.1-MSYS-1.0.11-1.tar.bz2] coreutils以外は''/''、つまり標準的に言えばC:\msysに展開する。coreutilsは別途展開し、''pr.exe''のみ/binに配置しよう。 !各パッケージの説明 簡単に説明する。 ::msysCORE :::bash,cp,mv,diff,patchなどの非常に基本的なUnixライクツール群 ::coreutils :::msysCOREに準ずる追加のツール群だが、msysCOREと重複しているものもある。 :::猫研パックでは下手に全てを導入せず、ffmpegに必要な''pr.exeのみ使用''する。 ::autoconf,automake,libtool :::一般的にUnix系システムではビルドにconfigure→makeという手順を取るが、 :::このconfigureやmakeで使用するMakefileを自動生成するのがこれらのautotoolsだ。 :::autotoolsのおかげで、各種Unixライクな環境間の差異が吸収されている。 :::なお、autotoolsは[MSYS Supplementary Tools / Technology Preview: Tools for MSYS-1.0.11|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879&release_id=540763]や[User Contributed: mingwPORT / Current Releases|http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=233332&release_id=511579]にも存在するが、猫科研究所では上記のものを使用する。 ::bison :::直接使用することは少ないが、構文解析器である。 :::初期にはGCCもこれによりC言語のソースファイルを解析していた。 ::crypt :::perlの依存ライブラリで、DESを計算するモジュール。 ::cvs :::一昔前まではよく利用されたバージョン管理システムCVSを操作するツール。 :::さらに以前にはRCSというシステムが利用されていたが今ではどちらもあまり見ない。 :::Subversion(SVN)やGitに取って代わられている。 :::VisualStudioでいうVSS(Visual SourceSafe)に相当。 ::flex :::bisonと同時に語られることの多い字句解析器。 :::やはり直接使用することは少ない。 ::inetutils :::ftp,telnetといったネットワーク系ツール群。 ::perl :::汎用テキスト処理系スクリプト言語であるPerlを実行するインタプリタ。 :::PerlはCGIやmodperl経由でWebプログラミングに使用し一時代を築いた。 :::現在でも非常に多く使われており、猫研のサイトもPerl(FSWiki)で動作している。 :::上記のautoolsの幾つかはPerlスクリプトなので、perl無しでは動作しない。 :::また、猫研パックではソースへの簡易的なパッチに使用することがあるため重要。 !インストール後調整スクリプト msysCOREには''/postinstall/pi.sh''が付属している。これはインストール後の調整スクリプトとなっていて、以下のような調整を行う。 *シェルスクリプト版と.exe版で重複しているコマンドをどちらかに統一する。 *MinGWが/mingwにあるように見せかけるため、/etc/fstabに追記する。 *MinGW側のmakeをmingw32-make.exeにリネームし、通常はMSYSのmakeが使用されるようにする。 猫研パックでは最初の一つのみを行い、MinGW側の調整は行わない。なぜなら、猫研パックではMinGWは最初から/mingwに実体を配置しているため、''見せかける必要がなく''、最近のMinGWに付属のmakeは''最初からmingw32-make.exeという名前''であるためだ。pi.shが古く、従って想定しているMinGWが古いため、このような無駄な動作が残っている。 なお、猫研パックのpostinstallはこの他に、GCCの.7zへの再アーカイブや、猫研パックツールキットのパスを/etc/flenvに追加するなどの動作を行う。