1.安装cmake(必须要安装高版本,下载的源码包文件)
解压文件执行如下命令
./bootstrap (如果安转失败了,再重新装的时候就会失败,make clean或者直接重新解压)
make
sudo make install
2.安装ninja (http://blog.sina.com.cn/s/blog_6114e8c80101arpu.html)
git clone git://github.com/ninja-build/ninja.git
sudo apt-get install re2c
python ./bootstrap.py (或者直接执行./configure.py --bootstrap)
sudo cp ninja /usr/sbin/
sudo chmod a+rx /usr/sbin/ninja
上面两条语句具体复制到什么地方取决于CMakeCache.txt中类似于如下内容(详见https://stackoverflow.com/questions/46712234/get-cmakes-ninja-test-command)
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/sbin/ninja
3.编译LLVM
1) 下载zlib
http://zlib.net
下载后解压:
./configure
make
make check
sudo make install
2) sudo apt-get install binutils subversion
3) 搭建LLVM
下载llvm某一版本的包:我使用llvm 4.0/7.0,只有7.0(最新的stable,支持riscv)
LLVM source code
//放到tools
Clang source code
LLD Source code
//放到projects
libc++ source code
libc++abi source code
所有的包要去掉版本后缀,否则会出错
建立build目录(在llvm上级目录)
在build目录下,执行
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=RISCV -DLLVM_BUILD_EXAMPLES=ON LLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_LLD=ON ../llvm_4/
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=RISCV -DLLVM_BUILD_EXAMPLES=ON ../llvm/
make -j8