update build scripts

pull/741/head
longpanda 3 years ago
parent 80a088babb
commit 85f6f3213f

@ -3,7 +3,7 @@
1. Compile Enviroment 1. Compile Enviroment
========================================== ==========================================
My build envrioment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch. My build envrioment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch.
Because Ventoy is based on many open source projects, so the environment is important. I suggest you test it on a virtual machine first. Because Ventoy is based on many open source projects, so the environment is important. I suggest you test it on a virtual machine firstly.
1.1 Install CentOS 7.8 1.1 Install CentOS 7.8
I use CentOS-7-x86_64-Everything-2003.iso and select Minimal install I use CentOS-7-x86_64-Everything-2003.iso and select Minimal install
@ -14,7 +14,7 @@
mpfr.i686 mpfr-devel.i686 zlib.i686 rsync autogen autoconf automake libtool gettext* bison binutils \ mpfr.i686 mpfr-devel.i686 zlib.i686 rsync autogen autoconf automake libtool gettext* bison binutils \
flex device-mapper-devel SDL libpciaccess libusb freetype freetype-devel gnu-free-* qemu-* virt-* \ flex device-mapper-devel SDL libpciaccess libusb freetype freetype-devel gnu-free-* qemu-* virt-* \
libvirt* vte* NetworkManager-bluetooth brlapi fuse-devel dejavu* gnu-efi* pesign shim \ libvirt* vte* NetworkManager-bluetooth brlapi fuse-devel dejavu* gnu-efi* pesign shim \
iscsi-initiator-utils grub2-tools zip nasm acpica-tools glibc-static zlib-static iscsi-initiator-utils grub2-tools zip nasm acpica-tools glibc-static zlib-static xorriso
@ -22,9 +22,9 @@
2. Download Source Code 2. Download Source Code
========================================== ==========================================
2.1 Download Ventoy source code from github and decompress it. 2.1 Download Ventoy source code from github and decompress it.
Next I assume that you have unzipped the code into the /home directory (check /home/Ventoy-master/README.md file for the directory level). Next I assume that you have unzipped the code into the /home directory (check /home/Ventoy-master/README.md file for the directory layout).
2.2 Download third-part source code 2.2 Download third-part source code and tool
https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz ===> /home/Ventoy-master/DOC/dietlibc-0.34.tar.xz https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz ===> /home/Ventoy-master/DOC/dietlibc-0.34.tar.xz
https://musl.libc.org/releases/musl-1.2.1.tar.gz ===> /home/Ventoy-master/DOC/musl-1.2.1.tar.gz https://musl.libc.org/releases/musl-1.2.1.tar.gz ===> /home/Ventoy-master/DOC/musl-1.2.1.tar.gz
@ -52,20 +52,22 @@
========================================== ==========================================
3. All in one script 3. All in one script
========================================== ==========================================
I have made the whole build process in all_in_one.sh, you can run this script to build and pack ventoy. I have made a all_in_one.sh, you can run this script to build and pack ventoy.
If you want to compile a certain part separately, you can continue to refer to the later chapters of this text. If you want to compile a certain part separately, you can continue to refer to the later chapters of this text.
cd /home/Ventoy-master/INSTALL cd /home/Ventoy-master/INSTALL
sh all_in_one.sh sh all_in_one.sh
It should be noted that, some part of Ventoy has 32bit&64bit version (like 4.9 4.10 4.11 follows) It should be noted that:
all_in_one.sh only build 64bit version of them, if you want to rebuild the 32bit verison. You should create a 32bit CentOS environment and build them. 1. Only grub2/EDK2/IPXE will be recompiled in all_in_one.sh. Other part contains the binaries and are few modified, so will no be recompiled everytime.
Fortunately these parts are few modified, you only need to build once or you can directly use the binary I have built. You can rebuild these parts separately if you want.
2. some part of Ventoy has 32bit&64bit version (like 4.9 4.10 4.11 follows)
all_in_one.sh only build 64bit version of them, if you want to rebuild the 32bit verison. You should create a 32bit CentOS environment and build them.
Fortunately these parts are few modified, you only need to build once or you can directly use the binary I have built.
Besides, after a fully compile and pack, you can only build the part you modified (for example grub2) and run ventoy_pack.sh to generate the package. Besides, after a fully compile and pack, you can only build the part you modified (for example grub2) and run ventoy_pack.sh to generate the package.
========================================== ==========================================
4. Build every part of Ventoy 4. Build every part of Ventoy
========================================== ==========================================

@ -7,34 +7,10 @@ unzip edk2-edk2-stable201911.zip
/bin/cp -a ./edk2_mod/edk2-edk2-stable201911 ./ /bin/cp -a ./edk2_mod/edk2-edk2-stable201911 ./
cd edk2-edk2-stable201911 cd edk2-edk2-stable201911
VTEFI_PATH=Build/MdeModule/RELEASE_GCC48/X64/MdeModulePkg/Application/Ventoy/Ventoy/OUTPUT/Ventoy.efi
DST_PATH=../../INSTALL/ventoy/ventoy_x64.efi
VTEFI_PATH2=Build/MdeModule/RELEASE_GCC48/IA32/MdeModulePkg/Application/Ventoy/Ventoy/OUTPUT/Ventoy.efi
DST_PATH2=../../INSTALL/ventoy/ventoy_ia32.efi
rm -f $VTEFI_PATH
rm -f $DST_PATH
rm -f $VTEFI_PATH2
rm -f $DST_PATH2
make -j 4 -C BaseTools/ make -j 4 -C BaseTools/
cd ..
source ./edksetup.sh sh ./build.sh ia32 || exit 1
build -p MdeModulePkg/MdeModulePkg.dsc -a X64 -b RELEASE -t GCC48 sh ./build.sh aa64 || exit 1
build -p MdeModulePkg/MdeModulePkg.dsc -a IA32 -b RELEASE -t GCC48 sh ./build.sh || exit 1
if [ -e $VTEFI_PATH ] && [ -e $VTEFI_PATH2 ]; then
echo -e '\n\n====================== SUCCESS ========================\n\n'
cp -a $VTEFI_PATH $DST_PATH
cp -a $VTEFI_PATH2 $DST_PATH2
cd ..
else
echo -e '\n\n====================== FAILED ========================\n\n'
cd ..
exit 1
fi

@ -17,13 +17,8 @@ tar -xvf grub-2.04.tar.xz -C ./SRC/
cd ./SRC/grub-2.04 cd ./SRC/grub-2.04
# build for Legacy BIOS
./autogen.sh
./configure --prefix=$VT_GRUB_DIR/INSTALL/
make -j 16
sh install.sh
# build for UEFI # build for x86_64-efi
make distclean make distclean
./autogen.sh ./autogen.sh
./configure --with-platform=efi --prefix=$VT_GRUB_DIR/INSTALL/ ./configure --with-platform=efi --prefix=$VT_GRUB_DIR/INSTALL/
@ -31,7 +26,7 @@ make -j 16
sh install.sh uefi sh install.sh uefi
#build for IA32 EFI #build for i386-efi
make distclean make distclean
./autogen.sh ./autogen.sh
./configure --target=i386 --with-platform=efi --prefix=$VT_GRUB_DIR/INSTALL/ ./configure --target=i386 --with-platform=efi --prefix=$VT_GRUB_DIR/INSTALL/
@ -39,5 +34,32 @@ make -j 16
sh install.sh i386efi sh install.sh i386efi
#build for arm64 EFI
PATH=$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin
make distclean
./autogen.sh
./configure --prefix=$VT_GRUB_DIR/INSTALL/ \
--target=aarch64 --with-platform=efi \
--host=x86_64-linux-gnu \
HOST_CC=x86_64-linux-gnu-gcc \
BUILD_CC=gcc \
TARGET_CC=aarch64-linux-gnu-gcc \
TARGET_OBJCOPY=aarch64-linux-gnu-objcopy \
TARGET_STRIP=aarch64-linux-gnu-strip TARGET_NM=aarch64-linux-gnu-nm \
TARGET_RANLIB=aarch64-linux-gnu-ranlib
make -j 16
sh install.sh arm64
# build for i386-pc
./autogen.sh
./configure --prefix=$VT_GRUB_DIR/INSTALL/
make -j 16
sh install.sh
cd ../../ cd ../../

@ -14,24 +14,29 @@ sh buildipxe.sh || exit 1
cd $VTOY_PATH/EDK2 cd $VTOY_PATH/EDK2
sh buildedk.sh || exit 1 sh buildedk.sh || exit 1
cd $VTOY_PATH/VtoyTool
sh build.sh || exit 1
cd $VTOY_PATH/vtoyfat/fat_io_lib
sh buildlib.sh
cd $VTOY_PATH/vtoyfat #
sh build.sh || exit 1 # We almost rarely modifiy these code, so no need to build them everytime
# If you want to rebuild them, just uncomment them.
#
cd $VTOY_PATH/vtoygpt #cd $VTOY_PATH/VtoyTool
sh build.sh || exit 1 #sh build.sh || exit 1
cd $VTOY_PATH/FUSEISO #cd $VTOY_PATH/vtoyfat/fat_io_lib
sh build_libfuse.sh #sh buildlib.sh
sh build.sh
#cd $VTOY_PATH/vtoyfat
#sh build.sh || exit 1
#cd $VTOY_PATH/vtoygpt
#sh build.sh || exit 1
#cd $VTOY_PATH/FUSEISO
#sh build_libfuse.sh
#sh build.sh
# We almost rarely modifiy these code, so no need to build them everytime
# cd $VTOY_PATH/ExFAT # cd $VTOY_PATH/ExFAT
# sh buidlibfuse.sh || exit 1 # sh buidlibfuse.sh || exit 1

Loading…
Cancel
Save