■ kpathsea 3.2 の DLL化 先日 VFlib2.23をDLL化したらけっこう便利なので、kpathsea libraryも 同様にしました。これにより kpathsea対応の、つまり TeX の実行ファイルは のきなみファイルサイズが縮小しました。 ■ 使用法 kpathsea.dllを LIBPATH(in config.sys)に通ったところにおくだけです。 ■ 対応アプリ 私の web においてあるものでは現在のところ、 dvipsk 5.78 と関連ファイル (98/9/6版) ■ 今後の予定 <1> TeX/LaTeX/pTeX/pLaTeX の Web2c 7.2b版の実行ファイルは既に DLL版を メイクして使用しているので、近日中に web に置くつもりです。TeXシステム は大黒氏が用意してくれていますので、氏のところ(web)から入手したシステム ないしは OS2/Mag の CDROMから導入したシステムの同名のものに上書きして 問題ないはずです。 主な実行ファイルは次のようになります tex.exe, ptex.exe, pdftex.exe, kpsewhich.exe,bibtex.exe jbibtex.exe, mf.exe, mpost.exe .......... <2> xdvik 20c + 日本語パッチ これも既に kpathsea.dll 対応済ですので、近日中に入れ替えます。 ■ ソースのありか CTANにあります。 例えば ftp.riken.go.jp:/pub/tex-archive/ の systems/web2c/web2c-7.2b.tar.gz ------ TeX/LaTeX のソース dviware/xdvik/xdvik-20c.tar.gz ------ xdvikのソース dviware/dvipsk/dvipsk-5.78a.tar.gz --- dvipskのソース ■ ソースからつくるには emx/gccが動作していることはもちろん。 OS2.sedというので私はいつも configure を修正しています。AUTOCONFのOS/2 版も時には用いますが、TeX ではうまく動作しなかったです。 コンパイルには pdksh の sh.exe がいいと思います。bashのそれではうまく いかないことがあります。 これからの作業は、 シェルがpdkshとして話をすすめます。 1. OS2.sedを用いて configure 修正: emxとXFree86のあるところを自分用に修正 > cp configure configure.orig > sed -f OS2.sed configure.orig > configure 2. 環境変数設定 $ export CFLAGS='-O2 -m486 -DOS2 -D__EMX__ -Zcrtdll -s -Zmtd -D__ST_MT_ERRONO__ -Zomf ' $ export LDFLAGS='-Zomf -Zcrtdll -D__ST_MT_ERRONO__ -s' $ export SHELL=sh $ export IFS=';' $ export YACC='bison -y' $ export LN_S=cp $ export LN=cp 3. Makefile.inの修正: kpsewhich, accessなど実行ファイルに.exeを追加 4. configure実行 5. Makefile修正 i) CFLAGSに -Zomf, LDFLAGSに -Zcrtdll が入っているかなどチェック ii) オブジェクトファイルは .o から .obj に変更 kpathsea = $(kpathsea_dir)/libkpathsea.la を kpathsea = $(kpathsea_dir)/STATIC/libkpathsea.libに変更 .SUFFIXES: .c .o → .c .obj .c.o: → .c.obj iii) 実行ファイルの .exe を確認 iv) kpathsea.dll を自動的に作るために $(kpathsea): $(objects) klibtool.version --- a $(LIBTOOL) archive $(AR) $(ARFLAGS) $@ $(objects) -- b b の行を makelib.cmd としてそのバッチファイルの内容を cd STATIC make -f Makefile.dl とする。 そして、同梱の Makefile.dl と libkpathsea0.defを kpathsea/STATIC/ に置く。 6. c-auto.h修正: #define HAVE_UNISTD_H 0 とする 7. config.h修正: 以下のところから #endif までコメントアウト #ifdef OS2 #define access ln_access 8. Make !! うまくいかない時は、STATICディレクトリに入ってともかく *.lib,*.a,*.dll を作ってください。 1998/9/6 沢田石 順 jsawa@ibm.net http://www2s.biglobe.ne.jp/~vtgf3mpr/