#! /bin/sh set -e log () { echo "=== $*" } # Make sure we're in the project directory cd $(dirname $0)/.. mkdir -p out/ while read variant vid pid flags; do log log Building $variant ($vid:$pid) log # We can overload build.extra_flags from boards.txt, # so just specify the -D flags to gcc flags="$flags -DUSB_VID=$vid -DUSB_PID=$pid" flags="$flags -DUSB_MANUFACTURER=\"woozle.org\"" flags="$flags \"-DUSB_PRODUCT=\"Mockband $variant\"\"" # wtf quoting flags="$flags -DCDC_DISABLED" # Arduino gets cranky when it tries to use its own cache rm -rf build/ mkdir -p build/cache/ arduino-builder \ -build-path $(pwd)/build/ \ -build-cache $(pwd)/build/cache/ \ -fqbn arduino:avr:leonardo \ -hardware /usr/share/arduino/hardware \ -tools /usr/share/arduino/tools \ -prefs="build.extra_flags=$flags" \ -compile MockBand.ino mv build/MockBand.ino.hex out/MockBand.$variant.hex done << EOD guitar 0x1bad 0x0004 guitar-wammy 0x1bad 0x0004 -DWAMMY drums 0x1bad 0x3110 EOD ls -l out/