mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-01-11 23:13:26 -05:00
f668360d59
Refactor EDK2 build script for improved clarity and efficiency - Implement a case statement for setting architecture and postfix based on the input argument, enhancing readability and scalability. - Add a directory change check to exit the script if the `cd` command to the EDK2 source directory fails, improving robustness. - Consolidate file removal commands into a single line for each set of related files, simplifying the script structure. - Streamline the build commands with a conditional segment specifically for the AARCH64 architecture, making the script more concise. - Enhance the success check logic by verifying the existence of all expected output files before declaring success.
63 lines
1.8 KiB
Bash
63 lines
1.8 KiB
Bash
#!/bin/sh
|
|
|
|
# Set architecture based on input argument
|
|
case "$1" in
|
|
"ia32")
|
|
EDKARCH=IA32
|
|
postfix=ia32
|
|
;;
|
|
"aa64")
|
|
EDKARCH=AARCH64
|
|
postfix=aa64
|
|
;;
|
|
*)
|
|
EDKARCH=X64
|
|
postfix=x64
|
|
;;
|
|
esac
|
|
|
|
cd edk2-edk2-stable201911 || exit 1
|
|
|
|
# Clean up configuration and cache files
|
|
rm -rf ./Conf/.cache
|
|
rm -f ./Conf/.AutoGenIdFile.txt
|
|
|
|
# Define paths for EFI files
|
|
VTEFI_PATH=Build/MdeModule/RELEASE_GCC48/$EDKARCH/MdeModulePkg/Application/Ventoy/Ventoy/OUTPUT/Ventoy.efi
|
|
DST_PATH=../../INSTALL/ventoy/ventoy_${postfix}.efi
|
|
|
|
VTEFI_PATH2=Build/MdeModule/RELEASE_GCC48/$EDKARCH/MdeModulePkg/Application/VtoyUtil/VtoyUtil/OUTPUT/VtoyUtil.efi
|
|
DST_PATH2=../../INSTALL/ventoy/vtoyutil_${postfix}.efi
|
|
|
|
VTEFI_PATH3=Build/MdeModule/RELEASE_GCC48/$EDKARCH/MdeModulePkg/Application/VDiskChain/VDiskChain/OUTPUT/VDiskChain.efi
|
|
DST_PATH3=../../VDiskChain/Tool/vdiskchain_${postfix}.efi
|
|
|
|
# Remove old EFI files
|
|
rm -f $VTEFI_PATH $DST_PATH $VTEFI_PATH2 $DST_PATH2 $VTEFI_PATH3
|
|
[ -d ../../VDiskChain ] && rm -f $DST_PATH3
|
|
|
|
# Setup build environment
|
|
unset WORKSPACE
|
|
source ./edksetup.sh
|
|
|
|
# Build based on architecture
|
|
if [ "$EDKARCH" = "AARCH64" ]; then
|
|
GCC48_AARCH64_PREFIX=aarch64-linux-gnu- \
|
|
build -p MdeModulePkg/MdeModulePkg.dsc -a $EDKARCH -b RELEASE -t GCC48
|
|
else
|
|
build -p MdeModulePkg/MdeModulePkg.dsc -a $EDKARCH -b RELEASE -t GCC48
|
|
fi
|
|
|
|
# Check if build was successful and copy files
|
|
if [ -e $VTEFI_PATH ] && [ -e $VTEFI_PATH2 ] && [ -e $VTEFI_PATH3 ]; then
|
|
echo -e '\n\n====================== SUCCESS ========================\n\n'
|
|
cp -a $VTEFI_PATH $DST_PATH
|
|
cp -a $VTEFI_PATH2 $DST_PATH2
|
|
[ -d ../../VDiskChain ] && cp -a $VTEFI_PATH3 $DST_PATH3
|
|
cd ..
|
|
else
|
|
echo -e '\n\n====================== FAILED ========================\n\n'
|
|
cd ..
|
|
exit 1
|
|
fi
|