|
|
|
# Inspired by lucet's Dockerfile.
|
|
|
|
|
|
|
|
# using ubuntu 18 docker image
|
|
|
|
FROM ubuntu:focal
|
|
|
|
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
|
|
|
RUN apt-get update
|
|
|
|
|
|
|
|
# General GCC C/C++ Build toolchain
|
|
|
|
# pkg-config, libtool - used by PocketSphinx
|
|
|
|
# cmake - used by cmsis
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
automake \
|
|
|
|
build-essential \
|
|
|
|
binutils-dev \
|
|
|
|
cmake \
|
|
|
|
git \
|
|
|
|
libc++-dev \
|
|
|
|
libtinfo5 \
|
|
|
|
libtool \
|
|
|
|
pkg-config
|
|
|
|
|
|
|
|
# LLVM Tools
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
clang-8 \
|
|
|
|
clang-tools-8 \
|
|
|
|
llvm-8 \
|
|
|
|
llvm-8-dev \
|
|
|
|
libc++abi-dev \
|
|
|
|
lld-8 \
|
|
|
|
libclang-8-dev \
|
|
|
|
libclang-common-8-dev
|
|
|
|
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 100
|
|
|
|
RUN update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-8 100
|
|
|
|
|
|
|
|
# Test Script Stuff
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
curl \
|
|
|
|
imagemagick \
|
|
|
|
netpbm \
|
|
|
|
pango1.0-tools \
|
|
|
|
wamerican \
|
|
|
|
wget
|
|
|
|
|
|
|
|
# Interactive Tools
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
less \
|
|
|
|
lldb-8 \
|
|
|
|
strace \
|
|
|
|
vim
|
|
|
|
|
|
|
|
# SSL Stuff - What is this used for?
|
|
|
|
RUN apt-get install -y --no-install-recommends \
|
|
|
|
ca-certificates \
|
|
|
|
libssl-dev
|
|
|
|
|
|
|
|
# Rust
|
|
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --component rustfmt --target wasm32-wasi -y
|
|
|
|
ENV PATH=/root/.cargo/bin:$PATH
|
|
|
|
RUN cargo install --debug cargo-audit cargo-watch rsign2
|
|
|
|
|
|
|
|
# WASI-SDK
|
|
|
|
RUN curl -sS -L -O https://github.com/CraneStation/wasi-sdk/releases/download/wasi-sdk-7/wasi-sdk_7.0_amd64.deb && dpkg -i wasi-sdk_7.0_amd64.deb && rm -f wasi-sdk_7.0_amd64.deb
|
|
|
|
ENV WASI_SDK=/opt/wasi-sdk
|
|
|
|
|
|
|
|
ENV PATH=/opt/sledge/bin:$PATH
|
|
|
|
ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
|