FROM ubuntu:bionic # Prepare the build environment and dependencies RUN \ set -x && \ apt-get update && \ apt-get -y install software-properties-common && \ add-apt-repository ppa:team-gcc-arm-embedded/ppa && \ add-apt-repository ppa:jonathonf/tup && \ apt-get update && \ apt-get -y upgrade && \ apt-get -y install gcc-arm-embedded openocd tup python3.7 python3-yaml python3-jinja2 python3-jsonschema build-essential git time && \ # Build step below does not know about debian's python naming schemme ln -s /usr/bin/python3.7 /usr/bin/python && \ mkdir -p ODrive WORKDIR ODrive/Firmware # Must attach the firmware tree into the container CMD \ # Regenerate autogen/version.c mkdir -p autogen && \ python ../tools/odrive/version.py \ --output autogen/version.c && \ # Regenerate python interface python interface_generator_stub.py \ --definitions odrive-interface.yaml \ --template ../tools/enums_template.j2 \ --output ../tools/odrive/enums.py && \ python interface_generator_stub.py \ --definitions odrive-interface.yaml \ --template ../tools/arduino_enums_template.j2 \ --output ../Arduino/ODriveArduino/ODriveEnums.h && \ # Hack around Tup's dependency on FUSE tup init && \ tup generate build.sh && \ ./build.sh