diff --git a/firmware/config/boards/common_make.sh b/firmware/config/boards/common_make.sh old mode 100644 new mode 100755 index 86f592e3b1..e5d10aa70d --- a/firmware/config/boards/common_make.sh +++ b/firmware/config/boards/common_make.sh @@ -8,16 +8,25 @@ set -e SCRIPT_NAME="common_make.sh" echo "Entering $SCRIPT_NAME with board $1 and CPU $2" +BOARD_DIR=$(pwd) +echo "Board dir is $BOARD_DIR" -cd ../../.. +# Back out to the firmware root, relative to this script's location, as it may be called +# from outside the firmware tree. +FW_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )/../.. +FW_DIR=$(readlink -f $FW_DIR) +echo "FW dir is $FW_DIR" +cd $FW_DIR mkdir -p .dep -make -j6 -r PROJECT_BOARD=$PROJECT_BOARD PROJECT_CPU=$PROJECT_CPU +echo "Calling make for the main firmware..." +make -j6 -r PROJECT_BOARD=$PROJECT_BOARD PROJECT_CPU=$PROJECT_CPU BOARD_DIR=$BOARD_DIR [ -e build/fome.hex ] || { echo "FAILED to compile by $SCRIPT_NAME with $PROJECT_BOARD $DEBUG_LEVEL_OPT and $EXTRA_PARAMS"; exit 1; } if [ "$USE_OPENBLT" = "yes" ]; then # TODO: why is this rm necessary? rm -f pch/pch.h.gch/* - cd bootloader; make PROJECT_BOARD=$PROJECT_BOARD PROJECT_CPU=$PROJECT_CPU -j12; cd .. + echo "Calling make for the bootloader..." + cd bootloader; make -j6 PROJECT_BOARD=$PROJECT_BOARD PROJECT_CPU=$PROJECT_CPU BOARD_DIR=$BOARD_DIR; cd .. [ -e bootloader/blbuild/fome_bl.hex ] || { echo "FAILED to compile OpenBLT by $SCRIPT_NAME with $PROJECT_BOARD"; exit 1; } fi