#!/bin/bash set -e set -x if [ -z "${RPI}" ] ; then echo "\$RPI missing, exiting" exit 1 fi if [ "${RPI}" -gt "2" ]; then export TOOLCHAIN_PREFIX="aarch64-none-elf-" else export TOOLCHAIN_PREFIX="arm-none-eabi-" fi # Define system options OPTIONS="-o USE_PWM_AUDIO_ON_ZERO -o SAVE_VFP_REGS_ON_IRQ -o REALTIME -o SCREEN_DMA_BURST_LENGTH=1" if [ "${RPI}" -gt "1" ]; then OPTIONS="${OPTIONS} -o ARM_ALLOW_MULTI_CORE" fi # USB Vendor and Device ID for use with USB Gadget Mode source USBID.sh if [ "${USB_VID}" ] ; then OPTIONS="${OPTIONS} -o USB_GADGET_VENDOR_ID=${USB_VID}" fi if [ "${USB_DID}" ] ; then OPTIONS="${OPTIONS} -o USB_GADGET_DEVICE_ID=${USB_DID}" fi # Patch Circle so that descriptive strings are used in dmesg and in DAWs sed -i -e 's|"Circle"|"probonopd"|g' circle-stdlib/libs/circle/lib/usb/gadget/usbmidigadget.cpp sed -i -e 's|"MIDI Gadget"|"MiniDexed"|g' circle-stdlib/libs/circle/lib/usb/gadget/usbmidigadget.cpp # Disable the MIDI Output as it is currently unused sed -i -e 's|m_pEP\[EPOut\]->AttachInterface|// m_pEP[EPOut]->AttachInterface|g' circle-stdlib/libs/circle/lib/usb/gadget/usbmidigadget.cpp # Build circle-stdlib library cd circle-stdlib/ make mrproper || true ./configure -r ${RPI} --prefix "${TOOLCHAIN_PREFIX}" ${OPTIONS} -o KERNEL_MAX_SIZE=0x400000 make -j # Build additional libraries cd libs/circle/addon/display/ make clean || true make -j cd ../sensor/ make clean || true make -j cd ../Properties/ make clean || true make -j cd ../../../.. cd .. # Build MiniDexed cd src make clean || true make -j ls *.img cd ..