nrf52dk-sys 0.1.1

nrf52 support using the nRF5-SDK and SoftDevice S132
FROM debian:jessie

# Install OS dependencies:
#   - curl/wget:        obtain other installers
#   - build-essential:  contains lots of useful tools
#   - git-core:         needed to pull project source
#   - software-prop...: needed to add clang repo
#   - libc6-dev-i386:   32 bit headers
RUN apt-get update && \
    apt-get install -y \
        wget \
        curl \
        build-essential \
        git-core \
        software-properties-common \
        libc6-dev-i386

# Install Clang v3.9 for bindgen
RUN add-apt-repository "deb http://apt.llvm.org/jessie/ llvm-toolchain-jessie-3.9 main" && \
    wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
    apt-get update && \
    apt-get install -y llvm-3.9-dev libclang-3.9-dev clang-3.9

# "Install" GCC6.1 arm-none-eabi
RUN wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/6_1-2017q1/gcc-arm-none-eabi-6-2017-q1-update-linux.tar.bz2 \
  -O /gcc.tar.bz2

RUN tar xf /gcc.tar.bz2
ENV PATH="/gcc-arm-none-eabi-6-2017-q1-update/bin:${PATH}"

# Install rust - todo, pin rust nightly version. Nightly required for embedded dev
#   last tested w/ "rustc 1.19.0-nightly (107bd67ef 2017-06-02)"
RUN curl https://sh.rustup.rs -sSf > install_rust.sh
RUN /bin/bash /install_rust.sh -y --default-toolchain nightly
ENV PATH="/root/.cargo/bin:${PATH}"

# Use Xargo for cross platform building - last tested w/ 0.3.8
RUN cargo install xargo

# Use Bindgen as a binary to generate headers - last tested w/ 0.25.3
RUN cargo install bindgen

# Add the rust-src component so we can build `core`
RUN rustup component add rust-src

# Pull down the latest code/submodules
RUN git clone --recursive https://github.com/jamesmunns/nrf52dk-sys

# Move to the git repo
WORKDIR /nrf52dk-sys

CMD ["xargo", "build", "--target", "thumbv7em-none-eabihf"]