- 준비할 항목
wget http://llvm.org/releases/3.9.0/llvm-3.9.0.src.tar.xzwget http://llvm.org/releases/3.9.0/cfe-3.9.0.src.tar.xzwget http://llvm.org/releases/3.9.0/libcxx-3.9.0.src.tar.xzwget http://llvm.org/releases/3.9.0/libcxxabi-3.9.0.src.tar.xzunxz llvm-3.9.0.src.tar.xzunxz cfe-3.9.0.src.tar.xzunxz libcxx-3.9.0.src.tar.xzunxz libcxxabi-3.9.0.src.tar.xztar-xvf llvm-3.9.0.src.tartar-xvf cfe-3.9.0.src.tartar-xvf libcxx-3.9.0.src.tartar-xvf libcxxabi-3.9.0.src.tar# 아래에서 이 이름을 기준으로 빌드 방법을 설명할것이므로 변경하는게 좋음mvllvm-3.9.0.src llvmmvcfe-3.9.0.src clangmvlibcxx-3.9.0.src libcxxmvlibcxxabi-3.9.0.src libcxxabi
- llvm 빌드
mv clang ./llvm/toolsmkdir llvm.buildcd llvm.buildcmake -G"Unix Makefiles"-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ../llvmmakesudo make install
- libcxx, libcxxabi 빌드
# 1st round to build libcxx without libcxxabicd libcxxmkdir tmpcd tmpcmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..makesudo make installcd ..rm tmp -rfcd ..# Build libcxxabi with libc++cd libcxxabimkdir tmpcd tmpcmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/include ..makesudo make installcd ../..# 2nd round to build libcxx with libcxxabicd libcxxmkdir tmpcd tmp# This time, we want to compile libcxx with libcxxabi, so we have to specify LIBCXX_CXX_ABI=libcxxabi and the path to libcxxabi headers, LIBCXX_LIBCXXABI_INCLUDE_PATHS.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_CXX_ABI_INCLUDE_PATHS=../../libcxxabi/include ..makesudo make install