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

Mac OS X に OpenGrok で、今日からコードリーディング

More than 5 years have passed since last update.

最近、FxOS コードリーディングというグループに入れて頂きました。そこで、いつも持ち歩いている MBA で Firefox OS のコードを読んで行きたい! ということで Mac OS X に OpenGrok をインストールしました。ここに手順をメモします。

必要なモノ

パッケージをダウンロードしたサイトと今回ダウンロードしたバージョンのファイルを記載します。

  • JDK 1.7 以上
  • Ant

    • JDK と Ant は元々入っていたものを使いましたが、OS X Lion (10.7) 以降はインストールが必要です。ここ (http://support.apple.com/kb/DL1572) で Java をインストールします。Ant も一緒にインストールされるそうです。
    • なお、ant のバージョンは 1.7.1 以上なら OK です。以下のコマンドで確認できます。
    $ ant -version
    
  • OpenGrok

  • Tomcat

  • JFlex

  • Exuberant ctags

Exuberant ctags のインストール

  • Exuberant ctags をビルドして、インストールします。

    $ tar xzf ctags-5.8.tar.gz
    $ cd ctags-5.8
    $ ./configure
    $ make
    $ sudo make install
    
  • /usr/local/bin/ctags にインストールされます。

OpenGrok のビルド

  • JFlex のコピー

    • 落としてきた Opengrok と JFlex を展開します。
    • JFlex.jar を opengrok-<version>-src/lib/ と /usr/share/ant/lib/ にコピーします。
    $ cp jflex-1.4.3/lib/JFlex.jar opengrok-0.11.1-src/lib/
    $ sudo cp jflex-1.4.3/lib/JFlex.jar /usr/share/ant/lib/
    
  • OpenGrok のビルド

    • ant で OpenGrok をビルドします。
    $ cd opengrok-0.11.1-src/lib/
    $ ant
    
    • dist/source.war が出来たことを確認します。
    $ ls -l dist/source.war
    

Tomcat の展開と OpenGrok のデプロイ

  • Tomcat を展開します。後々 Tomcat を運用するディレクトリになるので適切な場所に展開してください。ここでは OpenGrok と同じディレクトリに配置しています。
  • 環境変数で Exuberant ctags, Java, Tomcat のパスを指定するのが OSX へのインストールのキモです。(ここ以外は Linux の場合と同じです)

    $ tar xzf apache-tomcat-7.0.42.tar.gz
    $ 
    $ export EXUBERANT_CTAGS=/usr/local/bin/ctags
    $ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
    $ export OPENGROK_APP_SERVER="Tomcat"
    $ export OPENGROK_TOMCAT_BASE=`pwd`/apache-tomcat-7.0.42
    $
    $ cd opengrok-0.11.1-src/
    $ ./OpenGrok deploy
    

Tomcat の起動

  • Tomcat を起動します。

    ./apache-tomcat-7.0.42/bin/startup.sh
    
  • http://localhost:8080/source をブラウザを開いて、以下のような OpenGrok のページが開いていれば成功です。

    opengrok.jpg

インデックス作成

  • 見たいソースコードへのパスを指定して、インデックスを作成します。なお、デプロイ時に設定した環境変数はここでも必要です。 (-E は sudo で環境変数を引き継ぐために付けています)

    sudo -E opengrok-0.11.1-src/OpenGrok index ~/source/B2G
    
  • インデックスデータは /var/opengrok/data 以下に作成されます。

  • 大きなソースコードだと結構時間がかかります。

以上です。

(参考) Firefox OS のソース取得方法

申し訳程度ですが、Firefox OS のソースの取得方法も書いておきます。

git clone git://github.com/mozilla-b2g/B2G.git
cd B2G
./config.sh emulator
  • ビルドで生成される中間ソースコードもインデックス化しないとソースを追えないところが結構あるそうなので、ビルド後にインデックスを作ったほうが良さそうです。

  • ビルドに必要なソースを全部落としてくるのでちょっと時間がかかります。また、インデックス作成はさらに時間がかかるので、サブプロジェクトのディレクトリごとに必要に応じてインデックスを取るのがよさそうです。

  • "emulator" でなく実機にビルドしたい場合は、"./config.sh" だけで実行するとサポートされているデバイスの一覧が出てきますので、そちらから選んで指定して下さい。

  • ビルドについて、詳しくはこちらを参照して下さい: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS

Why do not you register as a user and use Qiita more conveniently?
  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
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