最終更新日:

KNOPPIX実験室


KNOPPIXにプログラムをインストールする

(その2) doxygenとgraphviz



1.graphvizについて 

graphvizは有向グラフを描くツールです。例えば、次のようなグラフを描いてくれます。

このグラフは、doxygenの特徴的なグラフの一つ、コラボレーション図の凡例として掲載されているものですが、graphvizに次のような定義ファイルを入力して描かせたものです。

digraph G
{
  edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10];
  node [fontname="Helvetica",fontsize=10,shape=record];
  Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",style="filled" fontcolor="white"];
  Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
  Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"];
  Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
  Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"];
  Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="Helvetica"];
  Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"];
  Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="Helvetica"];
  Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"];
  Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
  Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="grey75"];
  Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
  Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
  Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="Helvetica"];
  Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
  Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="Helvetica"];
  Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"];
}

このように、グラフの仕様をテキスト形式で記述するだけで簡単に有向グラフを生成できる便利なツールが、このgraphvizです。

2.doxygenについて 

doxygenはプログラム構造設計ドキュメントを自動生成するツールです。ソースプログラムを入力すると、そのソースプログラム中のコメントを頼りにプログラム構造設計ドキュメントを自動生成してくれるのですが、そのドキュメントの中にクラス継承関係図や関数呼び出し関係図などをgraphvizを使って描いて挿入してくれるのがdoxygenの大きな特徴になっています。

doxygenが自動生成してくれるドキュメントのサンプルはこちら

さらに、これをWindowsのHTMLヘルプ形式にまとめるための、HTML Help Workshopのプロジェクトファイルもdoxygenは作ってくれます。そのHTMLヘルプ形式のドキュメントのサンプルはこちら

より詳しいdoxygenの解説については、OKA Toshiyukiさんのページ「Doxygen を使おう」が良くまとまっているので、そちらを参照すると良いと思います。

このdoxygenは、開発はLinuxで行っているそうですが、Linux以外のUNIXや、Windows、Macでも使えるようになっています。私は、Windowsをメインで使っている関係でWindows版を使うことが多いのですが、実は、このWindows版の日本語機能には多少問題があるのです。私が最近参加したあるプロジェクトでは、かなり多くのモジュールがdoxygenに認識されませんでした。原因はまだ不明なのですが、文字コードの問題らしいことが分かっています。というのは、Linux上で文字コードをEUCに変換して処理させると正しく処理されますが、文字コードをシフトJISのままLinux上で処理させると、Windowsで実行したときと同じような結果になるからです。

幸いKNOPPIXの日本語文字コードはEUCです。graphvizとdoxygenをインストールしたKNOPPIXのカスタマイズ版があれば、この文字コードの問題を回避でき、便利に使えそうです。普段はWindows上で開発作業などを行っていたとしても、doxygenを使うときだけKNOPPIXを起動し、終わったら、再び、Windowsに戻って、HTML Help WorkshopでHTMLヘルプ形式にまとめるようにするわけです。


 

ここでは、このようなgraphvizとdoxygenについて、以下の点を説明します。

 

 

Howto5-3

doxygenをインストールする。

概要

graphvizはdebianパッケージも用意されているのですが、「apt-get install graphviz」を実行すると何故かエラーになることと、少々バージョンが古いことから、ここではtarファイルで提供されるソースパッケージをダウンロードし、コンパイルしてインストールすることにします。

インストール方法
  1. Howto5-1に従って継続的ホームディレクトリにプログラムをインストールできる環境を構築します。

    操作方法はHowto5-1のとおりなので省略します。すでに実行済みの場合は、必ずしも再実行する必要はありません。

  2. 「apt-get install doxygen doxygen-gui doxygen-doc」をsuモードで実行します。

    doxygenを使うだけなら、パッケージ「doxygen」だけインストールすれば使えます。「doxygen-gui」は、doxywizardという、doxygenのパラメータファイルdoxyfileを作成するGUIツールをインストールします。「doxygen-doc」はdoxygenの英文ドキュメントとサンプルをインストールします。

    参考のため、私の環境でこのapt-getを実行したときのログを以下に示します。

    root@ttyp0[lists]# apt-get install doxygen
    パッケージリストを読みこんでいます... 完了
    依存関係ツリーを作成しています... 完了
    提案パッケージ:
      doxygen-doc doxygen-gui graphviz
    推奨パッケージ:
      doxygen-docs
    以下のパッケージが新たにインストールされます:
      doxygen
    0 upgraded, 1 newly installed, 削除: 0 個、保留: 563 個
    1271kB のアーカイブを取得する必要があります。
    展開後に追加で 3682kB のディスク容量が消費されます。
    取得:1 ftp://ftp.jp.debian.org testing/main doxygen 1.3.6.20040222-0.1 [1271kB]
    1271kB を 28s で取得しました (44.5kB/s)
    未選択パッケージ doxygen を選択しています。
    (データベースを読み込んでいます... 現在 110526 個のファイルとディレクトリがインストールされています。)
    (.../doxygen_1.3.6.20040222-0.1_i386.deb から) doxygen を展開しています...
    doxygen (1.3.6.20040222-0.1) を設定しています ...
    root@ttyp0[lists]# apt-get install doxygen-doc doxygen-gui
    パッケージリストを読みこんでいます... 完了
    依存関係ツリーを作成しています... 完了
    以下のパッケージが新たにインストールされます:
      doxygen-doc doxygen-gui
    0 upgraded, 2 newly installed, 削除: 0 個、保留: 563 個
    838kB のアーカイブを取得する必要があります。
    展開後に追加で 3113kB のディスク容量が消費されます。
    取得:1 ftp://ftp.jp.debian.org testing/main doxygen-doc 1.3.6.20040222-0.1 [752kB]
    取得:2 ftp://ftp.jp.debian.org testing/main doxygen-gui 1.3.6.20040222-0.1 [85.5kB]
    838kB を 19s で取得しました (43.5kB/s)
    未選択パッケージ doxygen-doc を選択しています。
    (データベースを読み込んでいます... 現在 110537 個のファイルとディレクトリがインストールされています。)
    (.../doxygen-doc_1.3.6.20040222-0.1_all.deb から) doxygen-doc を展開しています...
    未選択パッケージ doxygen-gui を選択しています。
    (.../doxygen-gui_1.3.6.20040222-0.1_i386.deb から) doxygen-gui を展開しています...
    doxygen-doc (1.3.6.20040222-0.1) を設定しています ...
    
    doxygen-gui (1.3.6.20040222-0.1) を設定しています ...
    root@ttyp0[lists]# 

  3. KDEのapp-lnkがapt-getによって壊されるので、元に戻します。

    「doxygen-gui」をインストールすると、やはり、KDEのapp-lnkが壊されるので、これを元に戻すため、以下のようなコマンドを入力して実行します。(このコマンド列はKonquerorからKonsoleにコピー&貼り付けしてご利用いただけます。)

    $
    #
    #
    >
    >
    >
    #

    sudo -s
    cd /KNOPPIX
    find usr/share/applnk |
    while read path; do
        [ -f "/KNOPPIX/$path" ] && [ ! -f "/$path" ] && ln -sfn "/KNOPPIX/$path" "/$path"
    done

     

  4. graphvizをインストールします。

    インストール方法はHowto5-4を参照してください。

     

  5. doxygenとgraphvizの動作確認のため、簡単なサンプルでdoxygenを実行します。

    doxygenの実行は、通常は、次の手順で実行します。(説明中でリンクしている参考ファイルはすべてシフトJIS & CRLFに変換済です。)

    1. 実行対象のソースがWindows上のソースの場合は、FTPソフトなどを使ってコード変換(シフトJIS⇒EUC)と改行変換(CRLF⇒LF)を行ってKNOPPIXに転送します。
      この変換を「nkf  -de  <入力ファイル  >出力ファイル」コマンドで実行することもできます。
      (参考)ソース:MyDate.java

    2. 「doxywizard」コマンドを実行してdoxygenのパラメータファイルを作成します。このパラメータファイルのデフォルトのファイル名はdoxyfileですが、私は、doxygen.confという名前で保存しています。
      (参考)パラメータファイル:doxygen.conf

    3. doxygenを実行します。パラメータファイル名を指定するため、コマンドは「doxygen doxygen.conf」になります。
      (参考)実行したときのログファイル:doxygen.log

    4. doxygenの実行が終了すると、多数のHTMLファイル、グラフのPNGファイル、HTML Help Workshopのプロジェクトファイルなどが生成されています。
      (参考)HTML:index.html、HTML Help Workshopのプロジェクトファイル等:index.hhp, index.hhc, index.hhk

    5. 生成されたファイルをFTPソフトなどを使ってコード変換(EUC⇒シフトJIS)と改行変換(LF⇒CRLF)を行ってWindowsに転送します。ただし、PNGファイルはバイナリ転送します。
      この変換を「nkf  -cs  <入力ファイル  >出力ファイル」コマンドで実行することもできます。

    6. HTML Help Workshopを使って、多数のHTMLファイルとグラフのPNGファイルを1つのHTMLヘルプファイルにまとめます。
      (参考)HTMLヘルプファイル:sample.chm
      HTML Help Workshop(英語版(htmlhelp.exe)と日本語化キット(htmlhelpj.exe))は米国マイクロソフトのサイトから無償でダウンロードできます。英語版(htmlhelp.exe)をインストールしてから日本語化キット(htmlhelpj.exe)を上書きインストールすることで日本語版になったと思います。なお、インストールには注意事項があるので、英文の説明(特に「Notes」)は注意深くお読みください。
      最近は、Office XPリソースキットのページからもダウンロードできるようになったようです。ただ、こちらは解説こそ日本語に翻訳されていますが、ダウンロードされるファイルは英語版かもしれません。
      HTML Help Workshopの起動は、HTML Help Workshopのプロジェクトファイルindex.hhpをダブルクリックして起動します。

    参考のため、この手順でMyDate.javaのドキュメントを生成する以下のようなシェルスクリプトを作って実行してみました。

    #!/bin/bash
    cd
    DO rm -rf doxygen_sample
    DO mkdir doxygen_sample
    cd /cdrom/knoppix/dion/doxygen_sample
    for file in *.java *.conf; do
       DO "nkf -de <$file >~/doxygen_sample/$file"
    done
    cd
    cd doxygen_sample
    DO doxygen doxygen.conf
    find . |
    while read file; do
       if [ -d "$file" ]; then
          DO mkdir -p /cdrom/knoppix/dion/doxygen_sample/$file
       elif [ "$file" = "${file%.png}" ]; then
          DO "sed 's/charset=\"*euc-jp/charset=Shift_JIS/g' <$file | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/$file"
       else
          DO cp -p $file /cdrom/knoppix/dion/doxygen_sample/$file
       fi
    done

    このシェルスクリプトを実行したときのログを以下に示します。

    knoppix@ttyp1[knoppix]$ doxygen_sample.sh
    2004/05/02 02:19:23 $ rm -rf doxygen_sample
    2004/05/02 02:19:23 $ mkdir doxygen_sample
    2004/05/02 02:19:23 $ nkf -de <MyDate.java >~/doxygen_sample/MyDate.java
    2004/05/02 02:19:23 $ nkf -de <doxygen.conf >~/doxygen_sample/doxygen.conf
    2004/05/02 02:19:23 $ doxygen doxygen.conf
    Searching for include files...
    Searching for example files...
    Searching for images...
    Searching for dot files...
    Searching for files to exclude
    Reading input files...
    Reading and parsing tag files
    Preprocessing /home/knoppix/doxygen_sample/MyDate.java...
    Read 5338 bytes
    Parsing input...
    Parsing file /home/knoppix/doxygen_sample/MyDate.java...
    Freeing input...
    Building group list...
    Building namespace list...
    Building file list...
    Searching for included using directives...
    Building class list...
    Building example list...
    Searching for documented variables...
    Building member list...
    Searching for friends...
    Searching for documented defines...
    Computing template instances...
    Creating members for template instances...
    Computing class relations...
    Searching for enumerations...
    Searching for member function documentation...
    Searching for members imported via using declarations...
    Building page list...
    Search for main page...
    Sorting lists...
    Freeing entry tree
    Determining which enums are documented
    Computing member relations...
    Building full member lists recursively...
    Adding members to member groups.
    Computing member references...
    Inheriting documentation...
    Generating disk names...
    Adding source references...
    Adding todo/test/bug list items...
    Counting data structures...
    Resolving user defined references...
    Combining using relations...
    Finding anchors and sections in the documentation...
    Generating index page...
    Generating file index...
    Generating example documentation...
    Generating file sources...
    Generating code for file MyDate.java...
    Generating file documentation...
    Generating docs for file MyDate.java...
    Generating class documentation...
    Generating annotated compound index...
    Generating alphabetical compound index...
    Generating hierarchical class index...
    Generating member index...
    Generating docs for compound GregorianCalendar...
    Generating page documentation...
    Generating group documentation...
    Generating namespace index...
    Generating docs for namespace java::util
    Generating docs for namespace sample
    Generating docs for compound sample::MyDate...
    Generating call graph for function sample::MyDate::test
    Generating group index...
    Generating example index...
    Generating file member index...
    Generating namespace member index...
    Generating page index...
    Generating graph info page...
    Generating style sheet...
    Generating graphical class hierarchy...
    2004/05/02 02:19:25 $ mkdir -p /cdrom/knoppix/dion/doxygen_sample/.
    2004/05/02 02:19:25 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./MyDate.java | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./MyDate.java
    2004/05/02 02:19:25 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./doxygen.conf | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./doxygen.conf
    2004/05/02 02:19:25 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./warnings.log | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./warnings.log
    2004/05/02 02:19:25 $ mkdir -p /cdrom/knoppix/dion/doxygen_sample/./html
    2004/05/02 02:19:25 $ cp -p ./html/doxygen.png /cdrom/knoppix/dion/doxygen_sample/./html/doxygen.png
    2004/05/02 02:19:25 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/index.hhc | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/index.hhc
    2004/05/02 02:19:25 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/index.hhk | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/index.hhk
    2004/05/02 02:19:25 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/main.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/main.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/files.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/files.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/_my_date_8java-source.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/_my_date_8java-source.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/_my_date_8java.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/_my_date_8java.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/annotated.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/annotated.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classes.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classes.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/hierarchy.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/hierarchy.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/functions.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/functions.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/functions_func.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/functions_func.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/class_gregorian_calendar.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/class_gregorian_calendar.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/class_gregorian_calendar__inherit__graph.md5 | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/class_gregorian_calendar__inherit__graph.md5
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/namespaces.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/namespaces.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/namespacesample.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/namespacesample.html
    2004/05/02 02:19:26 $ cp -p ./html/class_gregorian_calendar__inherit__graph.png /cdrom/knoppix/dion/doxygen_sample/./html/class_gregorian_calendar__inherit__graph.png
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/class_gregorian_calendar__inherit__graph.map | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/class_gregorian_calendar__inherit__graph.map
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/namespacejava_1_1util.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/namespacejava_1_1util.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date.html
    2004/05/02 02:19:26 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date__inherit__graph.md5 | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date__inherit__graph.md5
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date__coll__graph.md5 | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date__coll__graph.md5
    2004/05/02 02:19:27 $ cp -p ./html/classsample_1_1_my_date__inherit__graph.png /cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date__inherit__graph.png
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date__inherit__graph.map | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date__inherit__graph.map
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date_h0_cgraph.md5 | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date_h0_cgraph.md5
    2004/05/02 02:19:27 $ cp -p ./html/classsample_1_1_my_date__coll__graph.png /cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date__coll__graph.png
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date__coll__graph.map | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date__coll__graph.map
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/doxygen.css | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/doxygen.css
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date-members.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date-members.html
    2004/05/02 02:19:27 $ cp -p ./html/classsample_1_1_my_date_h0_cgraph.png /cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date_h0_cgraph.png
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/classsample_1_1_my_date_h0_cgraph.map | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/classsample_1_1_my_date_h0_cgraph.map
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/graph_legend.dot | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/graph_legend.dot
    2004/05/02 02:19:27 $ cp -p ./html/graph_legend.png /cdrom/knoppix/dion/doxygen_sample/./html/graph_legend.png
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/graph_legend.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/graph_legend.html
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/inherits.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/inherits.html
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/inherit__graph__0.md5 | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/inherit__graph__0.md5
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/index.hhp | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/index.hhp
    2004/05/02 02:19:27 $ cp -p ./html/inherit__graph__0.png /cdrom/knoppix/dion/doxygen_sample/./html/inherit__graph__0.png
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/inherit__graph__0.map | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/inherit__graph__0.map
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/index.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/index.html
    2004/05/02 02:19:27 $ sed 's/charset="*euc-jp/charset=Shift_JIS/g' <./html/tree.html | nkf -cs >/cdrom/knoppix/dion/doxygen_sample/./html/tree.html
    2004/05/02 02:19:27 $ cp -p ./html/ftv2blank.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2blank.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2doc.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2doc.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2folderclosed.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2folderclosed.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2folderopen.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2folderopen.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2lastnode.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2lastnode.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2link.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2link.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2mlastnode.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2mlastnode.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2mnode.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2mnode.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2node.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2node.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2plastnode.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2plastnode.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2pnode.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2pnode.png
    2004/05/02 02:19:27 $ cp -p ./html/ftv2vertline.png /cdrom/knoppix/dion/doxygen_sample/./html/ftv2vertline.png
    knoppix@ttyp1[knoppix]$ 

     

Howto5-4

graphvizをインストールする。

概要

graphvizはdebianパッケージも用意されているのですが、「apt-get install graphviz」を実行すると何故かエラーになることと、少々バージョンが古いことから、ここではtarファイルで提供されるソースパッケージをダウンロードし、コンパイルしてインストールすることにします。

インストール方法

あらかじめgraphvizをダウンロードします。私は、ソースパッケージgraphviz-1.13.20040329.0515.tar.gzをダウンロードしました。

このソースをコンパイルしてインストールするには、以下のコマンドを実行します。(このコマンド列は手入力することをお勧めします。KonquerorからKonsoleにコピー&貼り付けすることもできますが、実行中にコンパイルエラーなどが発生すると、以降のコマンドが正しく処理されず、原因の調査が難しくなる場合があるためです。)

$
#
#
#
#
#
#

sudo  -s
tar  zxvf  graphviz-1.13.20040329.0515.tar.gz
cd  graphviz-1.13.20040329.0515
../configure
make
make  install

私の環境でこのコマンド列を実行したときのログ(zip圧縮済)はこちら