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

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

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

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

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

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

MSYSの起動は、以下の2つから好みのものを使用してください。
	msys.bat      rxvtを使用した擬似ターミナルウィンドウ
	msys_cmd.bat  コマンドプロンプト上でのbash

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

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

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

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

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

丸ごと削除。

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

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

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MinGW
7zに再アーカイブし/_felidlaboに配置。
	gcc-core-3.4.5-20060117-3.tar.gz
	gcc-g++-3.4.5-20060117-3.tar.gz
	gcc-4.4.1-tdm-2-core.tar.gz
		ただし、pthread関連のファイルはエスケープ。
		configure等で自動検出されて意図しない結果になることを避けるため。
	gcc-4.4.1-tdm-2-g++.tar.gz

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MinGW追加
単純展開し/mingwに配置。
	binutils-2.20-1-mingw32-bin.tar.gz
		GNU Binutils / binutils-2.20
	mingwrt-3.17-mingw32-dev.tar.gz
		MinGW Runtime / mingwrt-3.17
	w32api-3.14-mingw32-dev.tar.gz
		MinGW API for MS-Windows / w32api-3.14
	mingw-utils-0.4-1-mingw32-bin.tar.lzma
		reimp等のあると助かる小物ツール
		MinGW Utilities / mingw-utils / mingw-utils-0.4-1
	↑gdb-7.0.50.20100202-mingw32-bin.tar.gz
		GNU Source-Level Debugger / GDB-7.0.50.20100202
	make-3.81-20090914-mingw32-bin.tar.gz
		MinGW make / make-3.81-20090914-mingw32
	pexports-0.44-1-mingw32-bin.tar.lzma
		pexportsはminw-utilsから独立した模様。
		MinGW pexports / pexports-0.44-1
	cygutils-dos2unix-1.3.4-1-mingw32-bin.tar.lzma
		dos2unix, unix2dosはminw-utilsから独立した模様。
		MinGW cygutils / cygutils-1.3.4-1
	×autoconf2.5-2.64-1-mingw32-bin.tar.lzma
		MSYSのものに戻した。
		MinGW autoconf / autoconf2.5 / autoconf2.5-2.64-1
	×automake1.11-1.11-1-mingw32-bin.tar.lzma
		MSYSのものに戻した。
		MinGW automake / automake1.11 / automake1.11-1.11-1
	×libtool-2.2.7a-1-mingw32-bin.tar.lzma
		MSYSのものに戻した。
		MinGW libtool / libtool-2.2.7a-1

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MSYS
単純展開し/に配置。
	msysCORE-1.0.11-bin.tar.gz
		MSYS Base System / msys-1.0.12
	coreutils-5.97-2-msys-1.0.11-ext.tar.lzma
		ただしpr.exeのみ。（最近のffmpegで使用する）
		coreutilsのbinではなくextに含まれるようになったようだ。
		MSYS coreutils / coreutils-5.97-2

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

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MSYS追加
単純展開し/にバイナリを配置。
	＠autoconf-2.63-1-msys-1.0.11-bin.tar.lzma
		一度MinGW版にしたがMSYS版に戻した。
		MSYS autoconf / autoconf-2.63-1
	＠automake-1.11-1-msys-1.0.11-bin.tar.lzma
		一度MinGW版にしたがMSYS版に戻した。
		MSYS automake / automake-1.11-1
	＠libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma
		一度MinGW版にしたがMSYS版に戻した。
		MSYS libtool / libtool-2.2.7a-1
	＠autogen-5.9.2-2-msys-1.0.11-bin.tar.lzma
		一度MinGW版にしたがMSYS版に戻した。
		MSYS autogen / autogen-5.9.2-2
	＠m4-1.4.13-1-msys-1.0.11-bin.tar.lzma
		古典的なマクロプロセッサ。
		MSYS m4 / m4-1.4.13-1 
	bison-2.4.1-1-msys-1.0.11-bin.tar.lzma
		MSYS bison / bison-2.4.1-1
	flex-2.5.35-1-msys-1.0.11-bin.tar.lzma
		MSYS flex / flex-2.5.35-1
	inetutils-1.5-1-msys-1.0.11-bin.tar.lzma
		ftp, ping, telnet, tftp...
		MSYS inetutils / inetutils-1.5-1
	perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma
		MSYS perl / perl-5.6.1_2-1
	libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma
		perl-MSYSの依存パッケージ。
		MSYS crypt / crypt-1.1_1-2
	cvs-1.12.13-1-msys-1.0.11-bin.tar.lzma
		MSYS cvs / cvs-1.12.13-1
	tar-1.22-1-msys-1.0.11-bin.tar.lzma
 		MSYS tar / tar-1.22-1

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
★MinGW追加
MSYS Supplementary Tools / Technology Preview: Tools for MSYS-1.0.11から入手可能
なものもあるが、MinGWのlibとして使用したいので別途用意。
一部を除き展開済みソースで同梱してあるため、使用するにはビルドが必要。
	＠libexpat-2.0.1-1-mingw32-dev.tar.gz
		XMLパーサー。
		ただし、static版優先のためdll用のライブラリはエスケープ。
		MinGW expat / expat-2.0.1-1
	libpopt-1.15-1-mingw32-dev.tar.lzma
		ただし、static版優先のためdll用のライブラリはエスケープ。
		MinGW popt / popt-1.15-1
	mingw-libgnurx-2.5.1-dev.tar.gz
		MinGWはlibcを持たないのでregexの代わりに/mingwに単純展開。
		User Contributed / regex / mingw-regex-2.5.1
	libz-1.2.3-1-mingw32-dev.tar.gz
		MinGW側で用意されていたので差し替え。
		これによりビルド不要になった。
		ただし、static版優先のためdll用のライブラリはエスケープ。
		MinGW zlib / zlib-1.2.3-1-mingw32
	nasm-2.07.tar.bz2
		http://nasm.sourceforge.net/
	yasm-0.8.0.tar.gz
		http://www.tortall.net/projects/yasm/
	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.0.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.6.tar.gz または libxml2-sources-2.7.6.tar.gz
		XMLパーサー。
		なぜかxmlsoft.orgに接続できないがFTPは生きている模様。
		http://www.xmlsoft.org/
		ftp://xmlsoft.org/libxml2/
	wget-1.9.1.tar.gz
		MinGWが用意するバージョンであり、最新のwgetではない。
		--max-redirectが非サポートのため、猫研パックツールキットには使用不可。
		MinGW Utilities / wget
	＠pthreads-w32-2-8-0-release.tar.gz
		05_plus-build.batではビルドされない。
		GCC-4系をインストール後、zz_pthread_clear_static-build.batでビルド可能。
		DLL版と同様に余計な関数を呼ぶ必要がない（呼んでもいい）ようにするパッチ
		(flpthreads-w32-2-8-0-clearstatic.diff)を試験的に同梱してある。
		既にautostatic版と呼ばれる先行物が世間にはあるが、仕組みは同じでも、
		猫科研究所で独自に作成したパッチなので、別物としてclear-static版と呼ぶ。
		x264のようにpthread-w32のstatic版の特殊性に対応済みのものを
		改めて「対応してない状態」に戻す必要がないのが特徴（？）。
		HIGHLY EXPERIMENTALなので注意。
		http://sourceware.org/pthreads-win32/

http://sourceforge.net/projects/mingw/files/

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

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

GNU Project
	http://www.gnu.org/
	http://directory.fsf.org/GNU/
MinGW/MSYS
	http://www.mingw.org/
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/

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

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

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/
