1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/env bash
- set -e
- interactive_pkgs=libsdl2-dev
- y=''
- while getopts t OPT; do
- case "$OPT" in
- t)
- interactive_pkgs=''
- y='-y'
- ;;
- esac
- done
- shift $(($OPTIND - 1))
- (
- set -e
- # Shallow clonning saves a considerable ammount of time, specially because of the linux kernel.
- # However, git submodules are buggy as usual, and this is the best way i've found to get it done:
- # https://stackoverflow.com/questions/2144406/git-shallow-submodules/47374702#47374702
- # In particular:
- # - `shallow = true` on the submodule has no effect for the non default educational branches of our submodules
- # - QEMU's submodules point to commits that are neither under branches nor tags, and so `--shallow-submodules` fails
- git submodule update --depth 1 --jobs 4 --init
- cd qemu
- git submodule update --init
- ) &
- wait $! || git submodule update --init
- pkgs="\
- automake \
- build-essential \
- coreutils \
- "
- # GEM5
- pkgs="$pkgs \
- g++-6 \
- gcc-6 \
- gcc-aarch64-linux-gnu \
- gcc-arm-linux-gnueabi \
- libgoogle-perftools-dev \
- protobuf-compiler \
- "
- command -v apt-get >/dev/null 2>&1 || {
- cat <<EOF
- apt-get not found. You're on your own for installing dependencies.
- On Ubuntu they are:
- $pkgs
- EOF
- exit 0
- }
- # Without this started failing in kernel 4.15 with:
- # Makefile:932: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop.
- pkgs="$pkgs libelf-dev"
- sudo apt-get update $y
- # Building SDL for QEMU in Buildroot was rejected upstream because it adds many dependencies:
- # https://patchwork.ozlabs.org/patch/770684/
- # We are just using the host SDL for now, if it causes too much problems we might remove it.
- # libsdl2-dev needs to be installed separatedly from sudo apt-get build-dep qemu
- # because Ubuntu 16.04's QEMU uses SDL 1.
- sudo apt-get install $y \
- $pkgs \
- $interactive_pkgs \
- ;
- sudo apt-get build-dep $y qemu
|