globalを使いブラウザで快適にソースコードを読む

globalとは

globalはソースコードにタグ付けをして,大規模なプロジェクトを効率的にレビューすることができるソフトウェア.
カーネルソースコードのような大規模なものを読む時に非常に便利です.
HTMLファイルを生成しブラウザ上でソースコードを読めるようにもできます.
見た目はこんな感じ↓ f:id:horoama:20150516182457p:plain

導入方法

debianなら$ apt-get install globalで入ります.
centだとyumで入らないのでソースコードから入れましょうGetting GLOBAL
あと、fedoraだと$ yum install globalで入るようですね.
openSUSEでも$ zypper install globalでいけます.

使用方法

タグ付けしたいソースコードのディレクトリをsrcとして,以下のように使用します.

$ cd src
$ gtags
$ htags -anFf

gtagsコマンドでソース内のシンボルを収集してGTAGS, GRTAGS, GSYMS, GPATHに書き込みます.
つぎにhtagsコマンドでそれらからHTMLファイルを生成します.
htagsのそれぞれのオプションの意味は以下のとおりです.
とりあえず-anfFでいい感じの見た目でファイルが作成されるのでおすすめです.

  • -a
    アルファベット順に並んだの関数一覧を作成
  • -n
    行番号の付加
  • -F
    フレームを使用したページが作成される.これを外した時を試したことがないんですが,おそらく左側に出てる「DEFINITIONS」「FILES」があるかどうかの差だと思います.
  • -f
    検索フォームが作成されます.

gtags,htagsは時間がかかります.特にソースコードが大きいとかなり長時間になります.気長に待ちましょう.

htagsの実行が終わるとsrc直下にHTMLというディレクトリができます.
HTMLディレクトリ内にindex.htmlをブラウザで開いてみれば,とりあえずソースコードがいい感じに検索とかできそうなページが出ると思います.
しかし,この時点でできることは,ファイル名をクリックしてソースコードを見ることくらいで検索はできません。

HTTPサーバを立てる

ソースコード内を検索できるようにするにはcgiを実行させる必要があります.
そのためにHTTPサーバを立てましょう.
Apacheなりnginxなり何でもいいんでHTML内のcgi-bin内のglobal.cgiを実行されるように設定してください.
今回は細かい設定方法は省略します.手こずる場合はcgiの実行方法を調べてみてください.