最近、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
- http://opengrok.github.io/OpenGrok/
- opengrok-0.11.1-src.tar.gz ("Source only" のパッケージを落とします)
-
Tomcat
- http://tomcat.apache.org
- apache-tomcat-7.0.42.tar.gz
-
JFlex
- http://jflex.de/
- jflex-1.4.3.tar.gz
-
Exuberant ctags
- http://ctags.sourceforge.net/
- sctags-5.8.tar.gz
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 のページが開いていれば成功です。
インデックス作成
-
見たいソースコードへのパスを指定して、インデックスを作成します。なお、デプロイ時に設定した環境変数はここでも必要です。 (-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