60 lines
2.0 KiB
Bash
60 lines
2.0 KiB
Bash
|
#!/bin/bash
|
||
|
# -----------------------------------------------------------------------------
|
||
|
# on-create.sh: postCreateCommand-hook for devcontainer.json (Cortex-M build)
|
||
|
#
|
||
|
# Author: Bernhard Bablok
|
||
|
#
|
||
|
# -----------------------------------------------------------------------------
|
||
|
|
||
|
echo -e "[on-create.sh] downloading and installing gcc-arm-non-eabi toolchain"
|
||
|
cd /workspaces
|
||
|
wget -qO gcc-arm-none-eabi.tar.bz2 https://adafru.it/Pid
|
||
|
tar -xjf gcc-arm-none-eabi.tar.bz2
|
||
|
ln -s gcc-arm-none-eabi-10-2020-q4-major gcc-arm-none-eabi
|
||
|
rm -f /workspaces/gcc-arm-none-eabi.tar.bz2
|
||
|
export PATH=/workspaces/gcc-arm-none-eabi/bin:$PATH
|
||
|
|
||
|
# add repository and install tools
|
||
|
echo -e "[on-create.sh] adding pybricks/ppa"
|
||
|
sudo add-apt-repository -y ppa:pybricks/ppa
|
||
|
echo -e "[on-create.sh] installing uncrustify and mtools"
|
||
|
sudo apt-get -y install uncrustify mtools
|
||
|
|
||
|
# dosfstools >= 4.2 needed, standard repo only has 4.1
|
||
|
echo -e "[on-create.sh] downloading and installing dosfstools"
|
||
|
wget https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz
|
||
|
tar -xzf dosfstools-4.2.tar.gz
|
||
|
cd dosfstools-4.2/
|
||
|
./configure
|
||
|
make -j $(nproc)
|
||
|
sudo make install
|
||
|
cd /workspaces
|
||
|
rm -fr /workspaces/dosfstools-4.2 /workspaces/dosfstools-4.2.tar.gz
|
||
|
|
||
|
# prepare source-code tree
|
||
|
cd /workspaces/circuitpython/
|
||
|
echo -e "[on-create.sh] fetching submodules"
|
||
|
make fetch-submodules
|
||
|
echo -e "[on-create.sh] fetching tags"
|
||
|
git fetch --tags --recurse-submodules=no --shallow-since="2021-07-01" https://github.com/adafruit/circuitpython HEAD
|
||
|
|
||
|
# additional python requirements
|
||
|
echo -e "[on-create.sh] pip-installing requirements"
|
||
|
pip install --upgrade -r requirements-dev.txt
|
||
|
pip install --upgrade -r requirements-doc.txt
|
||
|
|
||
|
# add pre-commit
|
||
|
echo -e "[on-create.sh] installing pre-commit"
|
||
|
pre-commit install
|
||
|
|
||
|
# create cross-compiler
|
||
|
echo -e "[on-create.sh] building mpy-cross"
|
||
|
make -j $(nproc) -C mpy-cross # time: about 36 sec
|
||
|
|
||
|
# that's it!
|
||
|
echo -e "[on-create.sh] setup complete"
|
||
|
|
||
|
#commands to actually build CP:
|
||
|
#cd ports/raspberrypi
|
||
|
#time make -j $(nproc) BOARD=pimoroni_tufty2040 TRANSLATION=de_DE
|