Help us understand the problem. What is going on with this article?

お手元のwindowsでソースコード解析ページ(htags)環境を構築する

概要

OSのソースコードを解析する際などに,GNU Globalを利用して,ソースコードの解析ページをブラウザで見るのが便利だったので利用していました.
しかし,会社だと勝手にWebサーバを立てるわけにもいかなかったので,ローカルマシン上に簡易にサーバ立てました.
そのときの方法をメモ程度に書きます.

環境

windows + Cygwin使います.
windows + MSYS使ってもできると思いますし,Unix系OSだとコンソール上で同様にできると思います.

構築

Cygwin上に必要なプログラムのインストール

パッケージのインストール

Cygwin上で以下のコマンドにより,必要パッケージをインストールします.

$ apt-cyg install perl tar gcc-core libncurses-devel make python

GNU Global

以下のURLから,最新のglobal(global-X.X.X.tar.gz)をダウンロードします.
http://www.gnu.org/software/global/download.html

Cygwin上で以下のコマンドを実行し,GNU Globalをインストールします.

$ tar zxf global-X.X.X.tar.gz
$ cd global-X.X.X
$ ./configure
$ make
$ make install

解析ページの作成

例として,Linuxのソースコードの解析ページを作ります.

解析したいソースコード入手

以下のURLから,Linuxのソースコード(linux-X.X.X.tar.xz)をダウンロードします.
https://www.kernel.org/

以下のコマンドを実行し,ソースコードを展開します.

$ xz -d linux-X.X.X.tar.xz
$ tar xf linux-X.X.X.tar

タグファイル,htmlファイルの作成

展開したソースコードのディレクトリ内で,以下のコマンドを実行します.(オプションは,お好みで)

$ cd linux-X.X.X
$ htags -afFIsngov --tabs 4 -t "Linux-X.X.X"

とか

$ cd linux-X.X.X
$ htags -afFsngovw --tabs 8

オプションは,お好みで

CGIプログラム実行の準備

CGIプログラムが実行できるように権限を付与します.

$ pwd
~/linux-X.X.X
$ chmod 755 HTML/cgi-bin
$ chmod 755 HTML/cgi-bin/*.cgi

Webサーバの立ち上げ

htags-severを使い,簡易にWebサーバを立ち上げます.

$ pwd
~/linux-X.X.X
$ htags-server

このコマンドは,Pythonを使って,簡易にWebサーバを立ち上げています.
python2.Xが使用されるのでインストールする必要がありますが,2.X系をインストールしたくない人は以下のコマンドで,Python3.X系を使用して実現することも可能です.

$ pwd
~/linux-X.X.X
$ cd HTML
$ python3 -m http.server --cgi

解析ページは,perlのCGIプログラムが実行されるのでcgiプログラムを実行できるようにする必要があります.
このため,CGIプログラムを実行したい場合,cgi-binディレクトリが存在するディレクトリ内でPythonのコマンドを実行する必要があります.htagsを実行したディレクトリにHTMLディレクトリが作成され,その直下にcgi-binディレクトリが作成されるので,HTMLディレクトリ内で上記のコマンドを実行します.

解析ページへのアクセス

ブラウザより,以下のページにアクセスし,解析ページが表示されれば成功です.

http://localhost:8000/

感想

Webサーバを使って環境を構築する場合と比較して,CGIプログラム実行の設定をする必要が無いのが楽でした.解析ページを見るのが自分だけなの場合などは,この方法で十分かな.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした