MinGW+MSYS 猫科研究所パック assemble007

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
●概要
MinGWの環境構築が面倒な人向けのパッケージ。
特段のカスタマイズはないがLinuxにおけるディストリビューションのようなもの。

【基本方針】
	・簡単に導入できる。
	・ffmpegがビルドできる。
	・メジャーなライブラリ類は含めていくかも。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
●使い方

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★インストール（通常）

1. C:\msysなど空白や日本語を含まないパスに展開する。
   この状態ではコンパイラ(gcc)のインストールが未完了です。
2. _felidlabo/04_gccinstall.batを叩く。
   使用するgccのメジャーバージョンを聞かれるので選択してください。
   ただし、GCC3系列は一切の動作検証をしていません。
   これが完了した時点で一応のMinGW環境として使用できます。
3. _felidlabo/05_plus-build.batを叩く。
   ffmpegのビルドに必要なnasm, yasm等のMinGW/MSYS外のものがビルドされます。
   その他一般によく使用されるlibjpeg, libpng等もビルドされます。
   PCの性能によっては数十分かかりますがビルドの完了をじっと待って下さい。
4. 06_cleanup.batを実行すると動作に不要な3.のソースファイル等を削除します。

msys.batを叩けばMSYSが起動します。

使用するgccのバージョンを切り替えたい場合は再度上記2.を行うか、MSYSのプロンプト
からgccinstall.shを実行してください。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★インストール（猫研パック構築ツールキット）

上記通常インストールではバッチファイルを04_gccinstall.batから叩いています。が、
猫研パックはバッチファイルを叩くことで猫研パック自体の構築が可能です。それが00か
ら03までのバッチファイルになります。

こちらを実行する場合には/_felidlabo/readme.txtを読んでください。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★アンインストール

丸ごと削除。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
●仕様・制限・注意

構成ファイルは下記の通り。前バージョンからの変更内容は記号を参照。
↑：バージョンアップ
＠：新規追加
×：除外

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MinGW/BaseSystem または TDM-GCC
	＠gcc-4.5.0-tdm-1-core.tar.lzma
	＠gcc-4.5.0-tdm-1-c++.tar.lzma
		TDM版が更新されたので差し替えた。
	×gcc-core-4.5.0-1-mingw32-bin.tar.lzma
	×gcc-c++-4.5.0-1-mingw32-bin.tar.lzma
		TDM版が更新されたので差し替えた。
	×libmpc-0.8.1-1-mingw32-dll-2.tar.lzma
	×libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma
	×libgmp-5.0.1-1-mingw32-dll-10.tar.lzma
		本家GCC4.5.0の依存ファイル。
	gcc-core-3.4.5-20060117-3.tar.gz
		ただし一切の動作検証はしていない。
	gcc-g++-3.4.5-20060117-3.tar.gz
		ただし一切の動作検証はしていない。
	binutils-2.20.1-2-mingw32-bin.tar.gz
		リンカ等。
	mingwrt-3.18-mingw32-dev.tar.gz
		ランタイムライブラリを使用するためのライブラリ。
	w32api-3.14-mingw32-dev.tar.gz
		Windows APIを使用するためのライブラリ。
	gdb-7.1-2-mingw32-bin.tar.gz
		デバッガ。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MinGW（BaseSystem以外）
単純展開し/mingwに配置。
	mingw-utils-0.4-1-mingw32-bin.tar.lzma
		reimp等のあると助かる小物ツール
	make-3.81-20090914-mingw32-bin.tar.gz
	pexports-0.44-1-mingw32-bin.tar.lzma
		pexportsはminw-utilsから独立した模様。
	cygutils-dos2unix-1.3.4-1-mingw32-bin.tar.lzma
		dos2unix, unix2dosはminw-utilsから独立した模様。
	libexpat-2.0.1-1-mingw32-dev.tar.gz
		XMLパーサー。
		ただし、static版優先のためdll用のライブラリはエスケープ。
	libpopt-1.15-1-mingw32-dev.tar.lzma
		ただし、static版優先のためdll用のライブラリはエスケープ。
	mingw-libgnurx-2.5.1-dev.tar.gz
		MinGWはlibcを持たないのでregexの代わりに/mingwに単純展開。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MSYS
単純展開し/に配置。
	msysCORE-1.0.11-bin.tar.gz
	msysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzma
		ファイルは1.0.12や1.0.13と共通であるためこれのみ上書きすれば最新となる。
	↑coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
		ただしpr.exeのみ。（最近のffmpegで使用する）
		coreutilsのbinではなくextに含まれるようになったようだ。
	↑autoconf-2.65-1-msys-1.0.13-bin.tar.lzma
	↑autogen-5.10.1-1-msys-1.0.15-bin.tar.lzma
	↑automake-1.11.1-1-msys-1.0.13-bin.tar.lzm
	↑libtool-2.2.7a-2-msys-1.0.13-bin.tar.lzma
	↑m4-1.4.14-1-msys-1.0.13-bin.tar.lzma
		古典的なマクロプロセッサ。
	↑bison-2.4.2-1-msys-1.0.13-bin.tar.lzma
	↑flex-2.5.35-2-msys-1.0.13-bin.tar.lzma
	↑inetutils-1.7-1-msys-1.0.13-bin.tar.lzma
		ftp, ping, telnet, tftp...
	↑perl-5.6.1_2-2-msys-1.0.13-bin.tar.lzma
	↑libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma
		perl-MSYSの依存パッケージ。
	↑cvs-1.12.13-2-msys-1.0.13-bin.tar.lzma
		古典的なソースコード管理システム。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MSYS更新と依存ライブラリ
	＠bash-3.1.17-3-msys-1.0.13-bin.tar.lzma
	＠libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
		bashが依存する。
	＠libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
		bashが依存する。
	↑tar-1.23-1-msys-1.0.13-bin.tar.lzma
	＠diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma
	＠patch-2.6.1-1-msys-1.0.13-bin.tar.lzma
	＠libintl-0.17-2-msys-dll-8.tar.lzma
	＠libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★mingwPORT
ダウンロード・ビルドし/mingwにバイナリを配置。
	wget-1.9.1-mingwPORT.tar.bz2
		MinGWが用意するバージョンであり、最新のwgetではない。
		--max-redirectが非サポートのため、猫研パックツールキットには使用不可。
		mingwPORT / Current Releases

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MinGW追加
MSYS Supplementary Tools / Technology Preview: Tools for MSYS-1.0.11から入手可能
なものもあるが、MinGWのlibとして使用したいので別途用意。
一部を除き展開済みソースで同梱してあるため、使用するにはビルドが必要。
	nasm-2.08.01.tar.bz2
		アセンブラ。
		http://nasm.sourceforge.net/
	↑yasm-1.0.1.tar.gz
		アセンブラ。
		http://www.tortall.net/projects/yasm/
	zlib-1.2.5.tar.bz2
		http://www.zlib.net/
	jpegsrc-6b-x86simd-1.02.tar.bz2
		Independent JPEG Group's JPEG library(libjpeg)のSIMDによる高速化版。
		http://www.ijg.org/
		http://cetus.sakura.ne.jp/softlab/jpeg-x86simd/jpegsimd.html
	↑libpng-1.4.2.tar.bz2
		static版を主に使用するためdll版はエスケープ。
		http://www.libpng.org/pub/png/libpng.html
	libiconv-1.13.1.tar.gz
		MinGW libiconv / libiconv-1.13.1-1にもあるが下記パッチを当てるので
		GNUオリジナル版からビルド。
		http://www.gnu.org/software/libiconv/
	libiconv-1.13-ja-1.patch.gz
		文字のマッピングをマイクロソフトの実装に合わせるパッチ。
		http://www2d.biglobe.ne.jp/~msyk/software/libiconv-patch.html
	libxml2-2.7.7.tar.gz または libxml2-sources-2.7.7.tar.gz
		XMLパーサー。
		なぜかxmlsoft.orgに接続できないがFTPは生きている模様。
		http://www.xmlsoft.org/
		ftp://xmlsoft.org/libxml2/
	wget-1.9.1.tar.gz
		MinGWが用意するバージョンであり、最新のwgetではない。
		--max-redirectが非サポートのため、猫研パックツールキットには使用不可。
	pthreads-w32-2-8-0-release.tar.gz
		DLL版と同様に余計な関数を呼ぶ必要がない（呼んでもいい）ようにするパッチ
		(flpthreads-w32-2-8-0-clearstatic.diff)を試験的に同梱してある。
		既にautostatic版と呼ばれる先行物が世間にはあるが、仕組みは同じでも、
		猫科研究所で独自に作成したパッチ。
		x264のようにpthread-w32のstatic版の特殊性に対応済みのものを
		改めて「対応してない状態」に戻す必要がないのが特徴（？）。
		HIGHLY EXPERIMENTALなので注意。
		http://sourceware.org/pthreads-win32/

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
●仕様（メモ書き）

手間がかかるのでmanは入ってません。ちなみにMSYS manはMSYS groffが必要です。
依存関係が煩雑なのでgettext, intl, asprintfは入っていません。
個別の項目は必ずしも最新ではありません。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
●元ネタ

猫科研究所パックに含まれるソース・バイナリは下記に示す場所から得ました。

GNU Project
	http://www.gnu.org/
	http://directory.fsf.org/GNU/
MinGW/MSYS
	http://www.mingw.org/
	http://sourceforge.net/projects/mingw/files/
Twilight Dragon Media（MinGW向け最新GCCの配布元）
	http://www.tdragon.net/
nasm
	http://nasm.sourceforge.net/
yasm
	http://www.tortall.net/projects/yasm/
zlib
	http://www.zlib.net/
libpng
	http://www.libpng.org/pub/png/libpng.html
Independent JPEG Group
	http://www.ijg.org/
Independent JPEG Group's JPEG software release 6b
with x86 SIMD extension for IJG JPEG library version 1.02
	http://cetus.sakura.ne.jp/softlab/jpeg-x86simd/jpegsimd.html
libiconv パッチ集
	http://www2d.biglobe.ne.jp/~msyk/software/libiconv-patch.html
libxml2
	http://www.xmlsoft.org/
GnuWin32（猫科研究所パックの構築に使用）
	http://gnuwin32.sourceforge.net/
7-zip（猫科研究所パックの構築とgccのアーカイブの展開に使用）
	http://www.7-zip.org/

各ソフトウェアの開発者の方々に感謝します。非常にレベルの高い技術者の、非常に多く
の時間が費やされて出来上がっていることに、畏敬の念を覚えます。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
●更新履歴

assemble007 2010/06/10
	TDMが更新されたのでGCCをそちらにした。
	MSYSの殆ど全てをアップデート。
	bash/diff/patchはmsysCOREのものではなく更新させるようにした。
	本家MinGWの配布ページが分り易くなったので、このreadmeからカテゴリを除去。
	前回宣言通り、GCC3系列は動作未確認。
	前回同様、pthread-w32は猫研による修正版。

assemble006 2010/04/29
	少し危険かもしれないリリース。
	TDMが更新されないのでGCCを本家MinGWの4.5.0にした。
	この版からGCC3系列に関しては検証しないことにした。
	GCCのver間での競合ファイルを/mingwにディレクトリを切って保存するようにした。
	気づいたらMSYS(bash)をcmdで起動するのがデフォルトになってたのでrxvtを廃止。
	pthread-w32の猫研による修正版を標準で使用できるようにしてみた（危険！）。
	半角空白を含むパスへの設置に中途半端に対応した（実用になりません）。
	その他色々をアップデート（yasm, zlibあたりには注意）。

assemble005 2010/02/14
	MinGW版のautotoolsが動いておらず、どうせbashが必要なのでMSYS版に差し戻し。
	gdb, libpngを最新版に更新。ついでにMSYS m4とMinGW expatを追加。
	MSYSの1.0.12〜Proposed(1.0.13-2)はpartialなので1.0.11のままにした。
	試験的にpthreadのstatic版を使いやすくする（clear-static版）パッチを含めた。
	pthread-w32-clear-staticはzz_pthread_clear_static-build.batでビルド可能。

assemble004 2009/12/09
	ほぼ全てを最新版に更新。
	gccの切り替えをアーカイブの上書き展開ではなく展開済みのリネームにした。
	gccの切り替えはgccswitch.shで可能。
	以前はmingw-utilsに含まれてたpexports等が分離していたので含めるようにした。
	zlibの最新バイナリをMinGWが用意するようになったので差し替えた。
	autotoolsをMSYS版からMinGW版に変更（ただし結局bashが必要だが）してみた。
	libpoptを含めてみた。
	tarを最新にするためmsysCOREとは別途取得するようにした。
	TDW版GCCに含まれるpthreadのヘッダのバグを修正（CVSと同等に）。

assemble003 2009/06/21
	構築ツールキットを作成して含めた。
	各種バイナリの更新。
	gcc4はTDM版の最新にした。
	gdb, cvs, libpng, libiconv(w/cp932-patch), libxml2を含めた。
	libjpegをSIMD使用の高速化版に置き換えた。
	guileはそれほどメジャーではないので除外。

assemble002 2008/11/16
	実害はないがbinutilsを<msys>に展開していたので<msys>/mingwに修正。
	perlをplusパックに追加。a001でfaac/faadがビルドできなかった問題の対策。
	おまけでMSYS(msysDTK)のよく使いそうな追加パッケージを取り込み。

assemble001 2008/10/12
	最近のffmpegのビルドには不都合が出てきたのでアップデート。
	make.exeのバージョンやCAPTUREPARAMS構造体、usleep等。

assemble000 2008/05/04
	"今更MinGW"の記事を書いたばかりなのに、色々更新されたことに腹を立て作成。

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
●おくづけ

作った人
	猫科研究所（猫Ｐ, 平田）
ライセンス
	外部由来のものは上記「元ネタ」の各ライセンスに従う。
	猫科研究所での作成分はwgetmodoki.wsfとflhttp.wscのみzlibライセンス。
	その他の猫科研究所での作成分はパブリックドメイン。
提供場所
	http://up-cat.net/
