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ビルドと同時に作成が可能かもしれない