tools/keyboardio-builder: Make it cd less

Instead of cding all the time to the Sketch directory, remain where it
was, and work from there. This makes it possible to use relative paths
for the various tool paths.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
pull/84/head
Gergely Nagy 8 years ago
parent bd5f7d92ac
commit 942df470f6

@ -1,11 +1,11 @@
# -*- mode: sh -*- # -*- mode: sh -*-
generate_keymaps () { generate_keymaps () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
rm -f generated/keymaps.h rm -f examples/KeyboardioFirmware/generated/keymaps.h
(cd layouts && ( find . -type f | sort | xargs -n 1 -I % sh -c 'perl ../../../tools/generate_keymaps.pl < % >> ../generated/keymaps.h' )) (cd examples/KeyboardioFirmware/layouts && \
( find . -type f | sort | xargs -n 1 -I % sh -c 'perl ../../../tools/generate_keymaps.pl < % >> ../generated/keymaps.h' ))
} }
EXTRA_BUILDER_ARGS="-libraries ${SOURCEDIR}/libraries" EXTRA_BUILDER_ARGS="-libraries ${SOURCEDIR}/libraries"

@ -59,7 +59,6 @@ find_sketch () {
} }
flash () { flash () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
echo "Press ENTER when ready..." echo "Press ENTER when ready..."
@ -68,12 +67,9 @@ flash () {
reset_device reset_device
sleep 3s sleep 3s
avrdude -q -q -p${MCU} -cavr109 -D -P ${DEVICE_PORT_BOOTLOADER} -b57600 "-Uflash:w:${HEX_FILE_PATH}:i" avrdude -q -q -p${MCU} -cavr109 -D -P ${DEVICE_PORT_BOOTLOADER} -b57600 "-Uflash:w:${HEX_FILE_PATH}:i"
cd "${SOURCEDIR}"
} }
program () { program () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
echo "Press ENTER when ready..." echo "Press ENTER when ready..."
@ -85,12 +81,9 @@ program () {
-D \ -D \
-B 1 \ -B 1 \
"-Uflash:w:${HEX_FILE_PATH}:i" "-Uflash:w:${HEX_FILE_PATH}:i"
cd "${SOURCEDIR}"
} }
hex_with_bootloader () { hex_with_bootloader () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
cat ${HEX_FILE_PATH} | awk '/^:00000001FF/ == 0' > ${HEX_FILE_WITH_BOOTLOADER_PATH} cat ${HEX_FILE_PATH} | awk '/^:00000001FF/ == 0' > ${HEX_FILE_WITH_BOOTLOADER_PATH}
@ -105,8 +98,6 @@ Make sure you have the bootloader version you expect.
And TEST THIS ON REAL HARDWARE BEFORE YOU GIVE IT TO ANYONE And TEST THIS ON REAL HARDWARE BEFORE YOU GIVE IT TO ANYONE
EOF EOF
cd "${SOURCEDIR}"
} }
build () { build () {
@ -115,7 +106,6 @@ build () {
} }
compile () { compile () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
install -d "${OUTPUT_PATH}" install -d "${OUTPUT_PATH}"
@ -141,15 +131,13 @@ compile () {
${ARDUINO_VERBOSE} \ ${ARDUINO_VERBOSE} \
-prefs "compiler.cpp.extra_flags=-std=c++11 -Woverloaded-virtual -Wno-unused-parameter -Wno-unused-variable -Wno-ignored-qualifiers" \ -prefs "compiler.cpp.extra_flags=-std=c++11 -Woverloaded-virtual -Wno-unused-parameter -Wno-unused-variable -Wno-ignored-qualifiers" \
${ARDUINO_AVR_GCC_PREFIX_PARAM} \ ${ARDUINO_AVR_GCC_PREFIX_PARAM} \
"${SKETCH}.ino" "$(find_sketch)/${SKETCH}.ino"
cp "${BUILD_PATH}/${SKETCH}.ino.hex" "${HEX_FILE_PATH}" cp "${BUILD_PATH}/${SKETCH}.ino.hex" "${HEX_FILE_PATH}"
cp "${BUILD_PATH}/${SKETCH}.ino.elf" "${ELF_FILE_PATH}" cp "${BUILD_PATH}/${SKETCH}.ino.elf" "${ELF_FILE_PATH}"
ln -sf "${OUTPUT_FILE_PREFIX}.hex" "${OUTPUT_PATH}/${SKETCH}-latest.hex" ln -sf "${OUTPUT_FILE_PREFIX}.hex" "${OUTPUT_PATH}/${SKETCH}-latest.hex"
ln -sf "${OUTPUT_FILE_PREFIX}.elf" "${OUTPUT_PATH}/${SKETCH}-latest.elf" ln -sf "${OUTPUT_FILE_PREFIX}.elf" "${OUTPUT_PATH}/${SKETCH}-latest.elf"
rm -rf "${BUILD_PATH}" rm -rf "${BUILD_PATH}"
cd "${SOURCEDIR}"
} }
_find_all () { _find_all () {
@ -176,50 +164,35 @@ build_all () {
} }
report_size () { report_size () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
echo "- Size: firmware/${LIBRARY}/${OUTPUT_FILE_PREFIX}.elf" echo "- Size: firmware/${LIBRARY}/${OUTPUT_FILE_PREFIX}.elf"
firmware_size "${AVR_SIZE}" -C --mcu="${MCU}" "${ELF_FILE_PATH}" firmware_size "${AVR_SIZE}" -C --mcu="${MCU}" "${ELF_FILE_PATH}"
echo echo
cd "${SOURCEDIR}"
} }
size_map () { size_map () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
"${AVR_NM}" --size-sort -C -r -l "${ELF_FILE_PATH}" "${AVR_NM}" --size-sort -C -r -l "${ELF_FILE_PATH}"
cd "${SOURCEDIR}"
} }
decompile () { decompile () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
"${AVR_OBJDUMP}" -d "${ELF_FILE_PATH}" "${AVR_OBJDUMP}" -d "${ELF_FILE_PATH}"
cd "${SOURCEDIR}"
} }
clean () { clean () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
rm -rf "${OUTPUT_PATH}" rm -rf "${OUTPUT_PATH}"
cd "${SOURCEDIR}"
} }
reset_device () { reset_device () {
cd "$(find_sketch)"
. ${ROOT}/tools/settings.sh . ${ROOT}/tools/settings.sh
${RESET_DEVICE} ${RESET_DEVICE}
cd "${SOURCEDIR}"
} }
usage () { usage () {

@ -44,8 +44,8 @@ BUILD_PATH="${BUILD_PATH:-$(mktemp -d 2>/dev/null || mktemp -d -t 'build')}"
OUTPUT_DIR="${OUTPUT_DIR:-output/${LIBRARY}}" OUTPUT_DIR="${OUTPUT_DIR:-output/${LIBRARY}}"
OUTPUT_PATH="${OUTPUT_PATH:-${SOURCEDIR}/${OUTPUT_DIR}}" OUTPUT_PATH="${OUTPUT_PATH:-${SOURCEDIR}/${OUTPUT_DIR}}"
GIT_VERSION="$(git describe --abbrev=4 --dirty --always)" GIT_VERSION="$(cd $(find_sketch); git describe --abbrev=4 --dirty --always)"
LIB_VERSION="$( (grep version= ../../library.properties 2>/dev/null || echo version=0.0.0) | cut -d= -f2)-g${GIT_VERSION}" LIB_VERSION="$(cd $(find_sketch); (grep version= ../../library.properties 2>/dev/null || echo version=0.0.0) | cut -d= -f2)-g${GIT_VERSION}"
OUTPUT_FILE_PREFIX="${SKETCH}-${LIB_VERSION}" OUTPUT_FILE_PREFIX="${SKETCH}-${LIB_VERSION}"

Loading…
Cancel
Save