#!/bin/bash # Build everything. Usage: scripts/build.sh [wasm|firmware|assets|all] (default all) set -e cd "$(dirname "$0")/.."; ROOT=$PWD; TC=$ROOT/.toolchain export ARDUINO_DIRECTORIES_DATA=$TC/ard ARDUINO_DIRECTORIES_USER=$TC/ardu PATH=$TC:$PATH WHAT=${1:-all} ESPTOOL=$(ls $TC/ard/packages/esp32/tools/esptool_py/*/esptool.py | head -1) BOOTAPP0=$(ls $TC/ard/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin | head -1) if [ $WHAT = wasm ] || [ $WHAT = all ]; then ./wasm/build.sh; fi if [ $WHAT = firmware ] || [ $WHAT = all ]; then # each sketch -> firmware/dist/.flash.bin (bootloader+partitions+boot_app0+app, 4MB) for S in vgademo echo; do arduino-cli compile -b esp32:esp32:esp32:FlashMode=dio,FlashFreq=40 --output-dir /tmp/build_$S firmware/$S python3 $ESPTOOL --chip esp32 merge_bin --fill-flash-size 4MB -o firmware/dist/$S.flash.bin --flash_mode dio --flash_freq 40m --flash_size 4MB \ 0x1000 /tmp/build_$S/$S.ino.bootloader.bin 0x8000 /tmp/build_$S/$S.ino.partitions.bin 0xe000 $BOOTAPP0 0x10000 /tmp/build_$S/$S.ino.bin done # DOS firmware has a custom partition table + floppy image at 0x200000 (see firmware/README.md) arduino-cli compile -b esp32:esp32:esp32:FlashMode=dio,FlashFreq=40 --output-dir /tmp/build_dos firmware/dosvga32 python3 $ESPTOOL --chip esp32 merge_bin --fill-flash-size 4MB -o firmware/dist/dosvga32.flash.bin --flash_mode dio --flash_freq 40m --flash_size 4MB \ 0x1000 /tmp/build_dos/dosvga32.ino.bootloader.bin 0x8000 /tmp/build_dos/dosvga32.ino.partitions.bin 0xe000 $BOOTAPP0 0x10000 /tmp/build_dos/dosvga32.ino.bin 0x200000 firmware/dist/dosdisk.img fi if [ $WHAT = assets ] || [ $WHAT = all ]; then python3 tools/build_assets.py; fi