|
|
@ -1,24 +1,13 @@
|
|
|
|
## NEEDS: LIBRARY, SKETCH, ROOT, SOURCEDIR
|
|
|
|
## NEEDS: LIBRARY, SKETCH, ROOT, SOURCEDIR
|
|
|
|
## Should be included when the current directory is the dir of the Sketch.
|
|
|
|
## Should be included when the current directory is the dir of the Sketch.
|
|
|
|
|
|
|
|
|
|
|
|
case "$0" in
|
|
|
|
|
|
|
|
*/settings.sh)
|
|
|
|
|
|
|
|
echo "This file must be included, never run directly!" >&2
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SKETCH="${SKETCH:-${DEFAULT_SKETCH}}"
|
|
|
|
SKETCH="${SKETCH:-${DEFAULT_SKETCH}}"
|
|
|
|
LIBRARY="${LIBRARY:-${SKETCH}}"
|
|
|
|
LIBRARY="${LIBRARY:-${SKETCH}}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
########
|
|
|
|
########
|
|
|
|
######## Keyboard hardware definitions
|
|
|
|
######## Keyboard hardware definitions
|
|
|
|
########
|
|
|
|
########
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOARD="${BOARD:-model01}"
|
|
|
|
BOARD="${BOARD:-model01}"
|
|
|
|
MCU="${MCU:-atmega32u4}"
|
|
|
|
MCU="${MCU:-atmega32u4}"
|
|
|
|
if [ "${BOARD}" = "virtual" ]; then
|
|
|
|
if [ "${BOARD}" = "virtual" ]; then
|
|
|
@ -27,52 +16,74 @@ else
|
|
|
|
FQBN="${FQBN:-keyboardio:avr:${BOARD}}"
|
|
|
|
FQBN="${FQBN:-keyboardio:avr:${BOARD}}"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
########
|
|
|
|
########
|
|
|
|
######## Host OS specific commands
|
|
|
|
######## Host OS specific commands
|
|
|
|
########
|
|
|
|
########
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Platform-specific overrides
|
|
|
|
## Platform-specific overrides
|
|
|
|
# Shamelessly stolen from git's Makefile
|
|
|
|
# Shamelessly stolen from git's Makefile
|
|
|
|
uname_S=$(uname -s 2>/dev/null || echo not)
|
|
|
|
uname_S=$(uname -s 2>/dev/null || echo not)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
find_device_vid_pid() {
|
|
|
|
|
|
|
|
VPIDS=$(${ARDUINO_BUILDER} \
|
|
|
|
|
|
|
|
-hardware "${ARDUINO_PATH}/hardware" \
|
|
|
|
|
|
|
|
-hardware "${BOARD_HARDWARE_PATH}" \
|
|
|
|
|
|
|
|
${ARDUINO_TOOLS_PARAM} \
|
|
|
|
|
|
|
|
-tools "${ARDUINO_PATH}/tools-builder" \
|
|
|
|
|
|
|
|
-fqbn "${FQBN}" \
|
|
|
|
|
|
|
|
-dump-prefs | grep "\.[vp]id=")
|
|
|
|
|
|
|
|
VID=${VID:-$(echo "${VPIDS}" | grep build.vid= | cut -dx -f2)}
|
|
|
|
|
|
|
|
SKETCH_PID=${SKETCH_PID:-$(echo "${VPIDS}" | grep build.pid= | cut -dx -f2)}
|
|
|
|
|
|
|
|
BOOTLOADER_PID=${BOOTLOADER_PID:-$(echo "${VPIDS}" | grep bootloader.pid= | cut -dx -f2)}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
find_device_port() {
|
|
|
|
|
|
|
|
find_device_vid_pid
|
|
|
|
|
|
|
|
DIR=$(dirname "$(readlink -f "$0")")
|
|
|
|
|
|
|
|
DEVICE_PORT_PROBER="${DIR}/find-device-port-linux-udev"
|
|
|
|
|
|
|
|
DEVICE_PORT="$(perl ${DEVICE_PORT_PROBER} ${VID} ${SKETCH_PID})"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DEVICE_PORT="$(ls /dev/ttyACM* 2>/dev/null || echo '')"
|
|
|
|
reset_device_cmd() {
|
|
|
|
RESET_DEVICE="stty -F ${DEVICE_PORT} 1200 hupcl"
|
|
|
|
stty -F ${DEVICE_PORT} 1200 hupcl
|
|
|
|
MD5="md5sum"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
find_bootloader_ports() {
|
|
|
|
|
|
|
|
find_device_vid_pid
|
|
|
|
|
|
|
|
DIR=$(dirname "$(readlink -f "$0")")
|
|
|
|
|
|
|
|
DEVICE_PORT_PROBER="${DIR}/find-device-port-linux-udev"
|
|
|
|
|
|
|
|
DEVICE_PORT_BOOTLOADER="$(perl ${DEVICE_PORT_PROBER} ${VID} ${BOOTLOADER_PID})"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MD5="md5sum"
|
|
|
|
|
|
|
|
|
|
|
|
if [ "${uname_S}" = "Darwin" ]; then
|
|
|
|
if [ "${uname_S}" = "Darwin" ]; then
|
|
|
|
DEVICE_PORT="$(ls /dev/cu.usbmodemkbio* 2> /dev/null || echo '')"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodemCkbio* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodemHID* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodemCHID* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodem14* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
RESET_DEVICE="/bin/stty -f ${DEVICE_PORT} 1200"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
find_device_port() {
|
|
|
|
|
|
|
|
DEVICE_PORT="$(ls /dev/cu.usbmodemkbio* 2> /dev/null || echo '')"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodemCkbio* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodemHID* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodemCHID* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
DEVICE_PORT="${DEVICE_PORT:-$(ls /dev/cu.usbmodem14* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ARDUINO_PATH="${ARDUINO_PATH:-/Applications/Arduino.app/Contents/Java/}"
|
|
|
|
reset_device_cmd() {
|
|
|
|
ARDUINO_PACKAGE_PATH="${ARDUINO_PACKAGE_PATH:-${HOME}/Library/Arduino15/packages}"
|
|
|
|
/bin/stty -f ${DEVICE_PORT} 1200
|
|
|
|
ARDUINO_LOCAL_LIB_PATH="${ARDUINO_LOCAL_LIB_PATH:-${HOME}/Documents/Arduino}"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MD5="md5"
|
|
|
|
ARDUINO_PATH="${ARDUINO_PATH:-/Applications/Arduino.app/Contents/Java/}"
|
|
|
|
|
|
|
|
ARDUINO_PACKAGE_PATH="${ARDUINO_PACKAGE_PATH:-${HOME}/Library/Arduino15/packages}"
|
|
|
|
|
|
|
|
ARDUINO_LOCAL_LIB_PATH="${ARDUINO_LOCAL_LIB_PATH:-${HOME}/Documents/Arduino}"
|
|
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
MD5="md5"
|
|
|
|
|
|
|
|
|
|
|
|
find_bootloader_ports() {
|
|
|
|
find_bootloader_ports() {
|
|
|
|
|
|
|
|
DEVICE_PORT_BOOTLOADER="$(ls /dev/cu.usbmodemkbio* 2> /dev/null || echo '')"
|
|
|
|
|
|
|
|
DEVICE_PORT_BOOTLOADER="${DEVICE_PORT_BOOTLOADER:-$(ls /dev/cu.usbmodem14* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DEVICE_PORT_BOOTLOADER="$(ls /dev/ttyACM* 2>/dev/null || echo '')"
|
|
|
|
|
|
|
|
if [ "${uname_S}" = "Darwin" ]; then
|
|
|
|
|
|
|
|
DEVICE_PORT_BOOTLOADER="$(ls /dev/cu.usbmodemkbio* 2> /dev/null || echo '')"
|
|
|
|
|
|
|
|
DEVICE_PORT_BOOTLOADER="${DEVICE_PORT_BOOTLOADER:-$(ls /dev/cu.usbmodem14* 2> /dev/null || echo '')}"
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
######
|
|
|
|
######
|
|
|
|
###### Arduino tools configuration
|
|
|
|
###### Arduino tools configuration
|
|
|
|
######
|
|
|
|
######
|
|
|
@ -95,52 +106,17 @@ AVR_OBJDUMP="${AVR_OBJDUMP:-${ARDUINO_TOOLS_PATH}/avr/bin/avr-objdump}"
|
|
|
|
AVRDUDE="${AVRDUDE:-${ARDUINO_TOOLS_PATH}/avr/bin/avrdude}"
|
|
|
|
AVRDUDE="${AVRDUDE:-${ARDUINO_TOOLS_PATH}/avr/bin/avrdude}"
|
|
|
|
AVRDUDE_CONF="${AVRDUDE_CONF:-${ARDUINO_TOOLS_PATH}/avr/etc/avrdude.conf}"
|
|
|
|
AVRDUDE_CONF="${AVRDUDE_CONF:-${ARDUINO_TOOLS_PATH}/avr/etc/avrdude.conf}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
######
|
|
|
|
######
|
|
|
|
###### Source files and dependencies
|
|
|
|
###### Source files and dependencies
|
|
|
|
######
|
|
|
|
######
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOARD_HARDWARE_PATH="${BOARD_HARDWARE_PATH:-${ARDUINO_LOCAL_LIB_PATH}/hardware}"
|
|
|
|
BOARD_HARDWARE_PATH="${BOARD_HARDWARE_PATH:-${ARDUINO_LOCAL_LIB_PATH}/hardware}"
|
|
|
|
BOOTLOADER_PATH="${BOOTLOADER_PATH:-${BOARD_HARDWARE_PATH}/keyboardio/avr/bootloaders/caterina/Caterina.hex}"
|
|
|
|
BOOTLOADER_PATH="${BOOTLOADER_PATH:-${BOARD_HARDWARE_PATH}/keyboardio/avr/bootloaders/caterina/Caterina.hex}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -z "${ARDUINO_TOOLS_PATH}" ]; then
|
|
|
|
######
|
|
|
|
ARDUINO_TOOLS_PARAM="-tools ${ARDUINO_TOOLS_PATH}"
|
|
|
|
###### Build and output configuration
|
|
|
|
|
|
|
|
######
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build_version () {
|
|
|
|
|
|
|
|
GIT_VERSION="$(cd $(find_sketch); git describe --abbrev=4 --dirty --always)"
|
|
|
|
|
|
|
|
LIB_VERSION="$(cd $(find_sketch); (grep version= ../../library.properties 2>/dev/null || echo version=0.0.0) | cut -d= -f2)-g${GIT_VERSION}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BUILD_PATH="${BUILD_PATH:-$(mktemp -d 2>/dev/null || mktemp -d -t 'build')}"
|
|
|
|
|
|
|
|
OUTPUT_DIR="${OUTPUT_DIR:-output/${LIBRARY}}"
|
|
|
|
|
|
|
|
OUTPUT_PATH="${OUTPUT_PATH:-${SOURCEDIR}/${OUTPUT_DIR}}"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build_filenames () {
|
|
|
|
|
|
|
|
OUTPUT_FILE_PREFIX="${SKETCH}-${LIB_VERSION}"
|
|
|
|
|
|
|
|
HEX_FILE_PATH="${OUTPUT_PATH}/${OUTPUT_FILE_PREFIX}.hex"
|
|
|
|
|
|
|
|
HEX_FILE_WITH_BOOTLOADER_PATH="${OUTPUT_PATH}/${OUTPUT_FILE_PREFIX}-with-bootloader.hex"
|
|
|
|
|
|
|
|
ELF_FILE_PATH="${OUTPUT_PATH}/${OUTPUT_FILE_PREFIX}.elf"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ARDUINO_TOOLS_PARAM="-tools ${ARDUINO_TOOLS_PATH}"
|
|
|
|
|
|
|
|
if [ -z "${ARDUINO_TOOLS_PATH}" ]; then
|
|
|
|
|
|
|
|
ARDUINO_TOOLS_PARAM=""
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -z "${AVR_GCC_PREFIX}" ]; then
|
|
|
|
if [ ! -z "${AVR_GCC_PREFIX}" ]; then
|
|
|
|
ARDUINO_AVR_GCC_PREFIX_PARAM="-prefs \"runtime.tools.avr-gcc.path=${AVR_GCC_PREFIX}\""
|
|
|
|
ARDUINO_AVR_GCC_PREFIX_PARAM="-prefs \"runtime.tools.avr-gcc.path=${AVR_GCC_PREFIX}\""
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -z "${VERBOSE}" ] && [ "${VERBOSE}" -gt 0 ]; then
|
|
|
|
|
|
|
|
ARDUINO_VERBOSE="-verbose"
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
ARDUINO_VERBOSE="-quiet"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|