パスワードを忘れた? アカウント作成
684533 journal

nekoie02の日記: -

日記 by nekoie02

2003-04-04

* sv.tir.ne.jp: gdその他
何時の間にやらgdの2.0系がstableになっていたので、入れ替えてみる事に。
ついでにlibpng, freetypeも再構築してみた。

* sv.tir.ne.jp: libpng-1.2.5
tar xvfy libpng-1.2.5.tar.bz2
cd libpng-1.2.5
cp scripts/makefile.linux Makefile
vim Makefile
以下のように書き換えた。
- prefix=/usr
- ZLIBLIB=/usr/lib
- ZLIBINC=/usr/include
- ALIGN=-malign-loops=2 -malign-functions=2
- CFLAGS=-I$(ZLIBINC) -Wall -O3 -march=i686 -funroll-loops $(ALIGN)

make all
make test
su
make install
make install-headers
ldconfig -v

Makefileを見ると、make install-headersをしないと、
*.hファイルがincludeにインストールされないようだ。
昔にコレで困ったような気がするが、気のせいかもしれない。
とにかく、インストールしておいた。

* sv.tir.ne.jp: freetype-1.3.1
過去のGD.pmでは、freetypeの1系がインストールされていないと、
2系しか使わなくても、インストール時にエラーになるというバグがあった。
ので、念の為1系もインストール。

tar xvfz freetype-1.3.1.tar.gz
cd freetype-1.3.1
CFLAGS="-Os -march=i686" CXXFLAGS="-Os -march=i686" ./configure --prefix=/usr --disable-nls
make
su
make install
ldconfig -v

* sv.tir.ne.jp: freetype-2.1.4rc2
tar xvfy freetype-2.1.4rc2.tar.bz2
cd freetype-2.1.4rc2
ダイナフォント利用可能パッチを当てる。
(http://www.kde.gr.jp/~akito/patch/ で配布している)
patch -p1 -i ../freetype-2.1.1-ttcmap4.patch
バイトコードインタプリタ機能をオンにする。
vim include/freetype/config/ftoption.h
- #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER

CFLAGS="-Os -march=i686" CXXFLAGS="-Os -march=i686" ./configure --prefix=/usr --disable-nls
make
su
make install
ldconfig -v

* sv.tir.ne.jp: gd-2.0.12
tar xvfz gd-2.0.12.tar.gz
cd gd-2.0.12
CFLAGS="-Os -march=i686 -DJISX0208" ./configure --prefix=/usr --disable-nls --with-png=/usr --with-freetype=/usr --with-jpeg=/usr --without-xpm
make all
su
make install
ldconfig -v

引き続き、cpanからGDモジュールをもらってくる。
/usr/local/perl580/bin/perl -MCPAN -e shell
install GD
エラーが出る。調査。
look GD
いろいろ調べてみたものの、原因は不明。
途中で、
Warning: prerequisite Math::Trig 1 not found.
と出ていたのが気になるが、Math::Trigは既に入っている様子。
諦めて、そのままmake install。

とりあえず、大昔に作ったwc.cgiが動作するか確認してみる。
http://www.tir.ne.jp/~nekoie/wc/wc.cgi
http://www.tir.ne.jp/~nekoie/wc/wc.txt
少し修正して動いた。
ただ、gdのせいかfreetypeのせいかは分からないが、昔から、
半角英数も全角漢字も同じ幅で表示されてしまう。つまり、
半角英数表示時に、文字と文字の隙間が異様に大きい。
これでは見栄えが悪いので、何とかしたいが‥‥。
・gd, freetype, GD.pmの該当部分を調べ、修正。
・文字列表示のstringFTメソッドに直接文字列を渡さずに、
 自力で文字幅等を調べて、一文字ずつ渡すようにするラッパーを
 自作する。
どっちも面倒だが、二番目の方がまだ楽な気がする。

しかし、面倒なので、作られないだろう。きっと。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...