|▽ ̄)ノ なページ再帰 - GcLでMGWx/GxCRgh/BXEnv/ライブラリのインストール
このページの情報は古くなっています。ここにある情報でなければならない特別な理由がなければこちらをご覧ください。MinGW Cross Compile on Ubuntu

Gentoo coLinux で MinGW クロスコンパイル >> GIMPクロスコンパイルへの茨の道 >> MinGW 環境の整備 >> コンパイル済みライブラリのインストール

コンパイル済みライブラリのインストール


各種ライブラリのインストールと pkg-config ファイルの書き換え、改行コードの変更とパーミッションの設定を行います。

${XGMPDEV} はライブラリ/ランタイムの置き場所です。例えば ${XMINGW}/local/src/gimpdev 。

目次

用意するもの


tml 氏のサイトもしくは ring の X/gnome/binaries/win32/ ディレクトリあるいは GnuWin32 からライブラリ/ランタイムを取得します。ファイル名は次のようになります。 -dev のないものもあります。
# ランタイム glib-2.12.7.zip # ライブラリ glib-dev-2.12.7.zip

それぞれ入手先からファイルをダウンロードしてください。バージョンは最新のものでかまわないと思いますが、コンパイルが通らないなど問題があった場合は古いバージョンを使用してください。
Tor Lillqvist--GTK+ (not GIMP) for Windows--Downloads
http://www.gimp.org/~tml/gimp/win32/downloads.html...
Ring Server Project
http://www.ring.gr.jp/~~
GnuWin32
http://gnuwin32.sourceforge.net/
  • atk-1.10.3.zip
  • atk-dev-1.10.3.zip
  • cairo-1.0.2.zip
  • cairo-dev-1.0.2.zip
- dirent.zip (***)
  • fontconfig-2.2.2-20040412.zip
  • fontconfig-dev-2.2.2-20040412.zip
  • freetype-2.1.10-bin.zip
  • freetype-2.1.10-lib.zip
  • gettext-0.14.5.zip
  • gettext-dev-0.14.5.zip
  • glib-2.8.6.zip
  • glib-dev-2.8.6.zip
  • gtk+-2.8.11.zip
  • gtk+-dev-2.8.11.zip
  • jpeg-6b-4-bin.zip
  • jpeg-6b-4-lib.zip
  • lcms-dev-1.11.zip
  • lcms-runtime-1.11.zip
  • libart_lgpl-2.3.14.zip
  • libart_lgpl-dev-2.3.14.zip
  • libexif-0.6.11.zip
  • libexif-dev-0.6.11.zip
  • libgsf-1.8.2-20040121.zip(**)
  • libgsf-dev-1.8.2.zip(**)
  • libiconv-1.9.1.bin.woe32.zip
  • libpng-1.2.8-bin.zip
  • libpng-1.2.8-lib.zip
  • librsvg-2.4.0.zip (*)
  • librsvg-dev-2.4.0.zip (*)
  • libtiff-3.7.3-lib.zip
  • libtiff-3.7.3-bin.zip
  • libwmf-dev-0.2.8.1-tml-20031201.zip(**)
  • libwmf-runtime-0.2.8.1-tml-20031201.zip(**)
  • libxml2-2.6.23.win32.zip (*)
  • pango-1.10.2.zip
  • pango-dev-1.10.2.zip
  • xpm-nox-4.0.3-20020617.zip
  • xpm-nox-dev-4.0.3-20020112.zip
  • zlib123-dll.zip
  • (*) GIMP 2.3.7 のコンパイルには新しいバージョンが必要。
  • (**) ランタイムエラーが表示されるならコンパイルし直す。
  • (***) 新たに mingw-runtime に添付されるようになりました。
    古い版は dirent 構造体の内容が異なるあるためインクルード検索パスにある場合は削除してください。

ライブラリのインストール


カレントを ${XLOCAL} に移し、次のコマンドを実行します。何も考えず解凍して大丈夫だったと思います。再確認してません。
for f in ${XGMPDEV}/*.zip; do unzip $f;done

pc ファイルの書き換え


${XLOCAL}/lib/pkgconfig 下の pc ファイルをバックアップし、 MinGW 環境用に書き換えます。

作業のためカレントを移動します。
cd ${XLOCAL}/lib/pkgconfig
バックアップ

サフィックスをつけてバックアップします。サフィックスは winorig です。配布物にサフィックスが orig のファイルが含まれているためこうしました。

winorig.sh
#!/bin/sh
suffix=".winorig"
for f in *.pc; do
  bk="${f}${suffix}"
  # test FILE exists and is a regular file
  if ( ! test -f ${bk} ); then
    echo ${f}
    mv ${f} ${bk}
  fi
done

実行します。
sh winorig.sh

ls で見てサフィックスが変更されていれば成功です。
書き換え

次に pc ファイルを変更します。 prefix の値を現在の環境に合わせます。 /opt/xmingw32/local の部分は ${XMINGW} で読み換えてください。

reppc.sh
#!/bin/sh
TARGET=/opt/xmingw32/local
for f in *.winorig; do
  if grep 'prefix=.*' $f >/dev/null 2>&1; then
    pc=`echo ${f}|sed s+.winorig++`
    cat $f | sed s+^prefix=.*+prefix=$TARGET+ > $pc
  fi
done

diff -u で比較し、 prefix の値が置き換わっていれば成功です。

次に pangoft2.pc の requires 行を確認します。 freetype2 がなければ追記します。
Requires: pango freetype2

pkg-config の list-all オプションで確認してみましょう。
${XMINGW}cross pkg-config --list-all

改行コードの変更とパーミッションの設定


freetype-config の改行コードを置き換えます。 CRLF だとシェルが CR を解釈しようとしてエラーにするので変更します。

${XLOCAL}/bin にカレントを移し、次のコマンドを実行します。
mv freetype-config freetype-config.winorig
perl -n -e 's/[\r\n]+$/\n/;print' freetype-config.orig > freetype-config

パーミッションを設定します。
chmod 755 freetype-config

実行してみます。
./freetype-config --help

ヘルプが表示されれば成功です。

アンインストール


新バージョンに置き換える場合などにインストール済みライブラリを削除します。

rm コマンドにアーカイブのファイル一覧を渡して削除します。ファイル一覧は zipinfo コマンドで取得します。
zipinfo -1 uninstall.zip

参考文献


MinGW クロスコンパイル環境と設定 で挙げた「win2linuxwiki - Info-クロスビルド環境の構築」のスクリプトを参考にしました。

更新履歴


2007/11/30fri dirent に関する追記。
2007/2/9fri ページの統合と新規作成。
2006/12/9sat アンインストールを記述。
2006/3/5sun ページ作成。