SPRの日記(*BSDとかLinuxとかの覚え書き)

2007-01-12

[][]FreeBSDLinuxクロスコンパイル環境を作る(X + GTK2)・前編 07:26

FreeBSDで、Linux用のX及びGTK2プログラムをクロスコンパイルする環境を作るメモ。

とりあえず、Xのクロスコンパイル環境を作る手順を書く。


あらかじめ、Portsでemulators/linux_base-fc4とemulators/linux_dist-gentoo-stage3を入れて、/etc/rc.confに「linux_enable="YES"」と書いておく。

参考:http://d.hatena.ne.jp/SPR/20061203


以下作業手順。

Xのクロスコンパイル環境を作る

★準備

FreeBSDの/usr/ports/distfilesディレクトリから、下記のファイルを作業ディレクトリにコピーする。

無ければ、公式サイトやそのミラーサイトからダウンロードしてくる。

  • freetype-2.1.10.tar.bz2
  • fontconfig-2.3.2.tar.gz
  • fontconfig-2.3.2-noftinternals.patch
  • libdrm-2.0.2.tar.gz

ftp://ftp.gtk.org/pub/gtk/v2.10/dependencies/から、libpng-1.2.8.tar.bz2をダウンロードする。

GTK2をインストールするのに他のファイルも全部いるので、ついでにダウンロードする。


ftp://ftp.kddlabs.co.jp/pub/Linux/packages/fedora/core/4/i386/os/Fedora/RPMS/から、xorg-x11-devel-6.8.2-31.i386.rpmxorg-x11-libs-6.8.2-31.i386.rpmをダウンロードする。


インストール

linux_dist-gentoo-stage3環境にchrootする。

# mount_devfs devfs /usr/local/gentoo-stage3/dev
# chroot /usr/local/gentoo-stage3

  • freetype
  • fontconfig
  • libdrm
  • libpng

をこの順番で入れる。

基本はアーカイブを展開して、「./configure && make && make install」でいいが、fontconfigとlibpngは下記の手順でインストールする。


(fontconfig)
# tar xzvf fontconfig-2.3.2.tar.gz
# patch -p0 < fontconfig-2.3.2-noftinternals.patch
# cd fontconfig-2.3.2
# ./configure \
--with-expat-includes=/usr/inclulde \
--with-expat-lib=/usr/lib \
--with-default-fonts=/usr/X11R6/lib/X11/fonts \
--without-add-fonts \
--disable-docs
# make
# make install

(libpng)
# tar xjvf libpng-1.2.8.tar.bz2
# cd libpng-1.2.8
# make -f scripts/makefile.linux
# make -f scripts/makefile.linux install

FreeBSD環境に戻って下記コマンドを入れると、xorg-x11-develとxorg-x11-libsがインストールされる。

# cd /usr/local/gentoo-stage3
# rpm2cpio /適当なパス/xorg-x11-libs-6.8.2-31.i386.rpm | cpio -idv
# rpm2cpio /適当なパス/xorg-x11-devel-6.8.2-31.i386.rpm | cpio -idv

★設定

linux_dist-gentoo-stage3環境で下記コマンドを入れ、Xのライブラリを読み込む様にする。

「^D」は「CTRL + D」の意味。

# cat >> /etc/ld.so.conf
/usr/X11R6/lib
^D
# ldconfig

環境変数「PKG_CONFIG_PATH」を設定する。

export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig
Connection: close