トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

今更MinGW 2009.06(4) MSYS,msysDTK

今更MinGW 2009.06(4) MSYS,msysDTK

MinGWはそれ単体でも純粋なコンパイラとしては動作するが、ビルド環境としては単純なmakeにしか対応できず、非常に貧弱である。特にUnixライクな環境を前提とする多くのオープンソースソフトウェアをビルドするには、bashのシェルスクリプトで書かれたconfigureが動作しないことにはビルドできないものが大半だ。逆に言えば、configureが動作すると格段にビルドできるものの幅が広がる

MSYSは基本的な環境であるmsysCOREとより高度な内容のmsysDTKに分かれているが、最近はこの区分はかなり曖昧だ。ここでは一括してMSYSとして扱う。

 導入

以下のファイルを取得しよう。

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.11User 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秒