続・clang(PPCでscan-build)

portsでインストールすることは出来るのだけど、調べてみたらこれバージョンが結構前のやつじゃない?ってことで、色々調べることに。
とりあえず、

sudo port uninstall llvm-devel +clang
sudo port clean llvm-devel
sudo port install llvm-gcc42

で、llvm-gcc42の新しいのに入れ替える。llvm-gccxcodeに入ってるっぽいからやらなくてもいいのかもしれない。
それが終わったらclangのページ(http://clang.llvm.org/get_started.html)を参考にsvnでソースを一式拾ってくる

cd 入れたい場所の親ディレクト
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm
./configure --enable-optimized; make
飯でも喰って待つ
cd tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd clang
make
また飯でも喰って待つ

これで完成。llvmさっきmakeしたじゃんって思うけどclangのbuild中にllvmのbuild時に作られるファイルを参照してんのでmakeしないといけない様子。
ただ、コレだけだとパスが通ってないんで

にパスを通してやる。make installでやるなら ./configure --prefix=インストール先 できっとできるんじゃない?やってないから判らないけど。
で、scan-buildやってみるのだけど scan-build -V -o ./check xcodebuild ってチェックするプロジェクトの「プロジェクトの設定を使用」の内容でビルドするらしく /Developer/usr/bin/arm-apple-darwin9-gcc-4.0.1 が見つからないって怒られる。
arm-apple-darwin9-gcc-4.0.1 はiPhone SDKについてくるんで ln -s でリンク作ってやる。
こんなことを scan-build を試し実行しながら必要なリンクをこしらえてやれば動くようにはなるはず。
あぁ、美しくないな。きっとこんなやり方じゃないよなぁ。
'iPhone Developer'がキーチェーンに入ってないよって言われる俺みたいな未だ野良な人はプロジェクトの設定でコード署名 IDを Don't Code Sign にしておけばOK。
(追記:2.0ならOKだけど2.1以降だと全然だめだった。Releaseのターゲットをシミュレータにしておくと2.1以降でも上手くいく)
上手くいったらscan-build -V -o ./check xcodebuildをaliasに追加しておくと便利なんじゃないかなと。