Building Ghostscript on Leopard
先日のエントリで、Mac OS X 10.5におけるteTeXのビルドについて記載しました。今回は、Ghostscriptのインストールについて記載します。
まずGhostscript本体と関連するフォント群を入手しましょう。私がインストールのために用いたtarボールと入手先は以下となります。
- ghostscript-8.60.tar.bz2
- Ghostscript: Ghostscript Website
- ghostscript-fonts-std-8.11.tar.gz
- SourceForge.net: Ghostscript fonts*1
- ghostscript-fonts-other-6.0.tar.gz
- CTAN: directory: /tex-archive/support/ghostscript/fonts
さて、多分に漏れず、Ghostscriptも各種ライブラリに強く依存します。しかし、面白いことに、Ghostscriptのパッケージは必須ライブラリをソースごと内包するスタイルを採用しており、最低限のビルドはGhostscriptのtarボールで完結するようになっています。内包されているライブラリは以下となります*2。
ghostscript +-- jpeg +-- zlib +-- libpng +-- ijs +-- jbig2dec `-- jasper
jpegやlibpng等は他のバイナリをビルドする際に多用されるでしょうし、私も自身のバイナリから頻繁に参照しているライブラリです。そのため、今回Ghostscriptをビルドするにあたり、まずそれらライブラリ群の最新版のビルドおよびインストールを行い、その後、Ghostscriptに極力それらを参照させるようにビルドする方針としました。
初めに、上記の方針に反する例を記載しておきます。まず、jasperに関して。Ghostscriptに内包されているjasperのソースコードは、Ghostscriptとの親和性および安定性を加味したパッチが当てられているもののようです。そのため、例外としてスキップします*3。
また、ijsおよびzlibに関しては、Ghostscriptのディレクトリ内にソースを配置しなければならないようです。ghostscript-8.60.tar.gzに内包されているijsは最新版であったため、今回は単体でのビルドをスキップします(ijsに興味のある方は、IJSを参照してください(最新版のtarボールは、ijs-0.35.tar.bz2))。しかし、zlibは他のバイナリをビルドする際に参照されることが多く、今回ビルドするlibpngおよびjbig2decからも参照されるため、最新版を入手し、ビルドおよびインストールを行うことにしました*4。
これらライブラリ間の依存関係を加味した上でまとめると以下なります。
ghostscript +-- jpeg 最新版を入手し、ビルド/インストールする。Ghostscriptには最新版を参照させる +-- zlib Ghostscriptのビルド時にソースを配置する必要がある。Ghostscriptには内包しているソースを参照させるが、他のバイナリからも多く参照されるため、別途最新版を入手し、ビルド/インストールする。 +-- libpng 最新版を入手し、ビルド/インストールする。Ghostscriptには最新版を参照させる | `-- zlib +-- ijs Ghostscriptのビルド時にソースを配置する必要がある。最新版が内包されているため、スキップする。 +-- jbig2dec 最新版を入手し、ビルド/インストールする。Ghostscriptには最新版を参照させる | +-- zlib | `-- libpng `-- jasper パッチの当たったソースが内包されている。スキップ。
さて、それではjpegのビルドから始めましょう。最新のjpegライブラリのtarボールは、Independent JPEG Groupから入手可能です(jpegsrc.v6b.tar.gz)。
> tar zxvf jpegsrc.v6b.tar.gz > cd jpeg-6b > ./configure > make > sudo make install-lib install-headers
jpegのインストールは以上で終了です。注意すべき点として、makeのターゲット群としてinstall-libおよびinstall-headersを指定しなければならないことを挙げておきます*5。
libpngおよびjbig2decはzlibに依存しているため、次にzlibのビルドをします。tarボールの入手先はzlib Home Siteとなります(zlib-1.2.3.tar.bz2)。今回はスタティックおよびダイナミックの双方のライブラリを作成しました(Mac OS Xでは、libz.aおよびlibz.dylib(libz.1.2.3.dylib)となります)。
> bzcat zlib-1.2.3.tar.bz2 | tar xvf - > cd zlib-1.2.3 > ./configure > make > sudo make install > make distclean > ./configure --shared > make > sudo make install
次にlibpngのビルドです。tarボールの入手先は、libpng.org: top levelになります(libpng-1.2.22.tar.bz2)。
> bzcat libpng-1.2.22.tar.bz2 | tar xvf - > cd libpng-1.2.22 > ./configure > make > sudo make install
最後にjbig2decです。jbig2decも、zlibおよびlibpngに依存しています*6。tarボールは、jbig2decから入手可能です(jbig2dec-0.9.tar.bz2)。
> bzcat jbig2dec-0.9.tar.bz2 > cd jbig2dec-0.9 > ./configure > make > sudo make install
さて、各々最新版のライブラリ群の準備が終了しました。早速Ghostscriptのビルドに取りかかりましょう。まず、tarボールを展開します。
> bzcat ghostscript-8.60.tar.bz2 | tar xvf -
ghostscript-8.60ディレクトリの内容は、以下のようになっています。
> cd ghostscript-8.60 > ls -F LICENSE configure.ac@ icclib/ jpeg/ toolbin/ Makefile.in@ contrib/ ijs/ lib/ zlib/ Resource/ cups/ imdi/ libpng/ autogen.sh* doc/ jasper/ man/ configure* examples/ jbig2dec/ src/
ijs、jasper、jbig2dec、jpeg、libpngおよびzlibがそれぞれ内包されているライブラリのソースディレクトリとなります。前述したように、この中からijs、jasperおよびzlibを除くディレクトリを削除します。
> rm -r jbig2dec jpeg libpng
以上で、Ghostscriptのビルドの準備が整いました。早速ビルドしましょう。
> ./configure > make > sudo make install
最後に、Ghostscriptのフォントをインストールします。フォント群のtarボールはfontsディレクトリ以下に展開されます。これらを/usr/local/share/ghostscriptディレクトリ以下に配置します。
> sudo tar zxvf ghostscript-fonts-std-8.11.tar.gz -C /usr/local/share/ghostscript > sudo tar zxvf ghostscript-fonts-other-6.0.tar.gz -C /usr/local/share/ghostscript
上記でGhostscriptのインストールは終了です。Ghostscriptのインストール行程をまとめると以下となります。
> ls ghostscript-8.60.tar.bz2 ghostscript-fonts-std-8.11.tar.gz ghostscript-fonts-other-6.0.tar.gz > bzcat ghostscript-8.60.tar.bz2 | tar xvf - > cd ghostscript-8.60 > rm -r jbig2dec jpeg libpng > ./configure > make > sudo make install > cd .. > sudo tar zxvf ghostscript-fonts-std-8.11.tar.gz -C /usr/local/share/ghostscript > sudo tar zxvf ghostscript-fonts-other-6.0.tar.gz -C /usr/local/share/ghostscript
まとめ
- Ghostscriptのtarボールには依存するライブラリのソースが内包している
- それぞれ最新版のライブラリを参照させることも可能
今回ダウンロードしたtarボールと入手先を再度まとめると以下になります。
- ghostscript-8.60.tar.bz2
- Ghostscript: Ghostscript Website
- ghostscript-fonts-std-8.11.tar.gz
- SourceForge.net: Ghostscript fonts
- ghostscript-fonts-other-6.0.tar.gz
- CTAN: directory: /tex-archive/support/ghostscript/fonts
- jpegsrc.v6b.tar.gz
- Independent JPEG Group
- zlib-1.2.3.tar.bz2
- zlib Home Site
- libpng-1.2.22.tar.bz2
- libpng.org: top level
- ijs-0.35.tar.bz2
- IJS
- jbig2dec-0.9.tar.bz2
- jbig2dec
先日および今回のエントリにて、Mac OS X 10.5におけるteTeXおよびGhostscriptのビルドについて記載しました。
私感では、gnuplotで作成したグラフをpngとして出力する場合、レンダリングの美麗さから、dvipngを用いた結果が最良でした。今回ビルドしたGhostscriptはそのdvipngから使用されています。
多少エントリの順が前後するかとは思いますが、近いうちにdvipngのビルドについて記載する予定です。