|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +help() { |
| 4 | + echo "Usage:" |
| 5 | + echo "install.sh [-g] [-c]" |
| 6 | + echo "Description:" |
| 7 | + echo "-g: Install gtkwave." |
| 8 | + echo "-c: Install mill for Chisel env." |
| 9 | + exit 0 |
| 10 | +} |
| 11 | + |
| 12 | +while getopts 'hgc' OPT; do |
| 13 | + case $OPT in |
| 14 | + h) help;; |
| 15 | + g) GTKWAVE="true";; |
| 16 | + c) CHISEL="true";; |
| 17 | + ?) help;; |
| 18 | + esac |
| 19 | +done |
| 20 | + |
| 21 | +if !(cat /etc/*release | grep 'Ubuntu 20.04'); then |
| 22 | + echo "Your Linux branch does not meet the requirements, please use Ubuntu 20.04." |
| 23 | + exit 1 |
| 24 | +fi |
| 25 | + |
| 26 | +UPDATED="false" |
| 27 | +install_package() { |
| 28 | + for package in $* |
| 29 | + do |
| 30 | + dpkg -s "$package" >/dev/null 2>&1 && { |
| 31 | + echo "$package has been installed." |
| 32 | + } || { |
| 33 | + if [[ $UPDATED == "false" ]]; then |
| 34 | + UPDATED="true" |
| 35 | + sudo apt-get update |
| 36 | + fi |
| 37 | + sudo apt-get --yes install $package |
| 38 | + } |
| 39 | + done |
| 40 | +} |
| 41 | + |
| 42 | +install_verilator() { |
| 43 | + ubt20_64_package_list=("git" "perl" "python3" "make" "g++" "libfl2" "libfl-dev" "zlibc" "zlib1g" "zlib1g-dev" "ccache" "libgoogle-perftools-dev" "numactl" "perl-doc") |
| 44 | + for package in ${ubt20_64_package_list[@]} ; do |
| 45 | + install_package $package |
| 46 | + done |
| 47 | + |
| 48 | + dpkg -s verilator >/dev/null 2>&1 && { |
| 49 | + echo "verilator has been installed." |
| 50 | + } || { |
| 51 | + wget -O /tmp/verilator_4_204_amd64.deb https://gitee.com/oscpu/install/attach_files/817254/download/verilator_4_204_amd64.deb |
| 52 | + sudo dpkg -i /tmp/verilator_4_204_amd64.deb |
| 53 | + rm /tmp/verilator_4_204_amd64.deb |
| 54 | + } |
| 55 | +} |
| 56 | + |
| 57 | +install_mill() { |
| 58 | + install_package curl |
| 59 | + install_package default-jre |
| 60 | + |
| 61 | + which mill >/dev/null 2>&1 && { |
| 62 | + echo "mill has been installed." |
| 63 | + } || { |
| 64 | + sudo mkdir /usr/local/bin >/dev/null 2>&1 |
| 65 | + wget -O /tmp/mill https://gitee.com/oscpu/install/raw/master/mill |
| 66 | + sudo chmod +x /tmp/mill |
| 67 | + sudo mv /tmp/mill /usr/local/bin/ |
| 68 | + } |
| 69 | +} |
| 70 | + |
| 71 | +install_verilator |
| 72 | + |
| 73 | +# install libsqlite3-dev for difftest |
| 74 | +install_package libsqlite3-dev |
| 75 | +# install libreadline-dev libsdl2-dev bison for NEMU |
| 76 | +install_package libreadline-dev libsdl2-dev bison |
| 77 | +# install cmake for DRAMsim3 |
| 78 | +install_package cmake |
| 79 | + |
| 80 | +[[ $GTKWAVE == "true" ]] && install_package gtkwave libcanberra-gtk-module |
| 81 | +[[ $CHISEL == "true" ]] && install_mill |
| 82 | + |
| 83 | +echo "finish!" |
0 commit comments