ビルド

外部パッケージ

完全なビルドには、別途入手する必要がある外部ライブラリが必要です。これらのほとんど、あるいは全てはオプションであり、外部ライブラリが見つからない場合、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ソースからビルドする場合は、最新のlibtoollibltdl-devautomakeautoconf、および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