netpbmのWin32環境への移植
netpbmは、ソースコードをほとんど変更することなしに、Win32環境(Windows95/98/NT)で動作させることができます。
このためには、Cygnus Win32パッケージが必要です。このパッケージに含まれるgccによってnetpbmをコンパイルすれば、netpbmの実行ファイルを作成することができます。
以下、netpbmのWin32環境下でのコンパイルのポイントです。
変更をする場所
- libtiffのコンパイル
PATHにカレントディレクトリが入っていないと、mkg3statesの実行で失敗する。この場合には、手動で
mkg3states -c > g3states.h
を実行すること。
- random(), srandom()にまつわるトラブル
古いバージョンのCygnus Win32パッケージを使うと、srandom()、random()が定義されていないといわれて、コンパイルに失敗することがある。この場合には、random()をrand()、srandom()をsrand()として呼び出せるようにすればよい。例えば、インクルードファイルの先頭に、次の2行を書き込む。
#define random(x) rand(x)
#define srandom(x) srand(x)
- Makefile
トップディレクトリのMakefileはMakefile.stdを選択する。
ターゲットはSYSVとする。
起動シェルをを適切なシェルに変更する。(Makefile.std内のSHELL=を適切なファイル名にする。)
インストールオプションはall: binaries, install: install.bin, install.manを選択する。
- stamp-date
- 起動シェル
1行目を適当なシェルに変更する。もちろんBシェル系。
- whoami関連
Win32環境では意味を持たないので、コメントアウトする。
- pbm/libpbm1.c
#include を追加する。
- makeの実行
makeの実行には、--unixオプションが必要である。これがないと、サブシェルをうまく起動することができない。
make --unix -f Makefile.std