saqwed / myedk2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

windows badge ubuntu badge

Due to tianocore separates packages into different repositories, pull these repositories into submodule and provide GitHub action example for build instruction.

Build instructions

Ubuntu 22.04 LTS

Setup Ubuntu build environment

  • Build environment
sudo apt-get update
sudo apt-get install -y nasm git acpica-tools build-essential \
  crossbuild-essential-i386 crossbuild-essential-amd64 \
  crossbuild-essential-arm64 uuid-dev python3 python3-distutils \
  python3-pip bc gawk llvm-dev lld clang
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
  • Install NASM 2.15.05(edk2_stable202205 or above)

Because Ubuntu distribution still keep NASM version as 2.13.02-0.1(2022/05/28), we have to upgrade NASM by ourselves otherwise you will meet build error.

2023/12/01 Update: You can use apt-get to install NASM now.

sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install -y alien
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/linux/nasm-2.15.05-0.fc31.x86_64.rpm -O/tmp/nasm-2.15.05-0.fc31.x86_64.rpm
sudo alien /tmp/nasm-2.15.05-0.fc31.x86_64.rpm -i
rm -f /tmp/nasm-2.15.05-0.fc31.x86_64.rpm

Clone repositories

git clone --recurse-submodule git@github.com:saqwed/myedk2.git myedk2

(Optional) Patch tools_def.txt for cross compiler

sed -i 's+DEF(GCC_IA32_PREFIX)objcopy+ENV(GCC_IA32_PREFIX)objcopy+g' edk2/BaseTools/Conf/tools_def.template
sed -i 's+DEF(GCC_X64_PREFIX)objcopy+ENV(GCC_X64_PREFIX)objcopy+g'   edk2/BaseTools/Conf/tools_def.template
sed -i 's+DEF(GCC_IA32_PREFIX)gcc+ENV(GCC_IA32_PREFIX)gcc+g'         edk2/BaseTools/Conf/tools_def.template
sed -i 's+DEF(GCC_X64_PREFIX)gcc+ENV(GCC_X64_PREFIX)gcc+g'           edk2/BaseTools/Conf/tools_def.template
export GCC_IA32_PREFIX=i686-linux-gnu-
export GCC_X64_PREFIX=x86_64-linux-gnu-
export GCC_AARCH64_PREFIX=aarch64-linux-gnu-

Setup edk2 build environment

make -C edk2/BaseTools
pushd $PWD && cd edk2/CryptoPkg/Library/OpensslLib/ && perl process_files.pl && popd

Build

export WORKSPACE=$PWD
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-libc:$WORKSPACE/edk2-test:$WORKSPACE/edk2-platforms/Silicon/Intel
source edk2/edksetup.sh
build -a X64 -t GCC -p ShellPkg/ShellPkg.dsc -b RELEASE

Windows + Visual Studio Community 2019

Setup Windows build environment

Clone repositories

git clone --recurse-submodule git@github.com:saqwed/myedk2.git myedk2

Setup edk2 build environment

rem Open "x86 Native Tools Command Prompt for VS 2019" via start menu
set WORKSPACE=%CD%
cd %WORKSPACE%\edk2
set EDK_TOOLS_PATH=%WORKSPACE%\edk2\BaseTools
edksetup.bat VS2019
cd %WORKSPACE%\edk2\BaseTools
toolsetup.bat
nmake

Exit this command prompt windows and reopen another one for next steps.

Build

REM open a new command prompt
set WORKSPACE=%CD%
set PACKAGES_PATH=%WORKSPACE%/edk2;%WORKSPACE%/edk2-libc;%WORKSPACE%/edk2-test;%WORKSPACE%/edk2-platforms/Silicon/Intel
edk2\edksetup.bat VS2019
build -a X64 -t VS2019 -p ShellPkg/ShellPkg.dsc -b RELEASE

Activity

Alt

About


Languages

Language:Batchfile 100.0%