LoginSignup
0
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-11-29

概要

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ディレクトリ内で上記のコマンドを実行します.

解析ページへのアクセス

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

感想

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0