atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
ViVa! Saborigineer.
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
ViVa! Saborigineer.
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
ViVa! Saborigineer.
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • ViVa! Saborigineer.
  • クロスリファレンス

ViVa! Saborigineer.

クロスリファレンス

最終更新:2007年02月10日 22:15

saborigineer

- view
管理者のみ編集可

クロスリファレンス

    ソフトウェア開発において、スペックアウトやレビュー、バグ原因追跡のために膨大な量のソースコードを追うというのは大変な労力がかかります。

    「この関数どこで定義されてんだー!?」とか、「検索やgrepしてみたけど、ヒットしすぎてどれかわかんねぇ。・゜・ヽ(*゚∀゚)ノ・゜・」
    なんて方に最適なクロスリファレンスのご紹介です。


  • クロスリファレンス
  • LXR (Linux Cross Reference)
  • 筆者が試した環境
  • 必要なもの
  • 構築手順
  • クロスリファレンスの作成方法
  • 追伸


LXR (Linux Cross Reference)

    「クロスリファレンス」と呼ばれるツールは多々あれど、筆者的に一番しっくりきているのが「LXR」です。

    このツールはソースコードをブラウジングできるようにしてくれる。
    筆者もお仕事で使っていますが、プロジェクトメンバーからは概ね好評を得ています。

    このツールはLinuxカーネルのクロスリファレンスでも使われているし、Mozillaでも使われていたりします。
    英語圏ではメジャーなのかもしれませんが、日本語の説明サイトが見つからなかったので、筆者の経験をこのページに念写してみようと思ふ。

    (…README(英語)読めばいいだけなんだけどね。)



筆者が試した環境

  • Linux (CentOS)
  • apache
  • perl

必要なもの

  • lxr-0.3.1
    http://sourceforge.net/projects/lxr
    からダウンロード。
    ※開発中のver0.9xもありますが、ver0.31と利用方法が異なるため、ver0.9xを試したことはありません。

  • glimpse
    http://webglimpse.net/trial/glimpse-latest.tar.gz
    からダウンロード


構築手順

 1.LXRのディレクトリを決定する。
   例:「/var/www/html/lxr」

 2.apacheの設定(httpd.conf)にクロスリファレンスの設定を記述する。
   以下は変更例。

   --------- ここから
    #
    # DocumentRoot: The directory out of which you will serve your
    # documents. By default, all requests are taken from this directory, but
    # symbolic links and aliases may be used to point to other locations.
    #
    DocumentRoot "/var/www/html"    ←★DocumentRoot 「1.~」で決めたディレクトリ

    # Cross Reference          ←★クロスリファレンスの設定
    <Directory /var/www/html/lxr>
        Options All
        AllowOverride All
    </Directory>
   --------- ここまで

 3.LXRの環境構築
   ・lxr-0.3.1を適当な場所に展開し、Makefileの更新を行う。
    # tar zxvf lxr-0.3.1.tgz
    # vi Makefile

    --------- ここから
     # Makefile for installation and configuration of LXR

     # The location of your perl5 binary
     PERLBIN=/usr/bin/perl         ←★perlのパスを設定
     # LXR will be installed here
     INSTALLPREFIX=/var/www/html/lxr    ←★LXRのインストールディレクトリを設定
    --------- ここまで

   ・LXRをインストールする。(root権限)
    # make
    # make install
    これにより、「/var/www/html/lxr」にLXRがインストールされます。

   ・glimpseのインストール
    glimpse-latest.tar.gzを適当な場所に展開し、インストールします。
    # tar zxvf glimpse-latest.tar.gz
    # cd <展開してできたディレクトリ>
    # ./configure
    # make
    # make install
    注:環境(gccのバージョン依存?)により、glimpseをインストールできないことがあるかもしれませんが、
      インストールできなくともクロスリファレンスは作成できます。
      ただし、"freetext search"、"file search"の使用が制限されます。


   ・LXR設定ファイル(/var/www/html/lxr/http/lxr.conf)の更新
    利用環境に合わせて、設定を変更します。

    --------- ここから
     # Configuration file.

     # Define typed variable "v", read valueset from file.
     variable: v, Version, [/var/www/html/lxr/source/versions], [/var/www/html/lxr/source/defversion]
     ↑★バージョンによりソースを区別するファイルのパスの指定

     # Define typed variable "a".  First value is default.
     #variable: a, Architecture, (i386, alpha, m68k, mips, ppc, sparc, sparc64)
     ↑★アークテクチャでソースが変わる場合は、コメントアウト

     # Define the base url for the LXR files.
     baseurl: http:/xxx.xxx.xxc/lxr/http/source
     ↑★LXRのURL。環境に合わせて変更してください。

     # These are the templates for the HTML heading, directory listing and
     # footer, respectively.
     htmlhead: /var/www/html/lxr/http/template-head
     htmltail: /var/www/html/lxr/http/template-tail
     htmldir:  /var/www/html/lxr/http/template-dir
     ↑★templateファイルのディレクトリ

     # The source is here.
     sourceroot: /var/www/html/lxr/source/$v/source/
     srcrootname: Source
     ↑★ソースのrootディレクトリとその名前。ここでは「source」としています。
      ★変更したい場合は、○○の部分を変えてください。
      ★「$v」はバージョン名。ここでは意識する必要ありません。
      ★例:)sourceroot: /var/www/html/lxr/source/$v/○○/
      ★例:)srcrootname: ○○


     # "#include <foo.h>" is mapped to this directory (in the LXR source
     # tree)
     incprefix: /include

     # The database files go here.
     dbdir: /var/www/html/lxr/source/$v/
     ↑★クロスリファレンスのデータベース格納ディレクトリ

     # Glimpse can be found here.
     glimpsebin: /usr/local/bin/glimpse
     ↑★glimpseのパス。インストールしたパスに修正してください。

     # The power of regexps.  This is pretty Linux-specific, but quite
     # useful.  Tinker with it and see what it does.  (How's that for
     # documentation?)
     map: /include/asm[^\/]*/ /include/asm-$a/
     map: /arch/[^\/]+/ /arch/$a/
    --------- ここまで


   ・cgiを使用するため、lxr/http/に.htaccessを作成する。
    内容は以下の通り。

    --------- ここから
     <Files ~ (search|source|ident|diff|find)$>
     SetHandler cgi-script
     </Files>
    --------- ここまで


クロスリファレンスの作成方法

 ・lxr/sourceにソースファイルを展開する。
   このとき、lxr/source/バージョン名/sourceとなるようにする。
   lxr.confで変更した場合は、変更内容に合わせてください。
   このバージョン名が、LXRのWebページ上で表示されるバージョン名(※)となる。

   ※バージョン名には「_(アンダーバー)」等、使用できない文字があります。


 ・genxrefを使って、lxr/source/バージョン名/にデータベース(fileidx,xref)を作成する。
  データベースの作成にかかる時間はソースの規模によります。
   # cd /var/www/html/lxr/source/バージョン名/
   # ../../bin/genxref ./source

 ・fileidx、xrefのアクセス権の変更
   # chmod 644 fileidx xref

 ・"freetext search"、"file search"用のインデックスを作成する。
   # cd /var/www/html/lxr/source/バージョン名/
   # glimpseindex -H . source          ←★インデックスの作成
   # chmod 644 .glimpse_*            ←★インデックスファイルのパーミッション変更

 ・versionsにバージョン名を追加する。
  はじめての場合は、lxr/source/にversionsというファイルを作成する。
   # cd /var/www/html/lxr/source/
   # vi versions

  例えば、バージョン名を「lxr-sample」とした場合が以下の内容を記述する。
   --------- ここから
   lxr-sample    ←★今回追加分
   …        ←★別バージョンは羅列して書いていく
   --------- ここまで

 ・デフォルトのバージョン名を変更する場合は、defversionを変更する。
  はじめての場合は、lxr/source/にdefversionというファイルを作成する。
   --------- ここから
   lxr-sample    ←★当然だが、デフォルトバージョンは1つしか指定できない
   --------- ここまで

 以上でクロスリファレンスが作成される。
 http://~/lxr/http/source(lxr.confの設定)にアクセスすると、参照できると思います。


追伸

   LXR 0.9x系に詳しい方、構築方法教えてください。




タグ:

クロスリファレンス
「クロスリファレンス」をウィキ内検索
LINE
シェア
Tweet
ViVa! Saborigineer.
記事メニュー

Menu

  • トップページ

Main Contents

  • SoborigineerのTips
  • 日々の戯言


Other Contents

  • Link
  • プロフィール



Update History

取得中です。



  • @wiki

記事メニュー2
Today : -
Yesterday : -
Total : -


最近更新されたページ
  • 6668日前

    Eclipse
  • 6668日前

    EclipseでCUnit
  • 6668日前

    SoborigineerのTips
  • 6755日前

    日々の戯言/2007年02月18日
  • 6755日前

    日々の戯言/カテゴリ/ラーメン
  • 6755日前

    日々の戯言/2007年02月18日/屋台 味yoshi
  • 6760日前

    日々の戯言/2007年02月13日
  • 6760日前

    日々の戯言/カテゴリ/メイン
  • 6760日前

    日々の戯言/2007年02月13日/wiki & blog はじめました。
  • 6760日前

    メニュー
もっと見る
最近更新されたページ
  • 6668日前

    Eclipse
  • 6668日前

    EclipseでCUnit
  • 6668日前

    SoborigineerのTips
  • 6755日前

    日々の戯言/2007年02月18日
  • 6755日前

    日々の戯言/カテゴリ/ラーメン
  • 6755日前

    日々の戯言/2007年02月18日/屋台 味yoshi
  • 6760日前

    日々の戯言/2007年02月13日
  • 6760日前

    日々の戯言/カテゴリ/メイン
  • 6760日前

    日々の戯言/2007年02月13日/wiki & blog はじめました。
  • 6760日前

    メニュー
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. まどドラ攻略wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. Dark War Survival攻略
  6. 軍事・武器解説wiki
  7. ソードランページ @ 非公式wiki
  8. PEAK (landfall) 攻略 @ ウィキ
  9. 魔法少女ノ魔女裁判 攻略・考察Wiki
  10. シミュグラ2Wiki(Simulation Of Grand2)GTARP
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. モンスター烈伝オレカバトル2@wiki
  8. Abiotic Factor 日本語攻略Wiki
  9. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. Fate/Grand Order @wiki 【FGO】
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. ヴァン ダーマー - ストグラ まとめ @ウィキ
  2. 参加者一覧 - ストグラ まとめ @ウィキ
  3. MOZU - ストグラ まとめ @ウィキ
  4. 暦家 - ストグラ まとめ @ウィキ
  5. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  6. 上田さんのギャング(仮称) - ストグラ まとめ @ウィキ
  7. FOG - ストグラ まとめ @ウィキ
  8. ラーヴァ/ティアマト/アーチャー - Fate/Grand Order @wiki 【FGO】
  9. ギャング - ストグラ まとめ @ウィキ
  10. アプリコット - ストグラ まとめ @ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.