From a6a4a0b71d9403fe13b3c50ca1936aa9a255bf8b Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 1 Oct 2020 16:49:38 +0200 Subject: [PATCH 1/9] Bug fix if using argument EN_ONLY. Thank to @leptun for pointing out. --- PF-build.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index f459095c..adec0e35 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_18 +# Version: 1.0.6-Build_27 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -124,6 +124,8 @@ # After compiling All multilanguage vairants it makes it easier to find missing or unused transltions. # 12 May 2020, DRracer , Cleanup double MK2/s MK25/s `not_tran` and `not_used` files # 13 May 2020, leptun , If cleanup files do not exist don't try to. +# 01 Oct 2020, 3d-gussner, Bug fix if using argument EN_ONLY. Thank to @leptun for pointing out. +# Change Build number to scrpit commits #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -473,12 +475,10 @@ if [ -z "$2" ] ; then case $yn in "Multi languages") LANGUAGES="ALL" - sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h break ;; "English only") LANGUAGES="EN_ONLY" - sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h break ;; *) @@ -622,13 +622,15 @@ do sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h #Prepare english only or multilanguage version to be build - if [ $LANGUAGES == "ALL" ]; then + if [ $LANGUAGES == "EN_ONLY" ]; then echo " " - echo "Multi-language firmware will be built" + echo "English only language firmware will be built" + sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h echo " " else echo " " - echo "English only language firmware will be built" + echo "Multi-language firmware will be built" + sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h echo " " fi From 2dbce5c0cb825ef3f804c382f83aad0eb4785aa1 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 2 Oct 2020 18:54:18 +0200 Subject: [PATCH 2/9] Add UNKNOWN as agrument option --- PF-build.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index adec0e35..cc3898b7 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_27 +# Version: 1.0.6-Build_28 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -126,6 +126,7 @@ # 13 May 2020, leptun , If cleanup files do not exist don't try to. # 01 Oct 2020, 3d-gussner, Bug fix if using argument EN_ONLY. Thank to @leptun for pointing out. # Change Build number to scrpit commits +# 02 Oct 2020, 3d-gussner, Add UNKNOWN as argument option #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -497,11 +498,11 @@ else fi #Check if DEV_STATUS is selected via argument 3 if [ ! -z "$3" ] ; then - if [[ "$3" == "GOLD" || "$3" == "RC" || "$3" == "BETA" || "$3" == "ALPHA" || "$3" == "DEVEL" || "$3" == "DEBUG" ]] ; then + if [[ "$3" == "GOLD" || "$3" == "RC" || "$3" == "BETA" || "$3" == "ALPHA" || "$3" == "DEVEL" || "$3" == "DEBUG" || "$3" == "UNKNOWN" ]] ; then DEV_STATUS_SELECTED=$3 else echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL' or 'DEBUG'$(tput sgr0) are allowed as 3rd argument!$(tput sgr0)" + echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKOWN' $(tput sgr0) are allowed as 3rd argument!$(tput sgr0)" exit 23 fi fi From ffc7a5344a41774eed52a639de8d3448c89b7f2c Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 2 Oct 2020 18:56:50 +0200 Subject: [PATCH 3/9] Typo fix --- PF-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PF-build.sh b/PF-build.sh index cc3898b7..08c3756f 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -502,7 +502,7 @@ if [ ! -z "$3" ] ; then DEV_STATUS_SELECTED=$3 else echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKOWN' $(tput sgr0) are allowed as 3rd argument!$(tput sgr0)" + echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as 3rd argument!$(tput sgr0)" exit 23 fi fi From 93fd3c95a94ebe2c5c89d5f197cabd213655bedd Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 5 Oct 2020 13:18:18 +0200 Subject: [PATCH 4/9] Disable pause and warnings using command line with all needed arguments Install needed apps under linux if needed. --- PF-build.sh | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 08c3756f..2ef702ec 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_28 +# Version: 1.0.6-Build_29 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -127,6 +127,8 @@ # 01 Oct 2020, 3d-gussner, Bug fix if using argument EN_ONLY. Thank to @leptun for pointing out. # Change Build number to scrpit commits # 02 Oct 2020, 3d-gussner, Add UNKNOWN as argument option +# 05 Oct 2020, 3d-gussner, Disable pause and warnings using command line with all needed arguments +# Install needed apps under linux if needed. #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -201,13 +203,14 @@ if ! type zip > /dev/null; then elif [ $TARGET_OS == "linux" ]; then echo "$(tput setaf 1)Missing 'zip' which is important to run this script" echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" + sudo apt-get update && apt-get install zip exit 3 fi fi # Check python ... needed during language build if ! type python > /dev/null; then if [ $TARGET_OS == "windows" ]; then - echo "$(tput setaf 1)Missing 'python' which is important to run this script" + echo "$(tput setaf 1)Missing 'python3' which is important to run this script" exit 4 elif [ $TARGET_OS == "linux" ]; then echo "$(tput setaf 1)Missing 'python' which is important to run this script" @@ -215,6 +218,7 @@ if ! type python > /dev/null; then echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" + sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python exit 4 fi fi @@ -507,6 +511,14 @@ if [ ! -z "$3" ] ; then fi fi +# check if script has been started with arguments +if [ "$#" -eq "0" ] ; then + OUTPUT=1 +else + OUTPUT=0 +fi +#echo "Output is:" $OUTPUT + #Set BUILD_ENV_PATH cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 24 BUILD_ENV_PATH="$( pwd -P )" @@ -581,18 +593,24 @@ do echo "" ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - read -t 10 -p "Press Enter to continue..." + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then echo "" ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - read -t 10 -p "Press Enter to continue..." + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi fi if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then echo "" ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - read -t 10 -p "Press Enter to continue..." + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi fi #List some useful data @@ -654,7 +672,9 @@ do echo "Start to build Prusa Firmware ..." echo "Using variant $VARIANT$(tput setaf 3)" - sleep 2 + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 echo "$(tput sgr 0)" @@ -664,7 +684,9 @@ do echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK echo "$(tput sgr 0)" - sleep 2 + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi cd $SCRIPT_PATH/lang echo "$(tput setaf 3)" ./config.sh || exit 31 @@ -673,7 +695,9 @@ do if [ -f "lang_en.tmp" ]; then echo "" echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - read -t 10 -p "Press Enter to continue..." + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi echo "$(tput setaf 3)" ./lang-clean.sh echo "$(tput sgr 0)" @@ -681,7 +705,9 @@ do if [ -f "progmem.out" ]; then echo "" echo "$(tput setaf 6)Previous firmware build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - read -t 10 -p "Press Enter to continue..." + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi echo "$(tput setaf 3)" ./fw-clean.sh echo "$(tput sgr 0)" @@ -749,7 +775,9 @@ do #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h - sleep 5 + if [ $OUTPUT == "1" ] ; then + sleep 5 + fi done # Switch to hex path and list build files From e3b3e66665913a535ec7841d1378f7e5fe1eee08 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 5 Oct 2020 15:25:54 +0200 Subject: [PATCH 5/9] Clean PF-Firmware build when changing git branch --- PF-build.sh | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/PF-build.sh b/PF-build.sh index 2ef702ec..9bdd377c 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_29 +# Version: 1.0.6-Build_30 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -129,6 +129,7 @@ # 02 Oct 2020, 3d-gussner, Add UNKNOWN as argument option # 05 Oct 2020, 3d-gussner, Disable pause and warnings using command line with all needed arguments # Install needed apps under linux if needed. +# Clean PF-Firmware build when changing git branch #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -519,6 +520,26 @@ else fi #echo "Output is:" $OUTPUT +#Check git branch has changed +if ! type git > /dev/null; then + BRANCH="" + CLEAN_PF_FW_BUILD=0 +else + BRANCH=$(git branch --show-current) + echo "Branch is:" $BRANCH + if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + echo "created PF-build.branch file" + else + PRE_BRANCH=$(cat "$SCRIPT_PATH/../PF-build.branch") + echo "Previous branch was:" $PRE_BRANCH + if [ ! "$BRANCH" == "$PRE_BRANCH" ] ; then + CLEAN_PF_FW_BUILD=1 + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + fi + fi +fi + #Set BUILD_ENV_PATH cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 24 BUILD_ENV_PATH="$( pwd -P )" @@ -534,6 +555,14 @@ fi cd Prusa-Firmware-build || exit 26 BUILD_PATH="$( pwd -P )" +#Check git branch has changed +if [ "$CLEAN_PF_FW_BUILD" == "1" ]; then + read -t 10 -p "Branch changed, cleaning Prusa-Firmware-build folder" + rm -r * +else + echo "Nothing to clean up" +fi + for v in ${VARIANTS[*]} do VARIANT=$(basename "$v" ".h") From a5ba666af0991784a27a7a1863abb1543c6c0ef3 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 2 Nov 2020 14:54:16 +0100 Subject: [PATCH 6/9] Changed from arguments to flags/options Check for "gawk" on Linux Add argument to change build number automatically to current commit or define own number Update exit numbers 1-13 for prepare build env 21-29 for prepare compiling 30-36 compiling --- PF-build.sh | 136 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 106 insertions(+), 30 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 9bdd377c..7f0fd362 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_30 +# Version: 1.0.6-Build_32 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -125,11 +125,15 @@ # 12 May 2020, DRracer , Cleanup double MK2/s MK25/s `not_tran` and `not_used` files # 13 May 2020, leptun , If cleanup files do not exist don't try to. # 01 Oct 2020, 3d-gussner, Bug fix if using argument EN_ONLY. Thank to @leptun for pointing out. -# Change Build number to scrpit commits +# Change Build number to scrpit commits 'git rev-list --count HEAD PF-build.sh' # 02 Oct 2020, 3d-gussner, Add UNKNOWN as argument option # 05 Oct 2020, 3d-gussner, Disable pause and warnings using command line with all needed arguments # Install needed apps under linux if needed. # Clean PF-Firmware build when changing git branch +# 02 Nov 2020, 3d-gussner, Check for "gawk" on Linux +# Add argument to change build number automatically to current commit or define own number +# Update exit numbers 1-13 for prepare build env 21-29 for prepare compiling 30-36 compiling + #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -224,6 +228,16 @@ if ! type python > /dev/null; then fi fi +# Check gawk ... needed during language build +if ! type gawk > /dev/null; then + if [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." + sudo apt-get update && apt-get install gawk + exit 4 + fi +fi + #### End prepare bash / Linux environment @@ -430,8 +444,36 @@ fi #### Start cd $SCRIPT_PATH -# First argument defines which variant of the Prusa Firmware will be compiled -if [ -z "$1" ] ; then +# Check if git is availible +if type git > /dev/null; then + git_availible="1" +fi + +#arguments +#'-v' Variant "All" or variant file name +#'-l' Languages "ALL" for multi language or "EN_ONLY" for english only +#'-d' Devel build "GOLD", "RC", "BETA", "ALPHA", "DEBUG", "DEVEL" and "UNKNOWN" +#'-b' Build/commit number "Auto" needs git or a number +#'-o' Output "1" force or "0" block output and delays +while getopts v:l:d:b:o: flag + do + case "${flag}" in + v) variant_flag=${OPTARG};; + l) language_flag=${OPTARG};; + d) devel_flag=${OPTARG};; + b) build_flag=${OPTARG};; + o) output_flag=${OPTARG};; + esac + done +#echo "variant_flag: $variant_flag"; +#echo "language_flag: $language_flag"; +#echo "devel_flag: $devel_flag"; +#echo "build_flag: $build_flag"; +#echo "output_flag: $output_flag"; + +# +# '-v' argument defines which variant of the Prusa Firmware will be compiled +if [ -z "$variant_flag" ] ; then # Select which variant of the Prusa Firmware will be compiled, like PS3="Select a variant: " while IFS= read -r -d $'\0' f; do @@ -451,7 +493,7 @@ if [ -z "$1" ] ; then ;; "Quit") echo "You chose to stop" - exit + exit 20 ;; *) echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" @@ -459,21 +501,28 @@ if [ -z "$1" ] ; then esac done else - if [ -f "$SCRIPT_PATH/Firmware/variants/$1" ] ; then - VARIANTS=$1 + if [ -f "$SCRIPT_PATH/Firmware/variants/$variant_flag" ] ; then + VARIANTS=$variant_flag + elif [ "$variant_flag" == "All" ] ; then + while IFS= read -r -d $'\0' f; do + options[i++]="$f" + done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) + VARIANT="All" + VARIANTS=${options[*]} else - echo "$(tput setaf 1)$1 could not be found in Firmware/variants please choose a valid one$(tput setaf 2)" + echo "$(tput setaf 1)Argument $variant_flag could not be found in Firmware/variants please choose a valid one.$(tput sgr0)" + echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename echo "$(tput sgr0)" exit 21 fi fi -#Second argument defines if it is an english only version. Known values EN_ONLY / ALL +#'-l' argument defines if it is an english only version. Known values EN_ONLY / ALL #Check default language mode MULTI_LANGUAGE_CHECK=$(grep --max-count=1 "^#define LANG_MODE *" $SCRIPT_PATH/Firmware/config.h|sed -e's/ */ /g'|cut -d ' ' -f3) -if [ -z "$2" ] ; then +if [ -z "$language_flag" ] ; then PS3="Select a language: " echo echo "Which lang-build do you want?" @@ -493,27 +542,43 @@ if [ -z "$2" ] ; then esac done else - if [[ "$2" == "ALL" || "$2" == "EN_ONLY" ]] ; then - LANGUAGES=$2 + if [[ "$language_flag" == "ALL" || "$language_flag" == "EN_ONLY" ]] ; then + LANGUAGES=$language_flag else echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as 2nd argument!" + echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" exit 22 fi fi -#Check if DEV_STATUS is selected via argument 3 -if [ ! -z "$3" ] ; then - if [[ "$3" == "GOLD" || "$3" == "RC" || "$3" == "BETA" || "$3" == "ALPHA" || "$3" == "DEVEL" || "$3" == "DEBUG" || "$3" == "UNKNOWN" ]] ; then - DEV_STATUS_SELECTED=$3 +#Check if DEV_STATUS is selected via argument '-d' +if [ ! -z "$devel_flag" ] ; then + if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then + DEV_STATUS_SELECTED=$devel_flag else echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as 3rd argument!$(tput sgr0)" + echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" exit 23 fi fi +#Check if Build is selected via argument '-b' +if [ ! -z "$build_flag" ] ; then + if [[ "$build_flag" == "Auto" && "$git_availible" == "1" ]] ; then + echo "Build changed to $build_flag" + BUILD=$(git rev-list --count HEAD) + elif [[ $build_flag =~ ^[0-9]+$ ]] ; then + BUILD=$build_flag + else + echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" + exit 24 + + fi + echo "New Build number is: $BUILD" +fi + # check if script has been started with arguments -if [ "$#" -eq "0" ] ; then +if [[ "$#" -eq "0" || "$output_flag" == 1 ]] ; then OUTPUT=1 else OUTPUT=0 @@ -521,12 +586,12 @@ fi #echo "Output is:" $OUTPUT #Check git branch has changed -if ! type git > /dev/null; then +if [ ! -z "git_availible" ]; then BRANCH="" CLEAN_PF_FW_BUILD=0 else BRANCH=$(git branch --show-current) - echo "Branch is:" $BRANCH + echo "Current branch is:" $BRANCH if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch echo "created PF-build.branch file" @@ -541,18 +606,18 @@ else fi #Set BUILD_ENV_PATH -cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 24 +cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 25 BUILD_ENV_PATH="$( pwd -P )" cd ../.. #Checkif BUILD_PATH exists and if not creates it if [ ! -d "Prusa-Firmware-build" ]; then - mkdir Prusa-Firmware-build || exit 25 + mkdir Prusa-Firmware-build || exit 26 fi #Set the BUILD_PATH for Arduino IDE -cd Prusa-Firmware-build || exit 26 +cd Prusa-Firmware-build || exit 27 BUILD_PATH="$( pwd -P )" #Check git branch has changed @@ -568,8 +633,15 @@ do VARIANT=$(basename "$v" ".h") # Find firmware version in Configuration.h file and use it to generate the hex filename FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') - # Find build version in Configuration.h file and use it to generate the hex filename - BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + if [ -z "$BUILD" ] ; then + # Find build version in Configuration.h file and use it to generate the hex filename + BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + else + # Find and replace build version in Configuration.h file + BUILD_ORG=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + echo "Original build number: $BUILD_ORG" + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD/g" $SCRIPT_PATH/Firmware/Configuration.h + fi # Check if the motherboard is an EINSY and if so only one hex file will generated MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) # Check development status @@ -613,7 +685,7 @@ do fi #Prepare hex files folders if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then - mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 27 + mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 fi OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" @@ -656,11 +728,11 @@ do #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 28 + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 else echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" read -t 10 -p "Press Enter to continue..." - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 28 + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 fi #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint @@ -705,7 +777,7 @@ do sleep 2 fi #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 - $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 + $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 echo "$(tput sgr 0)" if [ $LANGUAGES == "ALL" ]; then @@ -798,8 +870,12 @@ do then rm $SCRIPT_PATH/lang/not_used.txt fi + # Restore files to previous state sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h + if [ ! -z "$BUILD_ORG" ] ; then + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD_ORG/g" $SCRIPT_PATH/Firmware/Configuration.h + fi echo $MULTI_LANGUAGE_CHECK #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h From 7651fbb0d192dedd9691b8d0dc3388c41af6fbcf Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 2 Nov 2020 17:11:24 +0100 Subject: [PATCH 7/9] Fix output "Configuration_prusa.h" delay if compiling failed. --- PF-build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PF-build.sh b/PF-build.sh index 7f0fd362..5a174c9c 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -731,7 +731,9 @@ do cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 else echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" - read -t 10 -p "Press Enter to continue..." + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 fi From 007e59d23c1adaaea42ee2fb6c183c148cbc263b Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 8 Jan 2021 11:37:47 +0100 Subject: [PATCH 8/9] Comment out 'sudo' auto installation Add '-?' '-h' help output --- PF-build.sh | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 5a174c9c..afd7fda1 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_32 +# Version: 1.0.6-Build_33 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -133,6 +133,8 @@ # 02 Nov 2020, 3d-gussner, Check for "gawk" on Linux # Add argument to change build number automatically to current commit or define own number # Update exit numbers 1-13 for prepare build env 21-29 for prepare compiling 30-36 compiling +# 08 Jan 2021, 3d-gussner, Comment out 'sudo' auto installation +# Add '-?' '-h' help option #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -208,7 +210,7 @@ if ! type zip > /dev/null; then elif [ $TARGET_OS == "linux" ]; then echo "$(tput setaf 1)Missing 'zip' which is important to run this script" echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" - sudo apt-get update && apt-get install zip + #sudo apt-get update && apt-get install zip exit 3 fi fi @@ -223,7 +225,7 @@ if ! type python > /dev/null; then echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" - sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python + #sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python exit 4 fi fi @@ -233,7 +235,7 @@ if ! type gawk > /dev/null; then if [ $TARGET_OS == "linux" ]; then echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." - sudo apt-get update && apt-get install gawk + #sudo apt-get update && apt-get install gawk exit 4 fi fi @@ -449,13 +451,7 @@ if type git > /dev/null; then git_availible="1" fi -#arguments -#'-v' Variant "All" or variant file name -#'-l' Languages "ALL" for multi language or "EN_ONLY" for english only -#'-d' Devel build "GOLD", "RC", "BETA", "ALPHA", "DEBUG", "DEVEL" and "UNKNOWN" -#'-b' Build/commit number "Auto" needs git or a number -#'-o' Output "1" force or "0" block output and delays -while getopts v:l:d:b:o: flag +while getopts v:l:d:b:o:?h flag do case "${flag}" in v) variant_flag=${OPTARG};; @@ -463,6 +459,8 @@ while getopts v:l:d:b:o: flag d) devel_flag=${OPTARG};; b) build_flag=${OPTARG};; o) output_flag=${OPTARG};; + ?) help_flag=1;; + h) help_flag=1;; esac done #echo "variant_flag: $variant_flag"; @@ -470,6 +468,37 @@ while getopts v:l:d:b:o: flag #echo "devel_flag: $devel_flag"; #echo "build_flag: $build_flag"; #echo "output_flag: $output_flag"; +#echo "help_flag: $help_flag" + +# +# '?' 'h' argument usage and help +if [ "$help_flag" == "1" ] ; then +echo "***************************************" +echo "* PF-build.sh Version: 1.0.6-Build_33 *" +echo "***************************************" +echo "Arguments:" +echo "$(tput setaf 2)-v$(tput sgr0) Variant '$(tput setaf 2)All$(tput sgr0)' or variant file name" +echo "$(tput setaf 2)-l$(tput sgr0) Languages '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for english only" +echo "$(tput setaf 2)-d$(tput sgr0) Devel build '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'" +echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number" +echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force or '$(tput setaf 2)0$(tput sgr0)' block output and delays" +echo "$(tput setaf 2)-?$(tput sgr0) Help" +echo "$(tput setaf 2)-h$(tput sgr0) Help" +echo +echo "Brief USAGE:" +echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o]" +echo +echo "Example:" +echo " $(tput setaf 2)./PF-build.sh -v All -l ALL -d GOLD$(tput sgr0)" +echo " Will build all variants as multi language and final GOLD version" +echo +echo " $(tput setaf 2) ./PF-build.sh -v 1_75mm_MK3S-EINSy10a-E3Dv6full.h -b Auto -l ALL -d GOLD -o 1$(tput sgr0)" +echo " Will build MK3S multi language final GOLD firmware " +echo " with current commit count number and output extra information" +echo +exit + +fi # # '-v' argument defines which variant of the Prusa Firmware will be compiled From 67ff9b6b48535e2bb6c4491957f0f9bd497a47e2 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 8 Jan 2021 11:01:17 +0100 Subject: [PATCH 9/9] Fix typos --- PF-build.sh | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index afd7fda1..b7539578 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -15,7 +15,7 @@ # 3. Install zip with 'apt-get install zip' # 4. Install python3 with 'apt-get install python3' # 5. Add command 'ln -sf /usr/bin/python3.5 /usr/bin/python' to link python3 to python. -# Donnot istall 'python' as python 2.x has end of life see https://pythonclock.org/ +# Do not install 'python' as python 2.x has end of life see https://pythonclock.org/ # 6. Add at top of ~/.bashrc following lines by using 'sudo nano ~/.bashrc' # # export OS="Linux" @@ -37,7 +37,7 @@ # 2. Another great tool to compare your custom mod and stock firmware is WinMerge http://winmerge.org/downloads/?lang=en # # Example for MK3: open git bash and change to your Firmware directory -# @ MINGW64 //path +# @ MINGW64 //path # bash build.sh 1_75mm_MK3-EINSy10a-E3Dv6full # # Example for MK25: open git bash and change to your directory @@ -63,8 +63,8 @@ # 17 Jan 2019, 3d-gussner, Build_3, Check for OS Windows or Linux and use the right build environment # 10 Feb 2019, ropaha, Pull Request, Select variant from list while using build.sh # 10 Feb 2019, ropaha, change FW_DEV_VERSION automatically depending on FW_VERSION RC/BETA/ALPHA -# 10 Feb 2019, 3d-gussner, 1st tests with english only -# 10 Feb 2019, ropaha, added compiling of all variants and english only +# 10 Feb 2019, 3d-gussner, 1st tests with English only +# 10 Feb 2019, ropaha, added compiling of all variants and English only # 10 Feb 2019, 3d-gussner, Set OUTPUT_FOLDER for hex files # 11 Feb 2019, 3d-gussner/ropaha, Minor changes and fixes # 11 Feb 2019, 3d-gussner, Ready for RC @@ -80,52 +80,52 @@ # Configuration_prusa.h # language build files # multi language firmware files exist and clean them up -# 15 Feb 2019, 3d-gussner, Fixed selction GOLD/UNKNOWN DEV_STATUS for ALL variants builds, so you have to choose only once +# 15 Feb 2019, 3d-gussner, Fixed selection GOLD/UNKNOWN DEV_STATUS for ALL variants builds, so you have to choose only once # 15 Feb 2019, 3d-gussner, Added some colored output # 15 Feb 2019, 3d-gussner, troubleshooting and minor fixes # 16 Feb 2019, 3d-gussner, Script can be run using arguments # $1 = variant, example "1_75mm_MK3-EINSy10a-E3Dv6full.h" at this moment it is not possible to use ALL -# $2 = multi language OR english only [ALL/EN_ONLY] +# $2 = multi language OR English only [ALL/EN_ONLY] # $3 = development status [GOLD/RC/BETA/ALPHA/DEVEL/DEBUG] # If one argument is wrong a list of valid one will be shown -# 13 Mar 2019, 3d-gussner, MKbel updated the linux build environment to version 1.0.2 with an Fix maximum firmware flash size. +# 13 Mar 2019, 3d-gussner, MKbel updated the Linux build environment to version 1.0.2 with an Fix maximum firmware flash size. # So did I # 11 Jul 2019, deliopoulos,Updated to v1.0.6 as Prusa needs a new board definition for Firmware 3.8.x86_64 -# - Splitted the Download of Windows Arduino IDE 1.8.5 and Prusa specific part +# - Split the Download of Windows Arduino IDE 1.8.5 and Prusa specific part # --> less download volume needed and saves some time # -# 13 Jul 2019, deliopoulos,Splitting of Ardunio IDE and Prusa parts also for Linux64 +# 13 Jul 2019, deliopoulos,Splitting of Arduino IDE and Prusa parts also for Linux64 # 13 Jul 2019, 3d-gussner, Added Linux 32-bit version (untested yet) # MacOS could be added in future if needs # 14 Jul 2019, 3d-gussner, Update preferences and make it really portable -# 15 Jul 2019, 3d-gussner, New PF-build-env gihub branch -# 16 Jul 2019, 3d-gussner, New Arduino_boards github fork +# 15 Jul 2019, 3d-gussner, New PF-build-env GitHub branch +# 16 Jul 2019, 3d-gussner, New Arduino_boards GitHub fork # 17 Jul 2019, 3d-gussner, Final tests under Windows 10 and Linux Subsystem for Windows # 18 Jul 2019, 3d-gussner, Added python check # 18 Jul 2019, deliopoulos, No need more for changing 'platform.txt' file as it comes with the Arduino Boards. # 18 Jul 2019, deliopoulos, Modified 'PF_BUILD_FILE_URL' to use 'BUILD_ENV' variable -# 22 Jul 2019, 3d-gussner, Modiffied checks to check folder and/or installation output exists. +# 22 Jul 2019, 3d-gussner, Modified checks to check folder and/or installation output exists. # 22 Jul 2019, 3d-gussner, Added check if Arduino IDE 1.8.5 boards have been updated # 22 Jul 2019, 3d-gussner, Changed exit numbers 1-13 for prepare build env 21-28 for prepare compiling 31-36 compiling -# 22 Jul 2019, 3d-gussner, Changed BOARD_URL to DRracers respository after he pulled my PR https://github.com/DRracer/Arduino_Boards/pull/1 +# 22 Jul 2019, 3d-gussner, Changed BOARD_URL to DRracers repository after he pulled my PR https://github.com/DRracer/Arduino_Boards/pull/1 # 23 Jul 2019, 3d-gussner, Changed Build-env path to "PF-build-dl" as requested in PR https://github.com/prusa3d/Prusa-Firmware/pull/2028 # Changed Hex-files folder to PF-build-hex as requested in PR # 23 Jul 2019, 3d-gussner, Added Finding OS version routine so supporting new OS should get easier # 26 Jul 2019, 3d-gussner, Change JSON repository to prusa3d after PR https://github.com/prusa3d/Arduino_Boards/pull/1 was merged -# 23 Sep 2019, 3d-gussner, Prepare PF-build.sh for comming Prusa3d/Arduino_Boards version 1.0.2 Pull Request -# 17 Oct 2019, 3d-gussner, Changed folder and check file names to have seperated build enviroments depening on Arduino IDE version and +# 23 Sep 2019, 3d-gussner, Prepare PF-build.sh for coming Prusa3d/Arduino_Boards version 1.0.2 Pull Request +# 17 Oct 2019, 3d-gussner, Changed folder and check file names to have separated build environments depending on Arduino IDE version and # board-versions. # 15 Dec 2019, 3d-gussner, Prepare for switch to Prusa3d/PF-build-env repository -# 15 Dec 2019, 3d-gussner, Fix Audrino user preferences for the chosen board. +# 15 Dec 2019, 3d-gussner, Fix Arduino user preferences for the chosen board. # 17 Dec 2019, 3d-gussner, Fix "timer0_fract = 0" warning by using Arduino_boards v1.0.3 # 28 Apr 2020, 3d-gussner, Added RC3 detection # 03 May 2020, deliopoulos, Accept all RCx as RC versions # 05 May 2020, 3d-gussner, Make a copy of `not_tran.txt`and `not_used.txt` as `not_tran_$VARIANT.txt`and `not_used_$VARIANT.txt` -# After compiling All multilanguage vairants it makes it easier to find missing or unused transltions. +# After compiling All multi-language variants it makes it easier to find missing or unused translations. # 12 May 2020, DRracer , Cleanup double MK2/s MK25/s `not_tran` and `not_used` files # 13 May 2020, leptun , If cleanup files do not exist don't try to. # 01 Oct 2020, 3d-gussner, Bug fix if using argument EN_ONLY. Thank to @leptun for pointing out. -# Change Build number to scrpit commits 'git rev-list --count HEAD PF-build.sh' +# Change Build number to script commits 'git rev-list --count HEAD PF-build.sh' # 02 Oct 2020, 3d-gussner, Add UNKNOWN as argument option # 05 Oct 2020, 3d-gussner, Disable pause and warnings using command line with all needed arguments # Install needed apps under linux if needed. @@ -265,7 +265,7 @@ echo "Script path :" $SCRIPT_PATH echo "OS :" $OS echo "OS type :" $TARGET_OS echo "" -echo "Ardunio IDE :" $ARDUINO_ENV +echo "Arduino IDE :" $ARDUINO_ENV echo "Build env :" $BUILD_ENV echo "Board :" $BOARD echo "Package name:" $BOARD_PACKAGE_NAME @@ -446,9 +446,9 @@ fi #### Start cd $SCRIPT_PATH -# Check if git is availible +# Check if git is available if type git > /dev/null; then - git_availible="1" + git_available="1" fi while getopts v:l:d:b:o:?h flag @@ -478,7 +478,7 @@ echo "* PF-build.sh Version: 1.0.6-Build_33 *" echo "***************************************" echo "Arguments:" echo "$(tput setaf 2)-v$(tput sgr0) Variant '$(tput setaf 2)All$(tput sgr0)' or variant file name" -echo "$(tput setaf 2)-l$(tput sgr0) Languages '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for english only" +echo "$(tput setaf 2)-l$(tput sgr0) Languages '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only" echo "$(tput setaf 2)-d$(tput sgr0) Devel build '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'" echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number" echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force or '$(tput setaf 2)0$(tput sgr0)' block output and delays" @@ -547,7 +547,7 @@ else fi fi -#'-l' argument defines if it is an english only version. Known values EN_ONLY / ALL +#'-l' argument defines if it is an English only version. Known values EN_ONLY / ALL #Check default language mode MULTI_LANGUAGE_CHECK=$(grep --max-count=1 "^#define LANG_MODE *" $SCRIPT_PATH/Firmware/config.h|sed -e's/ */ /g'|cut -d ' ' -f3) @@ -592,7 +592,7 @@ fi #Check if Build is selected via argument '-b' if [ ! -z "$build_flag" ] ; then - if [[ "$build_flag" == "Auto" && "$git_availible" == "1" ]] ; then + if [[ "$build_flag" == "Auto" && "$git_available" == "1" ]] ; then echo "Build changed to $build_flag" BUILD=$(git rev-list --count HEAD) elif [[ $build_flag =~ ^[0-9]+$ ]] ; then @@ -615,7 +615,7 @@ fi #echo "Output is:" $OUTPUT #Check git branch has changed -if [ ! -z "git_availible" ]; then +if [ ! -z "git_available" ]; then BRANCH="" CLEAN_PF_FW_BUILD=0 else @@ -772,7 +772,7 @@ do # set FW_REPOSITORY sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h - #Prepare english only or multilanguage version to be build + #Prepare English only or multi-language version to be build if [ $LANGUAGES == "EN_ONLY" ]; then echo " " echo "English only language firmware will be built"