追加ライブラリのビルド方法


はじめに

esオペレーティングシステムのアプリケーションプログラムではオープンソースコミュニティーで開発されているライブラリの利用も進めています。このページではesで利用している追加のランタイムライブラリの構築手順を説明します。

ソースコードの入手

esで利用している以下のライブラリ等のソースコードパッケージを入手してください。

ファイル 入手先 パッチ 内容
pcre-7.2.tar.gz http://www.pcre.org/ pcre-7.2.patch Perl 5と同じセマンティクスで正規表現によるパターンマッチングを行うためのライブラリです。es用のECMAScriptインタープリタ(esjs)でpcreを使用しています。
freetype-2.3.5.tar.gz http://www.freetype.org/ freetype-2.3.5.patch TrueTypeフォントなどをレンダリングするためのライブラリです。esのコンソールサービス(console.elf)で利用しています。
sazanami-20040629.tar.bz2 http://sourceforge.jp/projects/efont/   フリーのTrueTypeフォント(さざなみフォント)です。Fedora 7の場合、/usr/share/fonts/japanese/TrueType ディレクトリにインストールされています。esのコンソールサービスで利用しています。
expat-2.0.1.tar.gz http://expat.sourceforge.net/ expat-2.0.1.patch ストリーム指向のXMLパーサーライブラリです。次のfontconfigが利用しています。
fontconfig-2.4.2.tar.gz http://fontconfig.org/wiki/ fontconfig-2.4.2.patch フォント設定のためライブラリです。次のcairoが利用しています。
cairo-1.4.10.tar.gz http://cairographics.org/ cairo-1.4.10.patch 2Dグラフィックスライブラリです。esのコンソールサービス(console.elf)で利用しています。
liberation-fonts-ttf-3.tar.gz https://www.redhat.com/promo/fonts/   フリーのTrueTypeフォント(Liberationフォント)です。Fedora 7の場合、/usr/share/fonts/liberation ディレクトリにインストールされています。 esのコンソールサービスで利用しています。

入手できたら、パッケージを展開してください。

$ tar -zxvf pcre-7.2.tar.gz
$ tar -zxvf freetype-2.3.5.tar.gz
$ tar -zxvf expat-2.0.1.tar.gz
$ tar -zxvf fontconfig-2.4.2.tar.gz
$ tar -zxvf cairo-1.4.10.tar.gz

以下、ライブラリをビルドしていきますが、依存関係があるものがありますので、基本的に下記の順番でビルドを行ってください。

パッチ当て

esオペレーティングシステムのソースコード パッケージのpatchesディレクトリ内には、上記で入手したパーケージに適用する以下のパッチファイルが含まれてます。

ファイル 内容
pcre-7.2.patch pcre-7.2用のパッチファイル
freetype-2.3.5.patch freetype-2.3.5用のパッチファイル
expat-2.0.1.patch expat-2.0.1用のパッチファイル
fontconfig-2.4.2.patch fontconfig-2.4.2用のパッチファイル
cairo-1.4.10.patch cairo-1.4.10用のパッチファイル

tarコマンドを実行したのと同じディレクトリに上記のファイルをコピーして、以下のようにパッチを当ててください。

$ patch -p0 -d . < pcre-7.2.patch
$ patch -p0 -d . < freetype-2.3.5.patch
$ patch -p0 -d . < expat-2.0.1.patch
$ patch -p0 -d . < fontconfig-2.4.2.patch
$ patch -p0 -d . < cairo-1.4.10.patch

注) .patch ファイルは下記の手順で作成しています。

$ diff -bcrN pcre-7.2.org pcre-7.2 > pcre-7.2.patch
$ diff -bcrN freetype-2.3.5.org freetype-2.3.5 > freetype-2.3.5.patch
$ diff -bcrN expat-2.0.1.org expat-2.0.1 > expat-2.0.1.patch
$ diff -bcrN fontconfig-2.4.2.org fontconfig-2.4.2 > fontconfig-2.4.2.patch
$ diff -bcrN cairo-1.4.10.org cairo-1.4.10 > cairo-1.4.10.patch


注) 直接エディタで編集したファイルは以下のファイルです。

pcre-7.2/config.sub
pcre-7.2/pcretest.c

freetype-2.3.5/builds/unix/config.sub

pcreのビルド

pcre をビルドします。UTF8を有効にして静的ライブラリをビルドします。

$ cd
$ mkdir es-pcre
$ cd es-pcre
$ ../src/pcre-7.2/configure --disable-shared --enable-utf8 --enable-unicode-properties --prefix=/usr/local/es --host=i386-pc-es --target=i386-pc-es
$ make
$ sudo make install

FreeTypeのビルド

FreeType をビルドします。mmap()を使用するように、make行でFTSYS_SRCにunix用のftsystem.cを指定します(デフォルトではANSI Cの関数が使われるのでサイズの大きい漢字TrueTypeフォントの処理にかなり時間がかかります)。

$ cd
$ mkdir es-freetype
$ cd es-freetype
$ ../src/freetype-2.3.5/configure --prefix=/usr/local/es --host=i386-pc-es --target=i386-pc-es
$ make FTSYS_SRC=../src/freetype-2.3.5/builds/unix/ftsystem.c
$ sudo make install

Expatのビルド

Expatをビルドします。後でfontconfigをビルドするときに必要になります。

$ cd
$ mkdir es-expat
$ cd es-expat
$ ../src/expat-2.0.1/configure --prefix=/usr/local/es --host=i386-pc-es --target=i386-pc-es
$ make
$ sudo make install

Fontconfigのビルド

Fontconfigをビルドします。後でcairoをビルドするときに必要になります。expatを明示的に指定してビルドします。

$ cd
$ mkdir es-fontconfig
$ cd es-fontconfig
$ ../src/fontconfig-2.4.2/configure --prefix=/usr/local/es --host=i386-pc-es --target=i386-pc-es --with-arch=i386-pc-es --with-expat-includes=/usr/local/es/include --with-expat-lib=/usr/local/es/lib --program-prefix=i386-pc-es- --with-freetype-config=/usr/local/es/bin/freetype-config --with-default-fonts=/file/fonts --with-cache-dir=/file --with-confdir=/file
$ make
$ sudo make install

上記のconfigureでは下記の通りesを実行するPC実機上でのパスを指定しています。redhat社のLiberationフォントを利用するように設定したフォント設定ファイルのコピーがesのソースディレクトリinitの中にあります。

オプション 設定 説明
--with-default-fonts /file/fonts TrueTypeフォントなどのフォントファイルが格納されているディレクトリ。
--with-cache-dir /file フォントのキャッシュファイルが保存されるディレクトリ。
--with-confdir /file フォントの設定ファイル(fonts.confなど)が格納されているディレクトリ。

実際の実機上のディレクトリレイアウトについてはこちらを参考にしてください。

Cairoのビルド

Cairoをビルドします。CanvasRenderingContext2Dインターフェイスを実現するために利用しているライブラリです。

$ cd
$ mkdir es-cairo
$ cd es-cairo
$ ../src/cairo-1.4.10/configure --prefix=/usr/local/es --host=i386-pc-es --target=i386-pc-es --disable-png --disable-xlib --disable-ps --disable-svg FREETYPE_CFLAGS="-I/usr/local/es/include -I/usr/local/es/include/freetype2"
$ make
$ sudo make install

[esオペレーティングシステムのビルド方法に戻る]


Copyright © 2006, 2007
Nintendo Co,. Ltd.

Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Nintendo makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

SourceForge.jp