new script

Signed-off-by: SergeySlice <sergey.slice@gmail.com>
This commit is contained in:
SergeySlice 2023-12-10 16:04:05 +03:00
parent 0eac4088b1
commit bd45a8c32d
4 changed files with 296 additions and 118 deletions

View File

@ -6,8 +6,8 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Clover r5153\n" "Project-Id-Version: Clover r5156\n"
"POT-Creation-Date: 2023-07-03 19:51+0300\n" "POT-Creation-Date: 2023-12-09 16:06+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -27,12 +27,12 @@ set -u # exit with error if unbound variables
# GCC toolchain source version # GCC toolchain source version
# here we can change source versions of tools # here we can change source versions of tools
# #
export BINUTILS_VERSION=${BINUTILS_VERSION:-binutils-2.40} export BINUTILS_VERSION=${BINUTILS_VERSION:-binutils-2.41}
export GCC_VERSION=${GCC_VERSION:-13.1.0} export GCC_VERSION=${GCC_VERSION:-13.2.0}
# Version of libraries are from ./contrib/download_prerequisites in gcc source directory # Version of libraries are from ./contrib/download_prerequisites in gcc source directory
export GMP_VERSION=${GMP_VERSION:-gmp-6.2.1} export GMP_VERSION=${GMP_VERSION:-gmp-6.3.0} #6.2.1
export MPFR_VERSION=${MPFR_VERSION:-mpfr-4.2.0} export MPFR_VERSION=${MPFR_VERSION:-mpfr-4.2.1}
export MPC_VERSION=${MPC_VERSION:-mpc-1.3.1} export MPC_VERSION=${MPC_VERSION:-mpc-1.3.1}
# isl-0.25 compatibility requirement is set to 10.14 # isl-0.25 compatibility requirement is set to 10.14

View File

@ -10,7 +10,7 @@ set -u
# Gettext source version # Gettext source version
# here we can change source versions of tools # here we can change source versions of tools
# #
export GETTEXT_VERSION=${GETTEXT_VERSION:-gettext-0.21.1} export GETTEXT_VERSION=${GETTEXT_VERSION:-gettext-0.22.4}
# Change PREFIX if you want gettext installed on different place # Change PREFIX if you want gettext installed on different place
# #

400
buildme
View File

@ -19,14 +19,32 @@ COL_CYAN="\x1b[36;01m"
COL_WHITE="\x1b[37;01m" COL_WHITE="\x1b[37;01m"
COL_BLUE="\x1b[34;01m" COL_BLUE="\x1b[34;01m"
COL_RESET="\x1b[39;49;00m" COL_RESET="\x1b[39;49;00m"
# ====== Main Window SetUp ======
osascript <<EOF
tell application "System Events" to tell application "Finder"
tell process "Terminal"
set frontmost to true
end tell
end tell
tell application "Terminal"
activate
set bounds of window 1 to {0, 23, 615, 420}
set current settings of window 1 to settings set "Pro"
set font name of window 1 to "Monaco"
set font size of window 1 to "11"
set normal text color of window 1 to {3341, 35186, 50092}
set position of first window to {650, 420}
end tell
EOF
# ====== Clover workspace SetUp ======
cd "$(dirname $([ -L $0 ] && readlink $0 || echo $0))" cd "$(dirname $([ -L $0 ] && readlink $0 || echo $0))"
declare -r CLOVERROOT="$PWD" declare -r CLOVERROOT="$PWD"
declare -r SYSNAME="$(uname)" declare -r SYSNAME="$(uname)"
MYTOOLCHAIN=${1:-GCC131} MYTOOLCHAIN=${1:-GCC131}
revision=$(git describe --tags $(git rev-list --tags --max-count=1)) revision=$(git describe --tags $(git rev-list --tags --max-count=1))
lsha1="not a git repo" lsha1="not a git repo"
pyversion=$(echo $COL_CYAN"Installed Python version: "$COL_WHITE$($(which python3) --version)) pyversion=$(echo $COL_CYAN"Current Python version: "$COL_WHITE$($(which python3) --version))
pynone=$(echo -e "$COL_RED Python3 seems missing on this machine, it is required to build Clover ") pynone=$(echo -e "$COL_RED Python3 seems missing on this machine, it is required to build Clover ")
export DIR_OUT=${DIR_OUT:-"$CLOVERROOT"/toolchain/tools/output} export DIR_OUT=${DIR_OUT:-"$CLOVERROOT"/toolchain/tools/output}
export DIR_SCT=${DIR_SCT:-${CLOVERROOT}/toolchain/tools/Scripts} export DIR_SCT=${DIR_SCT:-${CLOVERROOT}/toolchain/tools/Scripts}
@ -188,7 +206,7 @@ makeRelease() {
echo "[BUILD CLOVER RELEASE]" echo "[BUILD CLOVER RELEASE]"
./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN ./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN ./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN
# Run a post build script if exist (${DIR_TOOLS}/CloverScripts/postbuild.sh) # Run a post build script if exist (${DIR_TOOLS}/CloverScripts/postbuild.sh)
if [[ -x "${DIR_TOOLS}"/CloverScripts/postbuild.sh ]]; then if [[ -x "${DIR_TOOLS}"/CloverScripts/postbuild.sh ]]; then
chmod +x "${DIR_TOOLS}"/CloverScripts/postbuild.sh chmod +x "${DIR_TOOLS}"/CloverScripts/postbuild.sh
@ -197,6 +215,44 @@ makeRelease() {
fi fi
} }
makeReleaseXC() {
checkTools
# to force recreation of the Conf folder. You can still use a custom CONF_PATH if you don't want recreation.
rm -rf "$CLOVERROOT"/Conf
mkdir "$CLOVERROOT"/Conf
cd "${CLOVERROOT}"
if [[ -z "$WORKSPACE" ]]; then
export EDK_TOOLS_PATH="${PWD}"/BaseTools
set +u
source ./edksetup.sh BaseTools
set -u
cd "$CLOVERROOT"
WORKSPACE="${PWD}"
fi
echo "[BUILD CLOVER RELEASE WITH XCODE]"
local xrel="$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString)"
if [[ "$xrel" < "14.*" ]]; then
./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -D -t XCODE8
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D -t XCODE8
elif [[ "$xrel" == "14.*" ]]; then
./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -D -t XCODE14
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D -t XCODE14
elif [[ "$xrel" == "15.*" ]]; then
./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -D -t XCODE15
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D -t XCODE15
fi
# Run a post build script if exist (${DIR_TOOLS}/CloverScripts/postbuild.sh)
if [[ -x "${DIR_TOOLS}"/CloverScripts/postbuild.sh ]]; then
chmod +x "${DIR_TOOLS}"/CloverScripts/postbuild.sh
echo "Running Clover postbuild script"
"${DIR_TOOLS}"/CloverScripts/postbuild.sh "${CLOVERROOT}" $MYTOOLCHAIN
fi
}
buildCCPV() { buildCCPV() {
cd "${CLOVERROOT}"/Xcode/CloverConfigPlistValidator cd "${CLOVERROOT}"/Xcode/CloverConfigPlistValidator
make make
@ -256,6 +312,52 @@ buildClover() {
fi fi
} }
buildCloverXC() {
checkTools
# to force recreation of the Conf folder. You can still use a custom CONF_PATH if you don't want recreation.
rm -rf "$CLOVERROOT"/Conf
mkdir "$CLOVERROOT"/Conf
cd "${CLOVERROOT}"
if [[ -z "$WORKSPACE" ]]; then
export EDK_TOOLS_PATH="${PWD}"/BaseTools
set +u
source ./edksetup.sh BaseTools
set -u
cd "$CLOVERROOT"
WORKSPACE="${PWD}"
fi
echo "[BUILD CLOVER WITH XCODE]"
# Run a custom build script if exist (${DIR_TOOLS}/Scripts/build.sh)
# This allow the user to run ebuild.sh with own parameters
if [[ -x "${DIR_TOOLS}"/Scripts/build.sh ]]; then
echo "Running custom build script"
"${DIR_TOOLS}"/Scripts/build.sh "${CLOVERROOT}" $MYTOOLCHAIN
else
local xrel="$(defaults read /Applications/Xcode.app/Contents/version.plist CFBundleShortVersionString)"
if [[ "$xrel" < "14.*" ]]; then
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t XCODE8
elif [[ "$xrel" == "14.*" ]]; then
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t XCODE14
elif [[ "$xrel" == "15.*" ]]; then
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t XCODE15
fi
fi
# Run a post build script if exist (${DIR_TOOLS}/CloverScripts/postbuild.sh)
if [[ -x "${DIR_TOOLS}"/CloverScripts/postbuild.sh ]]; then
chmod +x "${DIR_TOOLS}"/CloverScripts/postbuild.sh
echo "Running Clover postbuild script"
"${DIR_TOOLS}"/CloverScripts/postbuild.sh "${CLOVERROOT}" $MYTOOLCHAIN
fi
# Run a custom post build script if exist (${DIR_TOOLS}/Scripts/postbuild.sh)
if [[ -x "${DIR_TOOLS}"/Scripts/postbuild.sh ]]; then
echo "Running postbuild script"
"${DIR_TOOLS}"/Scripts/postbuild.sh "${CLOVERROOT}" $MYTOOLCHAIN
fi
}
buildtestsix() { buildtestsix() {
checkTools checkTools
@ -277,7 +379,7 @@ buildtestsev() {
cd "${CLOVERROOT}" cd "${CLOVERROOT}"
echo "[BUILD CLOVERDB]" echo "[BUILD CLOVERDB]"
./ebuild.sh -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN ./hebuild.sh -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN
} }
@ -340,11 +442,19 @@ buildIso() {
} }
makeV2() { makeV2() {
cd "${CLOVERROOT}"/CloverPackage #clear
echo "[BUILD CloverV2]" export V2=${V2:-${CLOVERROOT}/CloverPackage/CloverV2}
make zip if [[ -f $V2/EFI/CLOVER/CLOVERX64.efi ]]; then
cd "${CLOVERROOT}"/CloverPackage
echo "" && echo -e $COL_CYAN"[BUILD CloverV2]"
make zip
else
echo "" && echo -e $COL_RED"please, Compile Clover first!!"
Sleep 3
fi
} }
checkStatus() { checkStatus() {
if [[ -d .git ]]; then if [[ -d .git ]]; then
git fetch --recurse-submodules origin git fetch --recurse-submodules origin
@ -495,12 +605,12 @@ mountR/W() {
testing() { testing() {
clear #clear
echo echo
echo -e $COL_GREEN" ------------------------------------------------------------------------------" echo -e $COL_GREEN" ---------------------------------------------------------------------------------"
echo -e " 🍀 Clover r${revision}$COL_WHITE (SHA: $lsha1)" echo -e " 🍀 Clover r${revision}$COL_WHITE (SHA: $lsha1)"
echo -e $COL_CYAN" Test Builds" echo -e $COL_CYAN" Test Builds"
echo -e $COL_GREEN" ------------------------------------------------------------------------------"$COL_RESET echo -e $COL_GREEN" ---------------------------------------------------------------------------------"$COL_RESET
echo -e "\n\n\n\n\n\n\n\n\n\n\n" echo -e "\n\n\n\n\n\n\n\n\n\n\n"
PS3=' PS3='
@ -508,8 +618,8 @@ Please enter your choice: '
options=( 'test Clover with boot6' options=( 'test Clover with boot6'
'test Clover with boot7' 'test Clover with boot7'
'test build (no autogen, no boot files)' 'test build (no autogen, no boot files)'
'back to buildme' 'back to Cloverbuilds'
'quit') 'Exit')
select opt in "${options[@]}" select opt in "${options[@]}"
do do
case $opt in case $opt in
@ -525,11 +635,11 @@ select opt in "${options[@]}"
buildCloverTest buildCloverTest
break break
;; ;;
"back to buildme") "back to Cloverbuilds")
menu menu
break break
;; ;;
"quit") "Exit")
exit exit
break break
;; ;;
@ -544,62 +654,63 @@ testing
Utilities() { Utilities() {
echo echo
echo -e $COL_GREEN" ------------------------------------------------------------------------------" echo -e $COL_GREEN" ---------------------------------------------------------------------------------"
echo -e " 🍀 Clover r${revision}$COL_WHITE (SHA: $lsha1)" echo -e " 🍀 Clover r${revision}$COL_WHITE (SHA: $lsha1)"
echo -e $COL_CYAN" External Utilities " echo -e $COL_CYAN" External Utilities "
echo -e $COL_GREEN" ------------------------------------------------------------------------------"$COL_RESET echo -e $COL_WHITE" All Files will be put on Desktop/ClovUtils"
echo -e "\n\n\n\n\n\n\n\n" echo -e $COL_GREEN" ---------------------------------------------------------------------------------"$COL_RESET
echo -e "\n\n\n\n\n\n\n"
PS3=' PS3='
Files will be put on Desktop/ClovUtils: ' Please enter your choice: '
options=( 'Get CloverConfigPlistValidator ' options=( 'Get CloverConfigPlistValidator '
'Get PlistEDPlus ' 'Get PlistEDPlus '
'Get Hackintool ' 'Get Hackintool '
'Get BitmaskDecode ' 'Get BitmaskDecode '
'Get MaciASL ' 'Get MaciASL '
'Get dmidecode ' 'Get dmidecode '
'Get IOReg-Devices ' 'Get IOReg-Devices '
'Get NativeDisplayBrightness ' 'Get NativeDisplayBrightness '
'Get SSDTTime' 'Get SSDTTime'
'Get USBMap' 'Get USBMap'
'Get Xiasl' 'Get Xiasl'
'Get CsrDecode' 'Get CsrDecode'
'Get gibMacOS' 'Get gibMacOS'
'Get mountR/W' 'Get mountR/W'
'back to buildme' 'back to Cloverbuilds'
'quit') 'Exit')
select opt in "${options[@]}" select opt in "${options[@]}"
do do
case $opt in case $opt in
"Get CloverConfigPlistValidator ") "Get CloverConfigPlistValidator ")
buildCPV buildCPV
break break
;; ;;
"Get PlistEDPlus ") "Get PlistEDPlus ")
PlistEDPlus PlistEDPlus
break break
;; ;;
"Get Hackintool ") "Get Hackintool ")
Hackintool Hackintool
break break
;; ;;
"Get BitmaskDecode ") "Get BitmaskDecode ")
BitmaskDecode BitmaskDecode
break break
;; ;;
"Get MaciASL ") "Get MaciASL ")
MaciASL MaciASL
break break
;; ;;
"Get dmidecode ") "Get dmidecode ")
dmidecode dmidecode
break break
;; ;;
"Get IOReg-Devices ") "Get IOReg-Devices ")
Get-IOReg-Devices Get-IOReg-Devices
break break
;; ;;
"Get NativeDisplayBrightness ") "Get NativeDisplayBrightness ")
NDBrightness NDBrightness
break break
;; ;;
@ -627,11 +738,11 @@ select opt in "${options[@]}"
mountR/W mountR/W
break break
;; ;;
"back to buildme") "back to Cloverbuilds")
menu menu
break break
;; ;;
"quit") "Exit")
exit exit
break break
;; ;;
@ -644,104 +755,55 @@ select opt in "${options[@]}"
Utilities Utilities
} }
menu() { Extra() {
#clear
echo echo
echo -e $COL_GREEN" ------------------------------------------------------------------------------" echo -e $COL_GREEN" ---------------------------------------------------------------------------------"
if [[ ! -x "$(which python3)" ]]; then if [[ ! -x "$(which python3)" ]]; then
echo -e " ${pynone}" echo -e " ${pynone}"
fi fi
echo -e "$COL_GREEN 🍀 Clover r${revision}$COL_WHITE (SHA: $lsha1)" echo -e "$COL_GREEN 🍀 Clover r${revision}$COL_WHITE (SHA: $lsha1)"
echo -e "$COL_CYAN TOOLCHAIN: $MYTOOLCHAIN (override example: './buildme XCODE8')" echo -e "$COL_WHITE Default TOOLCHAIN:$COL_CYAN $MYTOOLCHAIN$COL_WHITE "
echo -e "${COL_WHITE} Switch to${COL_CYAN} XCODE${COL_WHITE} can be done on${COL_CYAN} Cloverbuilds"
if [[ -x "$(which python3)" ]]; then if [[ -x "$(which python3)" ]]; then
echo -e $COL_GREEN" ------------------- ${pyversion}$COL_GREEN ------------------ "$COL_RESET echo -e $COL_GREEN" ---------------------- ${pyversion}$COL_GREEN -------------------- "$COL_RESET
echo -e "\n\n\n\n\n\n\n\n" echo -e "\n\n\n\n\n\n\n\n\n\n"
else else
echo -e $COL_GREEN" ------------------------------------------------------------------------------"$COL_RESET echo -e $COL_GREEN" ---------------------------------------------------------------------------------"$COL_RESET
echo -e "\n\n\n\n\n\n\n" echo -e "\n\n\n\n\n\n\n\n\n"
fi fi
PS3=' PS3='
Please enter your choice: ' Please enter your choice: '
options=( 'build Clover' options=( 'Cloverbuilds '
'update Clover' 'test Clover '
'build Clover with HFSPlus' 'check status '
'make pkg' 'show diff '
'make iso' 'open CloverV2 directory'
'make app'
'build all'
'make Release'
'test Clover'
'check status'
'show diff'
'open CloverV2/EFI/CLOVER directory'
'update Clover (reset changes)' 'update Clover (reset changes)'
'clean BaseTools' 'clean BaseTools'
'Utilities' 'Utilities'
'quit') 'Exit')
select opt in "${options[@]}" select opt in "${options[@]}"
do do
case $opt in case $opt in
"build Clover") "Cloverbuilds ")
buildClover menu
break break
;; ;;
"update Clover") "test Clover ")
updateClover
break
;;
"build Clover with HFSPlus")
buildCloverHFSPlus
break
;;
"make pkg")
# buildCCPV
BLC
buildPkg
break
;;
"make iso")
buildIso
break
;;
"make app")
buildApp withV2
break
;;
# "make app (with Clover)")
# buildApp withV2
# break
# ;;
"build all")
buildClover
# buildCCPV
BLC
buildPkg
buildIso
makeV2
break
;;
"make Release")
makeRelease
# buildCCPV
BLC
buildPkg
buildIso
makeV2
break
;;
"test Clover")
testing testing
break break
;; ;;
"check status") "check status ")
checkStatus checkStatus
break break
;; ;;
"show diff") "show diff ")
showdiff showdiff
break break
;; ;;
"open CloverV2/EFI/CLOVER directory") "open CloverV2 directory")
if [[ -d "${CLOVERROOT}"/CloverPackage/CloverV2/EFI/CLOVER ]]; then if [[ -d "${CLOVERROOT}"/CloverPackage/CloverV2/EFI/CLOVER ]]; then
open "${CLOVERROOT}"/CloverPackage/CloverV2/EFI/CLOVER open "${CLOVERROOT}"/CloverPackage/CloverV2/EFI/CLOVER
else else
@ -770,7 +832,123 @@ do
Utilities Utilities
break break
;; ;;
"quit") "Exit")
exit 0
;;
*)
echo "invalid option $REPLY"
break
;;
esac
done
Extra
}
menu() {
#clear
echo
echo -e $COL_GREEN" ---------------------------------------------------------------------------------"
if [[ ! -x "$(which python3)" ]]; then
echo -e " ${pynone}"
fi
echo -e "$COL_GREEN 🍀 Clover r${revision}$COL_WHITE (SHA: $lsha1)"
echo -e "$COL_WHITE Default TOOLCHAIN:$COL_CYAN $MYTOOLCHAIN$COL_WHITE "
echo -e "${COL_WHITE} Switch to${COL_CYAN} XCODE${COL_WHITE} select:${COL_CYAN} build (with XCode)"
echo -e "${COL_WHITE} Depending on your${COL_CYAN} XCODE version${COL_WHITE} the Toolset will be${COL_CYAN} automatically chosen"
# echo -e "${COL_WHITE} Toolset${COL_CYAN} is automatically chosen${COL_WHITE} depending on the${COL_CYAN} XCODE installed version"
if [[ -x "$(which python3)" ]]; then
echo -e $COL_GREEN" ---------------------- ${pyversion}$COL_GREEN -------------------- "$COL_RESET
echo -e "\n\n\n\n\n\n\n"
else
echo -e $COL_GREEN" ---------------------------------------------------------------------------------"$COL_RESET
echo -e "\n\n\n\n\n\n\n"
fi
PS3='
Please enter your choice: '
options=( 'build Clover (Default Toolchain) '
'build all (Default Toolchain) '
'make Release (Default Toolchain) '
# 'build Clover with HFSPlus '
'update Clover '
'make pkg '
'make iso '
'make Clover_V2'
'build Clover (with XCode)'
'build all (with XCode)'
'make Release (with XCode)'
'build Clover with HFSPlus'
'Extra Options'
'Exit')
select opt in "${options[@]}"
do
case $opt in
"build Clover (Default Toolchain) ")
buildClover
break
;;
"build all (Default Toolchain) ")
buildClover
BLC
buildPkg
buildIso
makeV2
break
;;
"build Clover with HFSPlus ")
buildCloverHFSPlus
break
;;
"update Clover ")
updateClover
break
;;
"make pkg ")
BLC
buildPkg
break
;;
"make iso ")
buildIso
break
;;
"make Clover_V2")
makeV2
break
;;
"build Clover (with XCode)")
buildCloverXC
break
;;
"build all (with XCode)")
buildCloverXC
BLC
buildPkg
buildIso
makeV2
break
;;
"make Release (Default Toolchain)")
makeRelease
BLC
buildPkg
buildIso
makeV2
break
;;
"make Release (with XCode)")
makeReleaseXC
BLC
buildPkg
buildIso
makeV2
break
;;
"Extra Options")
Extra
break
;;
"Exit")
exit 0 exit 0
;; ;;
*) *)