clangビルドメモ
Macでのclangのビルドとclangでlibc++を使うためのメモ(ほぼ本家に書かれている事)
LLVMとclangのファイルをSubversionリポジトリからtrunk版をチェックアウト(clangはLLVMのtoolsディレクトリの中で)
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
buildディレクトリを作って(場所や名前は適当でいいし、作らなくてもいい)、configure。
configureのオプションとして--enable_optimizedを付けておく(付けないとデバッグ版でビルドされる。すごく遅い。)
cd ../../
mkdir build
cd build
../llvm/configure --enable_optimized
あとはmake
make -j4
libc++は同じくSubversionリポジトリから拾ってくる
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
Mac OS X 10.6の場合、LLVMのlibc++本家(http://libcxx.llvm.org/)に
OS X 10.6で必要なファイル(cxxabi.h, libc++abi.dylib)が置かれているので
それを拾ってきて適切なディレクトリにコピー
sudo cp cxxabi.h /usr/include
sudo cp libc++abi.dylib /usr/lib
libcxxのlibディレクトリに移動して、TRIPLEという環境変数を設定し、./builditを実行
cd libcxx/lib
export TRIPLE=-apple-
./buildit
生成されたlibc++.1.dylibに/usr/lib/からリンクを付ける。名前はlibc++.dylib
sudo ln -sf path/to/libcxx/lib/libc++.1.dylib libc++.1.dylib
sudo ln -sf libc++.1.dylib libc++.dylib
同じくlibcxxのincludeにも/usr/includeからリンクを付ける。名前はv1
sudo ln -sf path/to/libcxx/include v1
あとはclang++のオプションにstdlib=libc++ -std=c++0xを付ければc++0xの機能が使える
OS X 10.6の場合は-U__STRICT_ANSI__を付けるといいと書いている
本家に書いてることそのままなので他のツール等の生成は試していない。libc++についてもLLVMビルドと同時に作成が可能かもしれない