ビルド
外部パッケージ
完全なビルドには、別途入手する必要がある外部ライブラリが必要です。これらのほとんど、あるいは全てはオプションであり、外部ライブラリが見つからない場合、configureは機能が制限されたGraphvizをビルドします。これらのライブラリの新しいバージョンでも問題ありません。そうでない場合はお知らせください。
これらの外部ライブラリのリストは、Graphvizのソースダウンロードページにあります。
備考
- GD(PNG、GIF、JPEG用の汎用ラスターグラフィックドライバ)
- ZLIB(ラスター画像圧縮) 注:共有ライブラリをビルドするには
./configure -s
を使用します。(zlib-1.2.3/Makefile
の注記を参照)
これらのライブラリ(静的または動的)とそのインターフェースヘッダーファイルは、既にシステムに存在している必要があります。これらのパッケージの独自の複製をインストールしても問題ありませんが、makeまたはconfigureにそれらの場所を知らせる必要がある場合があります。詳細はconfigure --help
を実行してください。
ほとんどのLinuxディストリビューションでは、これらのパッケージは既にインストールされているか、ディストリビューションに含まれるパッケージからインストールできます。インクルードヘッダーファイルを取得するには、いくつかの-devel
パッケージをインストールする必要がある場合があります。また、これらのパッケージの中には他のパッケージを必要とするものもあるため、整合性を確保するために、rpmやmacportsなどの自動インストールメカニズムを使用するか、完全なパッケージを探してください。
ビルド手順(簡潔版)
ダウンロードしたソースパッケージからGraphvizをビルドする推奨方法は、通常の
./configure
make
make install
Gitソースからビルドする場合は、最新のlibtool
、libltdl-dev
、automake
、autoconf
、およびpkg-config
/pkgconf
が必要です。次のようにビルドします。
./autogen.sh
make
make install
autogen.sh
は、後で使用するように生成するconfigure
スクリプトと同じオプションを受け入れます。
ビルド手順(詳細版)
推奨される画像レンダラーはcairoで、フォントにはpangoのサポートがあります。これにより、さまざまなビットマップ形式だけでなく、svg、pdf、PostScriptも処理できます。
汎用ラスタードライバはgd
であり、GIF(非圧縮)、PNG(非可逆圧縮)、JPEG(可逆圧縮)、ワイヤレスビットマップ(WBMP)ファイルを生成するように構成できます。すべての圧縮器にはzlib
が必要です。現在のビルドでは、次のようなさまざまなシンボルを定義するトップレベルのconfig.h
ファイルを使用しています。
HAVE_JPEG
HAVE_PNG
このファイルは通常、呼び出し方法とシステムで見つかったものに基づいて、configureによって生成されます。
gd
ベースのドライバを有効にしない場合でも、GraphvizにはPostScriptおよびSVG用のprintf
スタイルのドライバが引き続きあります。(ただし、これらのドライバも、利用可能な場合、Freetypeによるより良いテキストサイズの推定から恩恵を受けます。)
Unix用ビルドツール
GNU autoconfによって生成されたconfigure
を使用します。これはソースパッケージに含まれています。これは、Tcl/Tk、freetype-devel、およびlibjpegがrootによって/usr
の下に既にインストールされている標準的なLinuxディストリビューションでうまく機能することがよくあります。他のバージョンのUnixでも問題なく動作しますが、configure
へのコマンドライン引数を調整する必要がある場合があります。Linuxの場合、こちらでソースターボールまたはRPMを選択することもできます。
まず、Gitからソースを使用している場合は、./autogen.sh
を実行してconfigure
スクリプトを生成します。graphviz-<version>.tar.gz
からのソースを使用している場合は、このautogen.sh
の手順は必要ありません。
次に、configureを実行します。可能なconfigureオプションについては、次を実行します。
./configure --help
たとえば、私は次を使用します。
./configure --prefix=$HOME/arch/sgi.mips3 \
--with-freetypeincludedir=$HOME/arch/$ARCH/include/freetype2 \
--with-freetypelibdir=$HOME/arch/$ARCH/lib \
--with-tcl=/usr/common/tcl8.3.3
明らかに、インストールを反映するようにパス名を変更する必要があります。
ディレクトリ${prefix}/include
はヘッダーが自動的に検索され、${prefix}/lib
はライブラリが自動的に検索されます。
オプションのスクリプト言語バインディングの1つまたは複数に問題がある場合、たとえば--disable-perl
を使用して無効にできます。
configureが完了すると、検出されたオプションのパッケージと有効になっているGraphvizの機能が報告されます。期待するパッケージまたは機能が使用されているとして表示されない場合は、config.logファイルまたはconfigure.acまたはconfigureファイルを確認して、何が間違っていたかを確認する必要があります。通常、環境変数またはconfigureのコマンドラインフラグを使用して、問題を解決できます。
configureが完了したら、次のようにしてビルドを完了します。
gmake
gmake install
Win32用ビルドツール
Microsoft Windowsについては、個別のビルドに関する備考を参照してください。
多少の努力をすれば、Microsoft WindowsにインストールされたUWINまたはCygwinでGraphvizをビルドできる可能性があります。すべてのGraphvizドライバを有効にするには、さまざまなサードパーティのパッケージが必要になります。
Unixプラットフォーム固有のビルドに関する備考
Apple Mac OS/X
現在、Glen LowはGraphvizのフル機能を備えたポートを提供しています。また、Ryan Schmidtはmacports用のGraphvizのバージョンを保守しています。
必要なサードパーティライブラリをインストールするには、macportsを使用することをお勧めします。これらがインストールされたら、configureとmakeを使用した標準的なビルドは正常に動作します。唯一の注意点は、場合によっては、必要なGNUバージョンではなく、非互換の非GNUツールが選択されることです。
OS X、Snow Leopard(Amanda Stent)のスマイナをコンパイルする
Xcode:
最初に、Leopardからアップデートした場合は、開発者ツールを再インストールする必要があります。回避策はありません。試しましたが、そうする必要があります。
Macports:
まず、Macportsのパッケージをすべてアンインストールし、クリーンアップする必要があります。この機会にMacports自体も再インストールしてください。Web上に移行手順がありますが、いくつかのリンク(例:hs-ports)が存在しないため、手順書よりも複雑で、手動で解決する必要のある問題が発生します。
簡単に言うと、Macportsをクリーンインストールするには、以下の手順を実行します。
sudo port -f uninstall installed
sudo port clean --work --archive all
and then new macports
and then sudo port install the things you need now
and possibly sudo port selfupdate and sudo port upgrade outdated at the end
次に、Smyrna、glut、gladeなど、およびそれらの依存関係に必要なツールをすべてインストールする必要があります。これは数日かかる場合があります。
Macportsはglutを個別にインストールしません。これはずる賢い方法で、glutのインストールを指示すると何かが起こりますが、実際にはglutは現在mesaに含まれています。これが混乱を招く原因となります。(glutの主要部分はmesaパッケージの一部です - 編注)
Graphviz:
次に、graphvizを入手し、`--with-smyrna` を指定して設定します。私は以下を使用しました。
configure --with-smyrna --with-glutincludedir=/opt/local/var/macports/software/mesa/7.6.1_1+hw_render/opt/local/include --with-glutlibdir=/opt/local/var/macports/software/mesa/7.6.1_1+hw_render/opt/local/lib --prefix=/usr/local/share/graphviz
私は以下を使用しています。
configure --with-smyrna --with-glutincludedir=/opt/local/include --with-glutlibdir=/opt/local/lib
Webサイトでは、gccに`-framework`コマンドラインオプションを使用するように記載されていますが、graphvizのMakefileとconfigureファイルでこれを機能させる方法がわかりませんでした。
ある時点で、権限に関するエラーメッセージが表示され、それ以上処理が進まなくなりました。そのため、ソースディレクトリで`chmod`コマンドを使用する必要があるかもしれません。
`gv_perl.cpp`のビルド中に処理が停止しました。最終的に、XSの呼び出しをXSPROTOに変更することでこれを回避しました。これにより、`XSUB.h`が不要になりました(これは何をするのでしょうか?何もしません!)。
ビルドが完了したと表示されましたが、実行しようとすると、`template.dot`というテンプレートファイルが見つからないというエラーが発生しました。そのため、`make clean`を実行し、混乱している今だからこそ、`make install`をもう一度実行します。
そして、動作するはずです!
ちなみに、こっそり`macosx`フォルダに移動し、OSに合わせたラベルの付いたMakefileを使用するという方法は、**機能しません**。
AIX
Matt Fagoによると、`--enable-shared=no`が必要である、そうでないと、一見正しくコンパイルされた後でも実行ファイルがセグメンテーション違反を起こすとのことです。(バグ #421)
Solaris
`/usr/ccs/bin`を`$PATH`に追加してください。
HP-UX
X11パッケージには、基本的なものに加えて`usr/contrib/X11R6`も含まれている必要があります。何らかの理由で、GNU autoconfはこの場所にあるX11を検出できないため、`./configure`行に以下を追加する必要がある場合があります。
--with-Xawincludedir=/usr/contrib/X11R6/include --with-Xawlibdir=/usr/contrib/X11R6/lib