トップ 検索 一覧 ヘルプ RSS ログイン

今更MinGW 2009.06(4) MSYS,msysDTKの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!今更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]にも存在するが、猫科研究所では上記のものを使用する。
:::なお、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に追加するなどの動作を行う。