MinGW build.blog

2013年01月

今回MinGWをすべて自分でビルドするにあたってのコンセプト
目標その1. ビルドに必要な開発補助ツール・ライブラリなども可能な限りソースからコンパイルする。現在の達成状況はこちら→mingw32編msys編
目標その2. 可能な限り最新版ソースを使用する。(svn、git利用も含む)
目標その3. UNIXからの移植がしやすいmingw-w64を使用。ただし32bitマシン上のネイティブ環境ですべてコンパイルすること。クロスコンパイル(Cygwinを含む)は無しの方向。

さてmake-3.81.90.tar.gzをダウンロードしたはいいものの肝心の解凍ができません。これはどうにかしなければ!

と、寒い小芝居は無視して、今回はアーカイブ関連のツール、ライブラリのビルドを行います。
近代的かつコンパクトな環境を目指す当ブログとしてはlibarchive 一択です。古い本家tar (以下GNU tarト称ス) よりも、libarchive に含まれるbsdtar の方がはるかに便利です。
libarchive のconfigure スクリプトを走らせて、事前にインストールするライブラリの取捨選択を行っていきます。(zlibxzopenssl はすでにインストール済みです。)


3-8. libxml2 のインストール
(リスト番号82)

続きを読む

今回MinGWをすべて自分でビルドするにあたってのコンセプト
目標その1. ビルドに必要な開発補助ツール・ライブラリなども可能な限りソースからコンパイルする。現在の達成状況はこちら→mingw32編msys編
目標その2. 可能な限り最新版ソースを使用する。(svn、git利用も含む)
目標その3. UNIXからの移植がしやすいmingw-w64を使用。ただし32bitマシン上のネイティブ環境ですべてコンパイルすること。クロスコンパイル(Cygwinを含む)は無しの方向。

新MSYSがなんとか動くようになりましたが、MSYS 本来の目的であるところのビルドがまだできない状態です。
そこで今回からGNU MAKE のビルドに挑みたいと思いますが、make-3.82.tar.gz をダウンロードしに行く服はあっても、ダウンロードするツールがありません。これはどうにかしなければ!

と、わざとらしい前フリはさておき、今回はダウンロードツール、wgetのビルドを目指します。
wget のビルドにはGnuTLSOpenSSL のどちらかが必要になりますが、MSYS で採用されているOpenSSL を選択します。


3-6. OpenSSLのインストール
(リスト番号72,102)

続きを読む

今回MinGWをすべて自分でビルドするにあたってのコンセプト
目標その1. ビルドに必要な開発補助ツール・ライブラリなども可能な限りソースからコンパイルする。現在の達成状況はこちら→mingw32編msys編
目標その2. 可能な限り最新版ソースを使用する。(svn、git利用も含む)
目標その3. UNIXからの移植がしやすいmingw-w64を使用。ただし32bitマシン上のネイティブ環境ですべてコンパイルすること。クロスコンパイル(Cygwinを含む)は無しの方向。

前回で残されていた宿題は一応提出したつもりです。
しかし、後2つだけ心残りがありますので片付けたいと思います。
すなわち、msys-dvlpr のインストールのついでに導入した、termcap とregex という2つのlegacy なライブラリです。例によってmsys-dvlpr を使用して、MinGW.org のソースをビルドすれば良いのですが、できれば、拙作のビルドシステム (mingw32-gcc) を用いてビルドしたいと思います。

検討の結果、遺憾ながら今回は弊システムへの採用を見送らせて頂くことになりました。誠に不本意な結果かと存じますが、あしからずご了承下さいますようお願い申し上げます。
末筆ながら、今後のご健勝をお祈り申し上げます。


3-4. PDCurses (termcapの代用)のインストール
(リスト番号80,110)

続きを読む

今回MinGWをすべて自分でビルドするにあたってのコンセプト
目標その1. ビルドに必要な開発補助ツール・ライブラリなども可能な限りソースからコンパイルする。現在の達成状況はこちら→mingw32編msys編
目標その2. 可能な限り最新版ソースを使用する。(svn、git利用も含む)
目標その3. UNIXからの移植がしやすいmingw-w64を使用。ただし32bitマシン上のネイティブ環境ですべてコンパイルすること。クロスコンパイル(Cygwinを含む)は無しの方向。
MSYS編冒頭から、msys-dvlprなるものをバイナリでインストールするという、上記目標その1. に反する恥体を晒しています。弁解する気はないですが、理由を説明させて頂きますと、

1. よりPOSIX に近い環境としてMSYS 環境が絶対に必要であり、msys-1.0.dll とのリンクが回避できないこと。

2. そのためには、msys-gcc が必須となること。そもそも、MINGW のgcc とMSYS のgcc は別物です。いわゆるtriplet と呼ばれるものが「i686-pc-mingw32」と「i686-pc-msys」という違いがあります。そのため、msys-gcc を使うことは上記の目標その3. にも反し、厳密にいうとクロスコンパイルに当たります。

3. 妥協案として、msys-gcc を自分でビルドすることも考えましたが、最新のgcc (4.x系列) をmsys-gcc としてビルドしてる例は世界中でもわずかで、自分には不可能です。

4. だからといって今更gcc-3.x系列をビルドする気はありません。(ここでやっと上の目標その2. が活きてきました。)

5. 結論。今後ビルドするパッケージは、なるべく最新のmingw-gcc のみを使用し、msys-gcc が必要な場合のみmsys-dvlpr 環境を利用する事にしました。よって、~/.profile の「INCLUDE_PATH」「LIBRARY_PATH」からも/usr/include、/usr/lib を削除します。

とはいえ、やはりmsys-dvlpr 環境も自分でビルドしてみたいと思う人もいるかと思います。私は止めません。それは非常に簡単な行為なのですから。(翻訳サイト風)

続きを読む

このページのトップヘ