今更MinGW 2009.06(4) MSYS,msysDTK
MinGWはそれ単体でも純粋なコンパイラとしては動作するが、ビルド環境としては単純なmakeにしか対応できず、非常に貧弱である。特にUnixライクな環境を前提とする多くのオープンソースソフトウェアをビルドするには、bashのシェルスクリプトで書かれたconfigureが動作しないことにはビルドできないものが大半だ。逆に言えば、configureが動作すると格段にビルドできるものの幅が広がる。
MSYSは基本的な環境であるmsysCOREとより高度な内容のmsysDTKに分かれているが、最近はこの区分はかなり曖昧だ。ここでは一括してMSYSとして扱う。
導入
以下のファイルを取得しよう。
- MSYS Base System / Release Candidate: MSYS-1.0.11
- MSYS System Builder / Technology Preview: msysDVLPR-1.0.0-alpha-1
- MSYS Supplementary Tools / Technology Preview: Tools for MSYS-1.0.11
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やUser Contributed: mingwPORT / Current Releasesにも存在するが、猫科研究所では上記のものを使用する。
- 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に追加するなどの動作を行う。
最終更新時間:2009年06月25日 17時53分38秒