はじめに
チャオ(こんにちは)、Python界のザッカーバーグです。最近「ソーシャル・ネットワーク」とかいう映画が流行ってるそうですね。僕も刺激されたのでFacebookが開発したソースコード解析ツールのpfffを試してみました。Python Hackathon 2011.02で紹介させてもらいましたが、何回かに分けてご紹介していこうと思います。
訂正:発表時点ではMac OSでビルドできませんでしたが、怒涛のアップデートによりビルド出来るようになりました
参考
環境
コンパイルには最低限これらが必要。あと細々した物もいるけど多分入ってると思う。configureでエラー出たら探せばいいと思います。make入ってない人はこの記事見ないと思うのでその辺は省略。
- OCaml >=3.11.0 (3.11.2がいいです)
- make
- PCRE
- pkg-config
OCaml
OCamlは3.11.0以上が必要だとのこと。まあ素晴らしい言語なのでとりあえず枯れてる3.11.2を入れましょう。OCamlのインストールに関しては下記リンクのエントリを参照。まあconfigureしてmakeするだけの簡単なお仕事です。
$ curl -O http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.2.tar.gz $ tar xzf ocaml-3.11.2.tar.gz $ cd ocaml-3.11.2 $ ./configure $ make world.opt $ sudo umask 022 $ sudo make install
依存パッケージ
MacPortsなら下記のパッケージを追加します。
$ sudo port install pcre cairo gtk2
Ubuntuならapt-getでPCREとかGTK2+とかいくつか入れます。(install_linux.txt参照)
$ sudo apt-get install libpcre3-dev libgtk2.0-dev libcairo2-dev libpango1.0-dev
ビルド
以上が入っていればすごく簡単。./configure && make depend && make でおしまい。
$ cd pfff $ ./configure $ make depend $ make
さらにバイナリコンパイルしたかったらmake optして、インストールはmake installで。
$ make opt $ make install
これでエラーもなく以下のファイルが生成されていたら大丈夫。
- sgrep
- stags
- spatch
- scheck
- codemap
- pfff
- pfff_db
次回は使い方とかご紹介。
おまけ
OCamlは"wonderfuul language"という注釈付き。こういうところはおちゃめだな。
$ ./configure --prefix=/opt/local/ Checking your configuration. OCaml (the wonderful language) is present. make (gnu version) is present. PCRE is present.
おまけ2
PCREがなくてコンパイル失敗したときのログ。ここで「pfff-dependencies.tgzがpfffのWebサイトから取得できる!」って言ってるけどどこ探しても見当たりません。
... ---------------------------------------------------------------------- !!!! You can try to compile and test pfff, but some features or plugins may be missing. !!!! We have found 1 missing package. This package may be installed by picking it in pfff-dependencies.tgz available on the pfff website. ...