1#!/bin/bash
2
3# function for building firmware
4function do_build() {
5    descr=$1
6    board=$2
7    shift
8    shift
9    echo "building $descr $board"
10    build_dir=/tmp/stm-build-$board
11    $MICROPY_AUTOBUILD_MAKE $@ BOARD=$board BUILD=$build_dir || exit 1
12    mv $build_dir/firmware.dfu $dest_dir/$descr$fw_tag.dfu
13    rm -rf $build_dir
14}
15
16# check/get parameters
17if [ $# != 2 ]; then
18    echo "usage: $0 <fw-tag> <dest-dir>"
19    exit 1
20fi
21
22fw_tag=$1
23dest_dir=$2
24
25# check we are in the correct directory
26if [ ! -r modpyb.c ]; then
27    echo "must be in stm directory"
28    exit 1
29fi
30
31# build the versions
32do_build pybv3 PYBV3
33do_build pybv3-network PYBV3 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
34do_build pybv10 PYBV10
35do_build pybv10-dp PYBV10 MICROPY_FLOAT_IMPL=double
36do_build pybv10-thread PYBV10 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
37do_build pybv10-dp-thread PYBV10 MICROPY_FLOAT_IMPL=double CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
38do_build pybv10-network PYBV10 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
39do_build pybv11 PYBV11
40do_build pybv11-dp PYBV11 MICROPY_FLOAT_IMPL=double
41do_build pybv11-thread PYBV11 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
42do_build pybv11-dp-thread PYBV11 MICROPY_FLOAT_IMPL=double CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
43do_build pybv11-network PYBV11 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
44do_build pyblitev10 PYBLITEV10
45do_build pyblitev10-dp PYBLITEV10 MICROPY_FLOAT_IMPL=double
46do_build pyblitev10-thread PYBLITEV10 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
47do_build pyblitev10-dp-thread PYBLITEV10 MICROPY_FLOAT_IMPL=double CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
48do_build pyblitev10-network PYBLITEV10 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
49do_build PYBD-SF2 PYBD_SF2
50do_build PYBD-SF3 PYBD_SF3
51do_build PYBD-SF6 PYBD_SF6
52
53for board in boards/{NUCLEO_*,STM32F*DISC,B_L*,USBDONGLE_WB55,ESPRUINO_PICO} ; do
54    bd=$(basename $board)
55    do_build $bd $bd USE_MBOOT=0 MBOOT_ENABLE_PACKING=0
56done
57