Merge branch 'MK3_MK404' into PFW-1271_PF-buildv20
This commit is contained in:
commit
589b781d04
|
|
@ -0,0 +1,223 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# This bash script is used to compile automatically the MK404 simulator
|
||||||
|
#
|
||||||
|
# Supported OS: Linux64 bit
|
||||||
|
#
|
||||||
|
# Linux:
|
||||||
|
# Linux Ubuntu
|
||||||
|
# 1. Follow these instructions
|
||||||
|
# 2. Open Ubuntu bash and get latest updates with 'sudo apt-get update'
|
||||||
|
# 3. Install latest updates with 'sudo apt-get upgrade'
|
||||||
|
# 4.
|
||||||
|
#
|
||||||
|
# Version: 0.1-Build_3
|
||||||
|
# Change log:
|
||||||
|
# 11 Feb 2021, 3d-gussner, Inital
|
||||||
|
# 11 Feb 2021, 3d-gussner, Optional flags to check for updates
|
||||||
|
# 12 Feb 2021, 3d-gussner, Update cmake
|
||||||
|
# 13 Feb 2021, 3d-gussner, Auto build SD cards
|
||||||
|
|
||||||
|
while getopts c:u:f:m:g:?h flag
|
||||||
|
do
|
||||||
|
case "${flag}" in
|
||||||
|
c) check_flag=${OPTARG};;
|
||||||
|
u) update_flag=${OPTARG};;
|
||||||
|
f) force_flag=${OPTARG};;
|
||||||
|
m) mk404_flag=${OPTARG};;
|
||||||
|
g) graphics_flag=${OPTARG};;
|
||||||
|
?) help_flag=1;;
|
||||||
|
h) help_flag=1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo "$check_flag"
|
||||||
|
echo "$update_flag"
|
||||||
|
echo "$force_flag"
|
||||||
|
echo "$mk404_flag"
|
||||||
|
echo "$graphics_flag"
|
||||||
|
|
||||||
|
|
||||||
|
#### Start check if OSTYPE is supported
|
||||||
|
OS_FOUND=$( command -v uname)
|
||||||
|
case $( "${OS_FOUND}" | tr '[:upper:]' '[:lower:]') in
|
||||||
|
linux*)
|
||||||
|
TARGET_OS="linux"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
TARGET_OS='unknown'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Linux
|
||||||
|
if [ $TARGET_OS == "linux" ]; then
|
||||||
|
if [ $(uname -m) == "x86_64" ]; then
|
||||||
|
echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)"
|
||||||
|
Processor="64"
|
||||||
|
#elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then
|
||||||
|
# echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)"
|
||||||
|
# Processor="32"
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)"
|
||||||
|
echo "Please refer to the notes of build.sh$(tput sgr0)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 1)This script doesn't support your Operating system!"
|
||||||
|
echo "Please use Linux 64-bit"
|
||||||
|
echo "Read the notes of build.sh$(tput sgr0)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
#### End check if OSTYPE is supported
|
||||||
|
|
||||||
|
#### Check MK404 dependencies
|
||||||
|
packages=(
|
||||||
|
"libelf-dev"
|
||||||
|
"gcc-7"
|
||||||
|
"gcc-avr"
|
||||||
|
"libglew-dev"
|
||||||
|
"freeglut3-dev"
|
||||||
|
"libsdl-sound1.2-dev"
|
||||||
|
"libpng-dev"
|
||||||
|
"cmake"
|
||||||
|
"zip"
|
||||||
|
"wget"
|
||||||
|
"git"
|
||||||
|
"build-essential"
|
||||||
|
"lcov"
|
||||||
|
"mtools"
|
||||||
|
)
|
||||||
|
|
||||||
|
for check_package in ${packages[@]}; do
|
||||||
|
if dpkg-query -W -f'${db:Status-Abbrev}\n' $check_package 2>/dev/null \
|
||||||
|
| grep -q '^.i $'; then
|
||||||
|
echo "$(tput setaf 2)$check_package: Installed$(tput sgr0)"
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 1)$check_package: Not installed use $(tput setaf 3)'sudo apt install $check_package'$(tput setaf 1) to install missing package$(tput sgr0)"
|
||||||
|
not_installed=1;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$not_installed" = "1" ]; then
|
||||||
|
exit 4
|
||||||
|
fi
|
||||||
|
#### End Check MK404 dependencies
|
||||||
|
|
||||||
|
#### Set build environment
|
||||||
|
MK404_SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||||
|
MK404_URL="https://github.com/vintagepc/MK404.git"
|
||||||
|
MK404_owner="vintagepc"
|
||||||
|
MK404_project="MK404"
|
||||||
|
MK404_PATH="$MK404_SCRIPT_PATH/../MK404/master"
|
||||||
|
MK404_BUILD_PATH="$MK404_PATH/build"
|
||||||
|
|
||||||
|
|
||||||
|
# List few useful data
|
||||||
|
echo
|
||||||
|
echo "Script path :" $MK404_SCRIPT_PATH
|
||||||
|
echo "OS :" $OS
|
||||||
|
echo "OS type :" $TARGET_OS
|
||||||
|
echo ""
|
||||||
|
echo "MK404 path :" $MK404_PATH
|
||||||
|
|
||||||
|
# Clone MK404 if needed
|
||||||
|
if [ ! -d $MK404_PATH ]; then
|
||||||
|
#release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest)
|
||||||
|
#release_tag=$(basename $release_url)
|
||||||
|
#git clone -b $release_tag -- https://github.com/$MK404_owner/$MK404_project.git $MK404_PATH
|
||||||
|
git clone $MK404_URL $MK404_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
cd $MK404_PATH
|
||||||
|
|
||||||
|
# Check for updates ... WIP
|
||||||
|
|
||||||
|
# Check MK404
|
||||||
|
if [ "$force_flag" == "1" ]; then
|
||||||
|
check_flag=1
|
||||||
|
update_flag=1
|
||||||
|
fi
|
||||||
|
if [ "$update_flag" == "1" ]; then
|
||||||
|
check_flag=1
|
||||||
|
fi
|
||||||
|
if [ "$check_flag" == "1" ]; then
|
||||||
|
if [ -d $MK404_BUILD_PATH ]; then
|
||||||
|
cd $MK404_BUILD_PATH
|
||||||
|
MK404_current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ")
|
||||||
|
cd $MK404_PATH
|
||||||
|
else
|
||||||
|
echo "Cannot check current version as it has not been build."
|
||||||
|
fi
|
||||||
|
# Get local Commit_Hash
|
||||||
|
MK404_local_GIT_COMMIT_HASH=$(git log --pretty=format:"%H" -1)
|
||||||
|
# Get local Commit_Number
|
||||||
|
MK404_local_GIT_COMMIT_NUMBER=$(git rev-list HEAD --count)
|
||||||
|
# Get remote Commit_Hash
|
||||||
|
MK404_remote_GIT_COMMIT_HASH=$(git ls-remote --heads $(git config --get remote.origin.url) | grep "refs/heads/master" | cut -f 1)
|
||||||
|
# Get remote Commit_Number
|
||||||
|
MK404_remote_GIT_COMMIT_NUMBER=$(git rev-list origin/master --count)
|
||||||
|
# Output
|
||||||
|
echo "Current version : $MK404_current_version"
|
||||||
|
echo ""
|
||||||
|
echo "Current local hash : $MK404_local_GIT_COMMIT_HASH"
|
||||||
|
echo "Current local commit nr : $MK404_local_GIT_COMMIT_NUMBER"
|
||||||
|
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then
|
||||||
|
echo "$(tput setaf 1)"
|
||||||
|
else
|
||||||
|
echo "$(tput sgr 0)"
|
||||||
|
fi
|
||||||
|
echo "Current remote hash : $MK404_remote_GIT_COMMIT_HASH"
|
||||||
|
echo "Current remote commit nr: $MK404_remote_GIT_COMMIT_NUMBER"
|
||||||
|
echo "$(tput sgr 0)"
|
||||||
|
|
||||||
|
# Check for updates
|
||||||
|
if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then
|
||||||
|
echo "$(tput setaf 2)Update is availible.$(tput sgr 0)"
|
||||||
|
read -t 10 -n 1 -p "$(tput setaf 3)Update now Y/n$(tput sgr 0)" update_answer
|
||||||
|
if [ "$update_answer" == "Y" ]; then
|
||||||
|
update_flag=1
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Check for updates
|
||||||
|
if [ "$update_flag" == "1" ]; then
|
||||||
|
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then
|
||||||
|
echo ""
|
||||||
|
git fetch --all
|
||||||
|
read -t 10 -p "$(tput setaf 2)Updating MK404 !$(tput sgr 0)"
|
||||||
|
echo ""
|
||||||
|
git reset --hard origin/master
|
||||||
|
read -t 10 -p "$(tput setaf 2)Compiling MK404 !$(tput sgr 0)"
|
||||||
|
echo ""
|
||||||
|
force_flag=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prepare MK404
|
||||||
|
mkdir -p $MK404_BUILD_PATH
|
||||||
|
if [[ ! -f "$MK404_BUILD_PATH/Makefile" || "$force_flag" == "1" ]]; then
|
||||||
|
# Init and update submodules
|
||||||
|
git submodule init
|
||||||
|
git submodule update
|
||||||
|
cmake -B$MK404_BUILD_PATH -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make MK404
|
||||||
|
cd $MK404_BUILD_PATH
|
||||||
|
if [[ ! -f "$MK404_BUILD_PATH/MK404" || "$force_flag" == "1" ]]; then
|
||||||
|
make
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make SDcards
|
||||||
|
if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; then
|
||||||
|
cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3S_SDcard.bin
|
||||||
|
cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3_SDcard.bin
|
||||||
|
cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25_13_SDcard.bin
|
||||||
|
cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25S_13_SDcard.bin
|
||||||
|
cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3SMMU2_SDcard.bin
|
||||||
|
cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3MMU2_SDcard.bin
|
||||||
|
fi
|
||||||
|
|
||||||
439
PF-build.sh
439
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
|
# 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.
|
# it will use the default Arduino IDE folders and so can corrupt the build environment.
|
||||||
#
|
#
|
||||||
# Version: 1.0.6-Build_37
|
# Version: 1.2.0-Build_49
|
||||||
# Change log:
|
# 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'
|
# 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
|
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
|
||||||
|
|
@ -136,7 +136,18 @@
|
||||||
# 08 Jan 2021, 3d-gussner, Comment out 'sudo' auto installation
|
# 08 Jan 2021, 3d-gussner, Comment out 'sudo' auto installation
|
||||||
# Add '-?' '-h' help option
|
# Add '-?' '-h' help option
|
||||||
# 27 Jan 2021, 3d-gussner, Add `-c`, `-p` and `-n` options
|
# 27 Jan 2021, 3d-gussner, Add `-c`, `-p` and `-n` options
|
||||||
|
# 12 Feb 2021, 3d-gussner, Add MK404-build.sh
|
||||||
|
# 13 Feb 2021, 3d-gussner, Indentations
|
||||||
|
# 13 Feb 2021, 3d-gussner, MK404 improvements like "flash" MK3, MK3S languages files to MK404 xflash.
|
||||||
# 27 Feb 2021, 3d-gussner, Add './lang-community.sh' and update exits
|
# 27 Feb 2021, 3d-gussner, Add './lang-community.sh' and update exits
|
||||||
|
# 03 May 2021, 3d-gussner, Update exit numbers
|
||||||
|
# 01-14 prepare build env
|
||||||
|
# 21-32 prepare compiling
|
||||||
|
# 41-47 compiling
|
||||||
|
# 51-54 cleanup
|
||||||
|
# 61-62 MK404
|
||||||
|
# 03 May 2021, 3d-gussner, Update documentation and change version to v1.2.0
|
||||||
|
# 03 May 2021, 3d-gussner, Add SIM atmega404
|
||||||
|
|
||||||
#### Start check if OSTYPE is supported
|
#### Start check if OSTYPE is supported
|
||||||
OS_FOUND=$( command -v uname)
|
OS_FOUND=$( command -v uname)
|
||||||
|
|
@ -244,17 +255,128 @@ fi
|
||||||
|
|
||||||
#### End prepare bash / Linux environment
|
#### End prepare bash / Linux environment
|
||||||
|
|
||||||
|
# Check for options/flags
|
||||||
|
while getopts b:c:d:f:g:h:i:l:m:n:o:p:v:x:?h flag
|
||||||
|
do
|
||||||
|
case "${flag}" in
|
||||||
|
b) build_flag=${OPTARG};;
|
||||||
|
c) clean_flag=${OPTARG};;
|
||||||
|
d) devel_flag=${OPTARG};;
|
||||||
|
f) board_flash_flag=${OPTARG};;
|
||||||
|
g) graphics_flag=${OPTARG};;
|
||||||
|
h) help_flag=1;;
|
||||||
|
i) IDE_flag=${OPTARG};;
|
||||||
|
l) language_flag=${OPTARG};;
|
||||||
|
m) mk404_flag=${OPTARG};;
|
||||||
|
n) new_build_flag=${OPTARG};;
|
||||||
|
o) output_flag=${OPTARG};;
|
||||||
|
p) prusa_flag=${OPTARG};;
|
||||||
|
v) variant_flag=${OPTARG};;
|
||||||
|
x) board_mem_flag=${OPTARG};;
|
||||||
|
?) help_flag=1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
#
|
||||||
|
# '?' 'h' argument usage and help
|
||||||
|
if [ "$help_flag" == "1" ] ; then
|
||||||
|
echo "***************************************"
|
||||||
|
echo "* PF-build.sh Version: 1.2.0-Build_49 *"
|
||||||
|
echo "***************************************"
|
||||||
|
echo "Arguments:"
|
||||||
|
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)-c$(tput sgr0) Do not clean up lang build'$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes"
|
||||||
|
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)-f$(tput sgr0) Board flash size '$(tput setaf 2)256$(tput sgr0)','$(tput setaf 2)384$(tput sgr0)','$(tput setaf 2)512$(tput sgr0)','$(tput setaf 2)1024$(tput sgr0)''$(tput setaf 2)32M$(tput sgr0)'"
|
||||||
|
echo "$(tput setaf 2)-g$(tput sgr0) Start MK404 grafics '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' lite '$(tput setaf 2)2$(tput sgr0)' fancy"
|
||||||
|
echo "$(tput setaf 2)-h$(tput sgr0) Help"
|
||||||
|
echo "$(tput setaf 2)-i$(tput sgr0) Arduino IDE version '$(tput setaf 2)1.8.5$(tput sgr0)', '$(tput setaf 2)1.8.13$(tput sgr0)'"
|
||||||
|
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)-m$(tput sgr0) Start MK404 sim '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2"
|
||||||
|
echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes"
|
||||||
|
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)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes"
|
||||||
|
echo "$(tput setaf 2)-v$(tput sgr0) Variant '$(tput setaf 2)All$(tput sgr0)' or variant file name"
|
||||||
|
echo "$(tput setaf 2)-x$(tput sgr0) Board memory size '$(tput setaf 2)8$(tput sgr0)' or '$(tput setaf 2)64$(tput sgr0)' Kb."
|
||||||
|
echo "$(tput setaf 2)-?$(tput sgr0) Help"
|
||||||
|
echo
|
||||||
|
echo "Brief USAGE:"
|
||||||
|
echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n]"
|
||||||
|
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 -c 1 -p 1 -n 1$(tput sgr0)"
|
||||||
|
echo " Will build MK3S multi language final GOLD firmware "
|
||||||
|
echo " with current commit count number and output extra information,"
|
||||||
|
echo " not delete lang build temporary files, keep Configuration_prusa.h and build with new fresh build folder."
|
||||||
|
echo
|
||||||
|
exit 6
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Check if Build is selected with argument '-f'
|
||||||
|
if [ ! -z "$board_flash_flag" ] ; then
|
||||||
|
if [ "$board_flash_flag" == "256" ] ; then
|
||||||
|
BOARD_FLASH="0x3FFFF"
|
||||||
|
BOARD_maximum_size="253952"
|
||||||
|
echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)"
|
||||||
|
elif [ "$board_flash_flag" == "384" ] ; then
|
||||||
|
BOARD_FLASH="0x5FFFF"
|
||||||
|
BOARD_maximum_size="385024"
|
||||||
|
echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)"
|
||||||
|
elif [ "$board_flash_flag" == "512" ] ; then
|
||||||
|
BOARD_FLASH="0x7FFFF"
|
||||||
|
BOARD_maximum_size="516096"
|
||||||
|
echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)"
|
||||||
|
elif [ "$board_flash_flag" == "1024" ] ; then
|
||||||
|
BOARD_FLASH="0xFFFFF"
|
||||||
|
BOARD_maximum_size="1040384"
|
||||||
|
echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)"
|
||||||
|
elif [[ "$board_flash_flag" == "32M" || "$board_flash_flag" == "32768" ]] ; then
|
||||||
|
BOARD_FLASH="0x1FFFFFF"
|
||||||
|
BOARD_maximum_size="33546240"
|
||||||
|
echo "Board flash size : 32 Mb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)"
|
||||||
|
else
|
||||||
|
echo "Unsupported board flash size chosen. Only '256', '384', '512', '1024' and '32M' are allowed."
|
||||||
|
exit 7
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Check if Build is selected with argument '-x'
|
||||||
|
if [ ! -z "$board_mem_flag" ] ; then
|
||||||
|
if [ "$board_mem_flag" == "8" ] ; then
|
||||||
|
BOARD_MEM="0x21FF"
|
||||||
|
echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)"
|
||||||
|
elif [ "$board_mem_flag" == "64" ] ; then
|
||||||
|
BOARD_MEM="0xFFFF"
|
||||||
|
echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)"
|
||||||
|
else
|
||||||
|
echo "Unsupported board mem size chosen. Only '8', '64' are allowed."
|
||||||
|
exit 8
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Check if Arduino IDE version is correct
|
||||||
|
if [ ! -z "$IDE_flag" ]; then
|
||||||
|
if [[ "$IDE_flag" == "1.8.5" || "$IDE_flag" == "1.8.13" ]]; then
|
||||||
|
ARDUINO_ENV="${IDE_flag}"
|
||||||
|
else
|
||||||
|
ARDUINO_ENV="1.8.5"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ARDUINO_ENV="1.8.5"
|
||||||
|
fi
|
||||||
|
|
||||||
#### Set build environment
|
#### Set build environment
|
||||||
ARDUINO_ENV="1.8.5"
|
|
||||||
BUILD_ENV="1.0.6"
|
BUILD_ENV="1.0.6"
|
||||||
BOARD="prusa_einsy_rambo"
|
BOARD="prusa_einsy_rambo"
|
||||||
BOARD_PACKAGE_NAME="PrusaResearch"
|
BOARD_PACKAGE_NAME="PrusaResearch"
|
||||||
BOARD_VERSION="1.0.3"
|
BOARD_VERSION="1.0.3"
|
||||||
#BOARD_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/Prusa_Merge_v1.0.3/IDE_Board_Manager/package_prusa3d_index.json"
|
#BOARD_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json"
|
||||||
BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json"
|
BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json"
|
||||||
BOARD_FILENAME="prusa3dboards"
|
BOARD_FILENAME="prusa3dboards"
|
||||||
#BOARD_FILE_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/Prusa_Merge_v1.0.3/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2"
|
#BOARD_FILE_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2"
|
||||||
BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2"
|
BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2"
|
||||||
#PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env-1/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip"
|
#PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env-1/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip"
|
||||||
PF_BUILD_FILE_URL="https://github.com/prusa3d/PF-build-env/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip"
|
PF_BUILD_FILE_URL="https://github.com/prusa3d/PF-build-env/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip"
|
||||||
|
|
@ -270,6 +392,12 @@ echo ""
|
||||||
echo "Arduino IDE :" $ARDUINO_ENV
|
echo "Arduino IDE :" $ARDUINO_ENV
|
||||||
echo "Build env :" $BUILD_ENV
|
echo "Build env :" $BUILD_ENV
|
||||||
echo "Board :" $BOARD
|
echo "Board :" $BOARD
|
||||||
|
if [ ! -z "$BOARD_FLASH" ] ; then
|
||||||
|
echo "Board flash :" $BOARD_FLASH
|
||||||
|
fi
|
||||||
|
if [ ! -z "$BOARD_MEM" ] ; then
|
||||||
|
echo "Board mem :" $BOARD_MEM
|
||||||
|
fi
|
||||||
echo "Package name:" $BOARD_PACKAGE_NAME
|
echo "Package name:" $BOARD_PACKAGE_NAME
|
||||||
echo "Board v. :" $BOARD_VERSION
|
echo "Board v. :" $BOARD_VERSION
|
||||||
echo "Specific Lib:" $LIB
|
echo "Specific Lib:" $LIB
|
||||||
|
|
@ -279,10 +407,10 @@ echo ""
|
||||||
|
|
||||||
#Check if build exists and creates it if not
|
#Check if build exists and creates it if not
|
||||||
if [ ! -d "../PF-build-dl" ]; then
|
if [ ! -d "../PF-build-dl" ]; then
|
||||||
mkdir ../PF-build-dl || exit 6
|
mkdir ../PF-build-dl || exit 9
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd ../PF-build-dl || exit 7
|
cd ../PF-build-dl || exit 10
|
||||||
BUILD_ENV_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
BUILD_ENV_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||||
|
|
||||||
# Check if PF-build-env-<version> exists and downloads + creates it if not
|
# Check if PF-build-env-<version> exists and downloads + creates it if not
|
||||||
|
|
@ -305,7 +433,7 @@ if [ $TARGET_OS == "windows" ]; then
|
||||||
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
||||||
echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 8
|
unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 9
|
||||||
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor
|
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor
|
||||||
echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
|
|
@ -323,7 +451,7 @@ if [ $TARGET_OS == "linux" ]; then
|
||||||
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
||||||
echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8
|
tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 9
|
||||||
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor
|
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor
|
||||||
echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
|
|
@ -377,12 +505,12 @@ fi
|
||||||
if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then
|
if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then
|
||||||
echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)"
|
echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
wget $BOARD_FILE_URL || exit 9
|
wget $BOARD_FILE_URL || exit 10
|
||||||
fi
|
fi
|
||||||
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
||||||
echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10
|
tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 11
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME
|
||||||
fi
|
fi
|
||||||
|
|
@ -406,13 +534,13 @@ fi
|
||||||
if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then
|
if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then
|
||||||
echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)"
|
echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
wget $PF_BUILD_FILE_URL || exit 11
|
wget $PF_BUILD_FILE_URL || exit 12
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
fi
|
fi
|
||||||
if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then
|
if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then
|
||||||
echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12
|
unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 13
|
||||||
echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
fi
|
fi
|
||||||
|
|
@ -438,7 +566,7 @@ if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Proc
|
||||||
echo "Script will not continue until this have been fixed $(tput setaf 2)"
|
echo "Script will not continue until this have been fixed $(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
exit 13
|
exit 14
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -453,65 +581,6 @@ if type git > /dev/null; then
|
||||||
git_available="1"
|
git_available="1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while getopts v:l:d:b:o:c:p:n:?h 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};;
|
|
||||||
c) clean_flag=${OPTARG};;
|
|
||||||
p) prusa_flag=${OPTARG};;
|
|
||||||
n) new_build_flag=${OPTARG};;
|
|
||||||
?) help_flag=1;;
|
|
||||||
h) help_flag=1;;
|
|
||||||
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";
|
|
||||||
#echo "help_flag: $help_flag"
|
|
||||||
#echo "clean_flag: $clean_flag"
|
|
||||||
#echo "prusa_flag: $prusa_flag"
|
|
||||||
#echo "new_build_flag: $new_build_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)-c$(tput sgr0) Do not clean up lang build'$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes"
|
|
||||||
echo "$(tput setaf 2)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes"
|
|
||||||
echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes"
|
|
||||||
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] [-c] [-p] [-n]"
|
|
||||||
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 -c 1 -p 1 -n 1$(tput sgr0)"
|
|
||||||
echo " Will build MK3S multi language final GOLD firmware "
|
|
||||||
echo " with current commit count number and output extra information,"
|
|
||||||
echo " not delete lang build temporary files, keep Configuration_prusa.h and build with new fresh build folder."
|
|
||||||
echo
|
|
||||||
exit 14
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# '-v' argument defines which variant of the Prusa Firmware will be compiled
|
# '-v' argument defines which variant of the Prusa Firmware will be compiled
|
||||||
if [ -z "$variant_flag" ] ; then
|
if [ -z "$variant_flag" ] ; then
|
||||||
|
|
@ -534,7 +603,7 @@ if [ -z "$variant_flag" ] ; then
|
||||||
;;
|
;;
|
||||||
"Quit")
|
"Quit")
|
||||||
echo "You chose to stop"
|
echo "You chose to stop"
|
||||||
exit 20
|
exit 22
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)"
|
echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)"
|
||||||
|
|
@ -555,7 +624,7 @@ else
|
||||||
echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)"
|
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
|
ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
exit 21
|
exit 23
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -588,17 +657,19 @@ else
|
||||||
else
|
else
|
||||||
echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)"
|
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 language '-l' 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
|
exit 24
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
#Check if DEV_STATUS is selected via argument '-d'
|
#Check if DEV_STATUS is selected via argument '-d'
|
||||||
if [ ! -z "$devel_flag" ] ; then
|
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
|
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
|
DEV_STATUS_SELECTED=$devel_flag
|
||||||
|
elif [[ "$devel_flag" == "atmega404" || "$devel_flag" == "atmega404_no_bootloader" ]] ; then
|
||||||
|
MK404_DEBUG=$devel_flag
|
||||||
else
|
else
|
||||||
echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)"
|
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 devel '-d' 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
|
exit 25
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -612,7 +683,7 @@ if [ ! -z "$build_flag" ] ; then
|
||||||
else
|
else
|
||||||
echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)"
|
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)"
|
echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)"
|
||||||
exit 24
|
exit 26
|
||||||
|
|
||||||
fi
|
fi
|
||||||
echo "New Build number is: $BUILD"
|
echo "New Build number is: $BUILD"
|
||||||
|
|
@ -647,18 +718,18 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Set BUILD_ENV_PATH
|
#Set BUILD_ENV_PATH
|
||||||
cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 25
|
cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 27
|
||||||
BUILD_ENV_PATH="$( pwd -P )"
|
BUILD_ENV_PATH="$( pwd -P )"
|
||||||
|
|
||||||
cd ../..
|
cd ../..
|
||||||
|
|
||||||
#Checkif BUILD_PATH exists and if not creates it
|
#Checkif BUILD_PATH exists and if not creates it
|
||||||
if [ ! -d "Prusa-Firmware-build" ]; then
|
if [ ! -d "Prusa-Firmware-build" ]; then
|
||||||
mkdir Prusa-Firmware-build || exit 26
|
mkdir Prusa-Firmware-build || exit 28
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Set the BUILD_PATH for Arduino IDE
|
#Set the BUILD_PATH for Arduino IDE
|
||||||
cd Prusa-Firmware-build || exit 27
|
cd Prusa-Firmware-build || exit 29
|
||||||
BUILD_PATH="$( pwd -P )"
|
BUILD_PATH="$( pwd -P )"
|
||||||
|
|
||||||
#Check git branch has changed
|
#Check git branch has changed
|
||||||
|
|
@ -672,6 +743,7 @@ fi
|
||||||
for v in ${VARIANTS[*]}
|
for v in ${VARIANTS[*]}
|
||||||
do
|
do
|
||||||
VARIANT=$(basename "$v" ".h")
|
VARIANT=$(basename "$v" ".h")
|
||||||
|
MK404_PRINTER=$(grep --max-count=1 "\bPRINTER_TYPE\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3 | cut -d '_' -f2)
|
||||||
# Find firmware version in Configuration.h file and use it to generate the hex filename
|
# 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')
|
FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g')
|
||||||
if [ -z "$BUILD" ] ; then
|
if [ -z "$BUILD" ] ; then
|
||||||
|
|
@ -729,6 +801,12 @@ do
|
||||||
mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28
|
mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28
|
||||||
fi
|
fi
|
||||||
OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD"
|
OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD"
|
||||||
|
if [ "$BOARD" != "prusa_einsy_rambo" ]; then
|
||||||
|
if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD" ]; then
|
||||||
|
mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD || exit 28
|
||||||
|
fi
|
||||||
|
OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$BOARD"
|
||||||
|
fi
|
||||||
|
|
||||||
#Check if exactly the same hexfile already exists
|
#Check if exactly the same hexfile already exists
|
||||||
if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then
|
if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then
|
||||||
|
|
@ -757,25 +835,28 @@ do
|
||||||
|
|
||||||
#List some useful data
|
#List some useful data
|
||||||
echo "$(tput setaf 2)$(tput setab 7) "
|
echo "$(tput setaf 2)$(tput setab 7) "
|
||||||
|
echo "Printer :" $MK404_PRINTER
|
||||||
echo "Variant :" $VARIANT
|
echo "Variant :" $VARIANT
|
||||||
echo "Firmware :" $FW
|
echo "Firmware :" $FW
|
||||||
echo "Build # :" $BUILD
|
echo "Build # :" $BUILD
|
||||||
echo "Dev Check :" $DEV_CHECK
|
echo "Dev Check :" $DEV_CHECK
|
||||||
echo "DEV Status :" $DEV_STATUS
|
echo "DEV Status :" $DEV_STATUS
|
||||||
echo "Motherboard:" $MOTHERBOARD
|
echo "Motherboard:" $MOTHERBOARD
|
||||||
|
echo "Board flash:" $BOARD_FLASH
|
||||||
|
echo "Board mem :" $BOARD_MEM
|
||||||
echo "Languages :" $LANGUAGES
|
echo "Languages :" $LANGUAGES
|
||||||
echo "Hex-file Folder:" $OUTPUT_FOLDER
|
echo "Hex-file Folder:" $OUTPUT_FOLDER
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
|
|
||||||
#Prepare Firmware to be compiled by copying variant as Configuration_prusa.h
|
#Prepare Firmware to be compiled by copying variant as Configuration_prusa.h
|
||||||
if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then
|
if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then
|
||||||
cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29
|
cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 31
|
||||||
else
|
else
|
||||||
echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)"
|
echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)"
|
||||||
if [ $OUTPUT == "1" ] ; then
|
if [ $OUTPUT == "1" ] ; then
|
||||||
read -t 10 -p "Press Enter to continue..."
|
read -t 10 -p "Press Enter to continue..."
|
||||||
fi
|
fi
|
||||||
cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29
|
cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 31
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint
|
#Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint
|
||||||
|
|
@ -797,6 +878,82 @@ do
|
||||||
echo " "
|
echo " "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#Check if compiler flags are set to Prusa specific needs for the rambo board.
|
||||||
|
#if [ $TARGET_OS == "windows" ]; then
|
||||||
|
#RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
#New fresh PF-Firmware-build
|
||||||
|
if [ "$new_build_flag" == "1" ]; then
|
||||||
|
rm -r -f $BUILD_PATH/* || exit 54
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prepare Board mem and flash modifications
|
||||||
|
## Check board mem size
|
||||||
|
CURRENT_BOARD_MEM=$(grep "#define RAMEND" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h | sed -e's/.* //g'|cut -d ' ' -f3|tr -d $'\n')
|
||||||
|
if [ $CURRENT_BOARD_MEM != "0x21FF" ] ; then
|
||||||
|
echo "Board mem has been already modified or not reset"
|
||||||
|
echo "Current:" $CURRENT_BOARD_MEM
|
||||||
|
PS3="Select $(tput setaf 2)Yes$(tput sgr 0) if you want to reset it."
|
||||||
|
select yn in "Yes" "No"; do
|
||||||
|
case $yn in
|
||||||
|
Yes)
|
||||||
|
echo "Resetting board mem size"
|
||||||
|
sed -i -- "s/^#define RAMEND .*$/#define RAMEND 0x21FF/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Continuing with modified mem size"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
## Modify board mem size
|
||||||
|
if [[ ! -z $BOARD_MEM && "$BOARD_MEM" != "0x21FF" ]] ; then
|
||||||
|
echo "$(tput setaf 3)Modifying board memory size (hex):$(tput sgr 0)"
|
||||||
|
echo "Old:" $CURRENT_BOARD_MEM
|
||||||
|
echo "New:" $BOARD_MEM
|
||||||
|
read -t 5 -p "To cancel press $(tput setaf 1)CRTL+C$(tput sgr 0)"
|
||||||
|
echo ""
|
||||||
|
sed -i -- "s/^#define RAMEND 0x21FF/#define RAMEND ${BOARD_MEM}/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Check board flash size
|
||||||
|
CURRENT_BOARD_FLASH=$(grep "#define FLASHEND" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h | sed -e's/.* //g'|cut -d ' ' -f3|tr -d $'\n')
|
||||||
|
CURRENT_BOARD_maximum_size=$(grep "prusa_einsy_rambo.upload.maximum_size" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt |cut -d '=' -f2|tr -d $'\n')
|
||||||
|
if [[ $CURRENT_BOARD_FLASH != "0x3FFFF" || $CURRENT_BOARD_maximum_size != "253952" ]] ; then
|
||||||
|
echo "Board flash has been already modified or not reset"
|
||||||
|
echo "Current flash size:" $CURRENT_BOARD_FLASH
|
||||||
|
echo "Current max. size:" $CURRENT_BOARD_maximum_size
|
||||||
|
PS3="Select $(tput setaf 2)Yes$(tput sgr 0) if you want to reset it."
|
||||||
|
select yn in "Yes" "No"; do
|
||||||
|
case $yn in
|
||||||
|
Yes)
|
||||||
|
echo "$(tput setaf 1)Resetting board flash size$(tput sgr 0)"
|
||||||
|
sed -i -- "s/^#define FLASHEND .*$/#define FLASHEND 0x3FFFF/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h
|
||||||
|
sed -i -- "s/^prusa_einsy_rambo.upload.maximum_size.*/prusa_einsy_rambo.upload.maximum_size=253952/g" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "$(tput setaf 3)Continuing with modified flash size$(tput sgr 0)"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
## Modify boad flash size
|
||||||
|
if [[ ! -z $BOARD_FLASH && "$BOARD_FLASH" != "0x3FFFF" ]] ; then
|
||||||
|
echo "Modifying board flash size (hex):"
|
||||||
|
echo "Old flash size:" $CURRENT_BOARD_FLASH
|
||||||
|
echo "New flash size:" $BOARD_FLASH
|
||||||
|
echo "Old max. size:" $CURRENT_BOARD_maximum_size
|
||||||
|
echo "New max. size:" $BOARD_maximum_size
|
||||||
|
read -t 5 -p "To cancel press $(tput setaf 1)CRTL+C$(tput sgr 0)"
|
||||||
|
sed -i -- "s/^#define FLASHEND .*/#define FLASHEND ${BOARD_FLASH}/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h
|
||||||
|
sed -i -- "s/^prusa_einsy_rambo.upload.maximum_size.*/prusa_einsy_rambo.upload.maximum_size=${BOARD_maximum_size}/g" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt
|
||||||
|
fi
|
||||||
|
|
||||||
#Check if compiler flags are set to Prusa specific needs for the rambo board.
|
#Check if compiler flags are set to Prusa specific needs for the rambo board.
|
||||||
# if [ $TARGET_OS == "windows" ]; then
|
# if [ $TARGET_OS == "windows" ]; then
|
||||||
# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt"
|
# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt"
|
||||||
|
|
@ -820,13 +977,8 @@ do
|
||||||
sleep 2
|
sleep 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#New fresh PF-Firmware-build
|
#$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 41
|
||||||
if [ "$new_build_flag" == "1" ]; then
|
$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 42
|
||||||
rm -r -f $BUILD_PATH/* || exit 36
|
|
||||||
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 30
|
|
||||||
$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)"
|
echo "$(tput sgr 0)"
|
||||||
|
|
||||||
if [ $LANGUAGES == "ALL" ]; then
|
if [ $LANGUAGES == "ALL" ]; then
|
||||||
|
|
@ -839,7 +991,7 @@ do
|
||||||
fi
|
fi
|
||||||
cd $SCRIPT_PATH/lang
|
cd $SCRIPT_PATH/lang
|
||||||
echo "$(tput setaf 3)"
|
echo "$(tput setaf 3)"
|
||||||
./config.sh || exit 31
|
./config.sh || exit 43
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
# Check if previous languages and firmware build exist and if so clean them up
|
# Check if previous languages and firmware build exist and if so clean them up
|
||||||
if [ -f "lang_en.tmp" ]; then
|
if [ -f "lang_en.tmp" ]; then
|
||||||
|
|
@ -864,11 +1016,11 @@ do
|
||||||
fi
|
fi
|
||||||
# build languages
|
# build languages
|
||||||
echo "$(tput setaf 3)"
|
echo "$(tput setaf 3)"
|
||||||
./lang-build.sh || exit 32
|
./lang-build.sh || exit 44
|
||||||
#Community language support
|
# build community languages
|
||||||
./lang-community.sh || exit 33
|
./lang-community.sh || exit 45
|
||||||
# Combine compiled firmware with languages
|
# Combine compiled firmware with languages
|
||||||
./fw-build.sh || exit 34
|
./fw-build.sh || exit 46
|
||||||
cp not_tran.txt not_tran_$VARIANT.txt
|
cp not_tran.txt not_tran_$VARIANT.txt
|
||||||
cp not_used.txt not_used_$VARIANT.txt
|
cp not_used.txt not_used_$VARIANT.txt
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
|
|
@ -877,6 +1029,11 @@ do
|
||||||
# If the motherboard is an EINSY just copy one hexfile
|
# If the motherboard is an EINSY just copy one hexfile
|
||||||
if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then
|
if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then
|
||||||
echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)"
|
echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)"
|
||||||
|
# Make a copy of "lang.bin" for MK404 MK3 and MK3S
|
||||||
|
if [ ! -z "$mk404_flag" ]; then
|
||||||
|
cp -f lang.bin $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin
|
||||||
|
fi
|
||||||
|
# End of "lang.bin" for MK3 and MK3S copy
|
||||||
cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex
|
cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex
|
||||||
else
|
else
|
||||||
echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)"
|
echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)"
|
||||||
|
|
@ -891,29 +1048,38 @@ do
|
||||||
zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
||||||
rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
||||||
elif [ $TARGET_OS == "linux" ]; then
|
elif [ $TARGET_OS == "linux" ]; then
|
||||||
|
# Make a copy for MK404 sim of MK2, MK2.5, MK2.5S firmware
|
||||||
|
if [ ! -z "$mk404_flag" ]; then
|
||||||
|
cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex
|
||||||
|
fi
|
||||||
|
# End of MK2, MK2.5, MK2.5S firmware copy
|
||||||
zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Cleanup after build
|
# Cleanup after build
|
||||||
if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then
|
if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then
|
||||||
echo "$(tput setaf 3)"
|
echo "$(tput setaf 3)"
|
||||||
./fw-clean.sh || exit 35
|
./fw-clean.sh || exit 51
|
||||||
./lang-clean.sh || exit 36
|
./lang-clean.sh || exit 52
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)"
|
echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)"
|
||||||
cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 37
|
cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 47
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Cleanup Firmware
|
# Cleanup Firmware
|
||||||
if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then
|
if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then
|
||||||
rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 38
|
rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 53
|
||||||
fi
|
fi
|
||||||
|
# Delete dupblicates
|
||||||
if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1
|
if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1
|
||||||
then
|
then
|
||||||
rm $SCRIPT_PATH/lang/*RAMBo10a*.txt
|
rm $SCRIPT_PATH/lang/*RAMBo10a*.txt
|
||||||
fi
|
fi
|
||||||
|
# MK2 not supported in this branch
|
||||||
if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1
|
if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1
|
||||||
then
|
then
|
||||||
rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt
|
rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt
|
||||||
|
|
@ -929,7 +1095,7 @@ do
|
||||||
|
|
||||||
#New fresh PF-Firmware-build
|
#New fresh PF-Firmware-build
|
||||||
if [ "$new_build_flag" == "1" ]; then
|
if [ "$new_build_flag" == "1" ]; then
|
||||||
rm -r -f $BUILD_PATH/* || exit 39
|
rm -r -f $BUILD_PATH/* || exit 54
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Restore files to previous state
|
# Restore files to previous state
|
||||||
|
|
@ -945,13 +1111,86 @@ do
|
||||||
if [ $OUTPUT == "1" ] ; then
|
if [ $OUTPUT == "1" ] ; then
|
||||||
sleep 5
|
sleep 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Restore build env files to previous state
|
||||||
|
sed -i -- "s/^#define FLASHEND .*$/#define FLASHEND 0x3FFFF/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h
|
||||||
|
sed -i -- "s/^prusa_einsy_rambo.upload.maximum_size.*/prusa_einsy_rambo.upload.maximum_size=253952/g" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt
|
||||||
|
sed -i -- "s/^#define RAMEND.*/#define RAMEND 0x21FF/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Switch to hex path and list build files
|
# Switch to hex path and list build files
|
||||||
cd $SCRIPT_PATH
|
cd $SCRIPT_PATH
|
||||||
cd ..
|
|
||||||
echo "$(tput setaf 2) "
|
echo "$(tput setaf 2) "
|
||||||
echo " "
|
echo " "
|
||||||
echo "Build done, please use Slic3rPE > 1.41.0 to upload the firmware"
|
echo "Build done, please use Slic3rPE > 1.41.0 to upload the firmware"
|
||||||
echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $(tput sgr 0)"
|
echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $(tput sgr 0)"
|
||||||
#### End building
|
#### End building
|
||||||
|
|
||||||
|
|
||||||
|
#### MK404 Simulator
|
||||||
|
|
||||||
|
# Check/compile MK404 sim
|
||||||
|
if [ ! -z "$mk404_flag" ]; then
|
||||||
|
./MK404-build.sh -c1 || exit 61
|
||||||
|
|
||||||
|
# For Prusa MK2, MK2.5/S
|
||||||
|
if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then
|
||||||
|
MK404_PRINTER="${MK404_PRINTER}_mR13"
|
||||||
|
else
|
||||||
|
if [[ "$mk404_flag" == "2" || "$mk404_flag" == "MMU2" || "$mk404_flag" == "MMU2S" ]]; then # Check if MMU2 is selected only for MK3/S
|
||||||
|
MK404_PRINTER="${MK404_PRINTER}MMU2"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run MK404 with 'debugcore' and/or 'bootloader-file'
|
||||||
|
echo "MK404_DEBUG --$MK404_DEBUG--"
|
||||||
|
if [ "$MK404_DEBUG" == "atmega404" ]; then
|
||||||
|
MK404_options="--debugcore"
|
||||||
|
elif [ "$MK404_DEBUG" == "atmega404_no_bootloader" ]; then
|
||||||
|
MK404_options='--debugcore --bootloader-file ""'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run MK404 with grafics
|
||||||
|
if [ ! -z "$graphics_flag" ]; then
|
||||||
|
echo "MK404_options --$MK404_options--"
|
||||||
|
if [ ! -z "$MK404_options" ]; then
|
||||||
|
MK404_options="${MK404_options} --colour-extrusion --extrusion Quad_HR -g "
|
||||||
|
else
|
||||||
|
MK404_options="--colour-extrusion --extrusion Quad_HR -g "
|
||||||
|
fi
|
||||||
|
if [[ "$graphics_flag" == "1" || "$graphics_flag" == "lite" ]]; then
|
||||||
|
MK404_options="${MK404_options}lite"
|
||||||
|
elif [[ "$graphics_flag" == "2" || "$graphics_flag" == "fancy" ]]; then
|
||||||
|
MK404_options="${MK404_options}fancy"
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 1)Unsupported MK404 graphics option $graphics_flag$(tput sgr 0)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Output some useful data
|
||||||
|
echo "Printer: $MK404_PRINTER"
|
||||||
|
echo "Options: $MK404_options"
|
||||||
|
|
||||||
|
# Change to MK404 build folder
|
||||||
|
cd ../MK404/master/build
|
||||||
|
|
||||||
|
# Copy language bin file for MK3 and MK3S to xflash
|
||||||
|
# if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then
|
||||||
|
# echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${MK404_PRINTER}_xflash.bin'"
|
||||||
|
# dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${MK404_PRINTER}_xflash.bin
|
||||||
|
# dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${MK404_PRINTER}_xflash.bin conv=notrunc
|
||||||
|
# fi
|
||||||
|
|
||||||
|
#Decide which hex file to use EN_ONLY or Multi language
|
||||||
|
if [ "$LANGUAGES" == "ALL" ]; then
|
||||||
|
MK404_firmware_file=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex
|
||||||
|
else
|
||||||
|
MK404_firmware_file=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start MK404
|
||||||
|
# default with serial output and terminal to manipulate it via terminal
|
||||||
|
./MK404 Prusa_$MK404_PRINTER -s --terminal $MK404_options -f $MK404_firmware_file || exit 62
|
||||||
|
fi
|
||||||
|
#### End of MK404 Simulator
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue