- 준비할 항목
wget http:
//llvm
.org
/releases/3
.9.0
/llvm-3
.9.0.src.
tar
.xz
wget http:
//llvm
.org
/releases/3
.9.0
/cfe-3
.9.0.src.
tar
.xz
wget http:
//llvm
.org
/releases/3
.9.0
/libcxx-3
.9.0.src.
tar
.xz
wget http:
//llvm
.org
/releases/3
.9.0
/libcxxabi-3
.9.0.src.
tar
.xz
unxz llvm-3.9.0.src.
tar
.xz
unxz cfe-3.9.0.src.
tar
.xz
unxz libcxx-3.9.0.src.
tar
.xz
unxz libcxxabi-3.9.0.src.
tar
.xz
tar
-xvf llvm-3.9.0.src.
tar
tar
-xvf cfe-3.9.0.src.
tar
tar
-xvf libcxx-3.9.0.src.
tar
tar
-xvf libcxxabi-3.9.0.src.
tar
# 아래에서 이 이름을 기준으로 빌드 방법을 설명할것이므로 변경하는게 좋음
mv
llvm-3.9.0.src llvm
mv
cfe-3.9.0.src clang
mv
libcxx-3.9.0.src libcxx
mv
libcxxabi-3.9.0.src libcxxabi
- llvm 빌드
mv clang ./llvm/tools
mkdir llvm.build
cd llvm.build
cmake -G
"Unix Makefiles"
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm
make
sudo make install
- libcxx, libcxxabi 빌드
# 1st round to build libcxx without libcxxabi
cd libcxx
mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
make
sudo make install
cd ..
rm tmp -rf
cd ..
# Build libcxxabi with libc++
cd libcxxabi
mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/include ..
make
sudo make install
cd ../..
# 2nd round to build libcxx with libcxxabi
cd libcxx
mkdir tmp
cd 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 ..
make
sudo make install