From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web10.19531.1670256973542086453 for ; Mon, 05 Dec 2022 08:16:13 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@linux.microsoft.com header.s=default header.b=o5kyBwcd; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from localhost.localdomain (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id 9FF2D20B83CB; Mon, 5 Dec 2022 08:16:12 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9FF2D20B83CB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1670256973; bh=adRf2/NbY9uzXdKGM9tcnC/NbGq/bmCvYQd+rvLTYlE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o5kyBwcd8dCpfqy+4WSZmZQHyYJuyBj6lCI3rG36wcmwCuDkodPZPun8GRow1eKyz lPhLWwoTjPMwzYCuYhBt91M+XlYHz1cSi1o5MOPVmdEgZRpnexg2UpqZ6EOB6untnc dU3w/7W0ItE2x30tTs7d5waEFGPaBUXLaI3xQn4k= From: "Michael Kubacki" To: devel@edk2.groups.io Cc: Sean Brogan , Michael D Kinney , Liming Gao Subject: [edk2-wiki][PATCH v1 4/4] Update existing build instructions Date: Mon, 5 Dec 2022 11:15:23 -0500 Message-Id: <20221205161523.2627-5-mikuback@linux.microsoft.com> X-Mailer: git-send-email 2.28.0.windows.1 In-Reply-To: <20221205161523.2627-1-mikuback@linux.microsoft.com> References: <20221205161523.2627-1-mikuback@linux.microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=y Content-Transfer-Encoding: quoted-printable From: Michael Kubacki Adds a reference to existing documents in the wiki with build instructions to point to the new top-level build file. The original files are left in place for information reference and to prevent breaking links that may be pointing to them. Cc: Sean Brogan Cc: Michael D Kinney Cc: Liming Gao Signed-off-by: Michael Kubacki --- Build.mediawiki | 33 ++++++++++--------- BuildTool-Setup-Guide.mediawiki | 19 ++++++----- Common-instructions-for-Unix.mediawiki | 7 +++- Common-instructions.mediawiki | 5 +++ Getting-Started-with-EDK-II.mediawiki | 16 ++++++--- UDK2017-How-to-Build.md | 30 ++++++++++------- UDK2018-How-to-Build.md | 34 ++++++++++++-------- Unix-like-systems.mediawiki | 7 +++- Using-EDK-II-with-Native-GCC.mediawiki | 13 +++++--- Windows-systems.mediawiki | 26 +++++++++------ 10 files changed, 118 insertions(+), 72 deletions(-) diff --git a/Build.mediawiki b/Build.mediawiki index 19517eaef4e3..e5c6d6a74530 100644 --- a/Build.mediawiki +++ b/Build.mediawiki @@ -1,29 +1,30 @@ =3DFrequently asked EDK II build questions=3D =20 + Note: This page is retained for reference. Most of the content as of 2= 022 is still relevant but it is recommended to + view the new set of build instructions that describe how to deve= lop using containers and build with the Stuart + application. + +New instructions: [[Build-Instructions.md|Build Instructions]] + =3D=3DRegarding the Build for EDK II, how do you specify a different com= piler tool chain on the command line?=3D=3D =20 -Use =E2=80=93t parameter for the build command. Example: Using the Micro= soft Visual Studio 2005 tool chain ...=20 +Use =E2=80=93t parameter for the build command. Example: Using the Micro= soft Visual Studio 2019 tool chain ... =20 - build =E2=80=93t VS2005 + build =E2=80=93t VS2019 =20 For using other tools see [[Getting_Started_with_EDK_II]]. This provides= some detailed instructions for setting up some different tool chains? Th= e file Conf/tools_def.txt contains a list of targets. =20 =3D=3DIs it possible to use PCDs @ build time?=3D=3D =20 -It depends on what you are trying to do. For use in code, yes.=20 +It depends on what you are trying to do. For use in code, yes. For example Featureflag PCD type can be used. For determining if somethi= ng should be built then it might be better to use the =E2=80=9CBuild =E2=80= =93D MACRO-NAME=E2=80=9D options. =20 =3D=3DIs there information on Building on Linux?=3D=3D =20 -For EDK II, yes, the build tools will need to be recompiled for GCC. Li= nk for how to Build for GCC:=20 +For EDK II, yes, the build tools will need to be recompiled for GCC. Li= nk for how to Build for GCC: * [[Using EDK II with Native GCC]] * [[Unix-like systems]] (For older Linux distributions, or when using Cy= gwin or Mac OS X) =20 -=3D=3DWhat is the state of Python?=3D=3D - -For Building EDK II Python of at least version 2.5 is needed. On Linux w= e've used 2.6 & 2.7. Python 3+ is not supported and will not work curren= tly. On Windows, python is not required to be installed to build with ED= K II.=20 -There is a Python interpreter that is part of the EFI toolkit on tianoc= ore.org and is at the Python version level 2.4, There are long term plan= s to move to EDK II and support a later version of Python as part of the = [[AppPkg]]. It is currently (01/2012) in Aplha stage. - =3D=3DWhat does the parsing tool do?=3D=3D =20 The parsing is part of the first stage of the build process. There are = tools for parsing the set build description files and the target.txt for= a package or platform and creates the intermediate make and autogen file= s @@ -68,26 +69,26 @@ The report generator can show protocols produced by m= odules. The Runtime DXE cor =20 UEFI applications and drivers are not executed in an Operating System en= vironment. This is important, as the switches have very specific (and, in= the pre-boot space, negative) impacts on generated code. The switch does= two things in the code that are not acceptable for the pre-boot environm= ent: =20 -* The switch enables additional code in the compiled code base, which re= quires a larger stack space than may be available in the pre-boot environ= ment=20 -* The switch injects a call to a compiler specific function that is not = present in our Firmware builds, and which we do not have information on h= ow to emulate.=20 +* The switch enables additional code in the compiled code base, which re= quires a larger stack space than may be available in the pre-boot environ= ment +* The switch injects a call to a compiler specific function that is not = present in our Firmware builds, and which we do not have information on h= ow to emulate. =20 We disable these settings, as enabling them would create non-functioning= code. =20 However, please be aware that Detecting Stack Overflows in Firmware is c= ritical in validation and development, and we use other techniques in our= code to do so. We just cannot generically support the /Gs flags (as not= ed above). =20 -The tools do have this flag set, as they are used within the Operating S= ystem environment, where the intrinsic added by the compiler can be proce= ssed correctly.=20 -=20 +The tools do have this flag set, as they are used within the Operating S= ystem environment, where the intrinsic added by the compiler can be proce= ssed correctly. + =3D=3DAre there Dual-mode drivers in EDK II?=3D=3D =20 No. The EDK II build system does not support the dual mode drivers desc= ribed in the PI Specification. These types of modules are very difficult= to implement correctly, so we recommend that developer implement two dif= ferent modules instead. The EDK II does allow them to share sources, but= 2 different PE/COFF images would be generated when built. =20 =3D=3DIs there a tool to parse the BIOS Build tree?=3D=3D =20 -a) Use the report generator build into the build tool =E2=80=9CBUILD =E2= =80=93Y=E2=80=9D on the command line=20 +a) Use the report generator build into the build tool =E2=80=9CBUILD =E2= =80=93Y=E2=80=9D on the command line =20 -Y REPORTTYPE, --report-type=3DREPORTTYPE Flags that control the type of build report to - generate. Must be one of: [PCD, LIBRARY, FLASH= , DEPEX,=20 + generate. Must be one of: [PCD, LIBRARY, FLASH= , DEPEX, BUILD_FLAGS, FIXED_ADDRESS, EXECUTION_ORDER]. To specify more than one flag, repeat this opti= on on the command line and the default flag set is [P= CD, @@ -109,6 +110,6 @@ From a PI point of view the first module that runs is= the SEC core. If you look =20 Reference: https://github.com/tianocore/edk2/tree/master/UefiCpuPkg/Rese= tVector/Vtf0 =20 -So the hard code bit is the FV (Firmware Volume) that that contains the = Volume Top File needs to start at an address where the end of the FV will= end up at the magic reset vector address.=20 +So the hard code bit is the FV (Firmware Volume) that that contains the = Volume Top File needs to start at an address where the end of the FV will= end up at the magic reset vector address. =20 In general the EFI build system constructs relocatable PE/COFF images, a= nd every image is linked at zero. If the code executes from FLASH, then w= hen the FV is constructed the PE/COFF images that are XIP (eXecute In Pla= ce) have their PE/COFF image relocated based on where they end up in the = FV (based on info in FDF file). This is done by the build system. If the = EFI code runs from RAM then it is loaded by a PE/COFF loader and relocate= d to its load address. diff --git a/BuildTool-Setup-Guide.mediawiki b/BuildTool-Setup-Guide.medi= awiki index 445ef25af598..e5f7535f0731 100644 --- a/BuildTool-Setup-Guide.mediawiki +++ b/BuildTool-Setup-Guide.mediawiki @@ -1,15 +1,20 @@ =3DGitHub Help=3D =20 -GitHub (https://help.github.com/index.html) provides step-by-step instru= ctions for user registration and basic features supported by GitHub=20 + Note: New build instructions are available. It is recommended to start= with the new instructions if learning how to + build edk2 for the first time. This page is retained for referen= ce. + +New instructions: [[Build-Instructions.md|Build Instructions]] + +GitHub (https://help.github.com/index.html) provides step-by-step instru= ctions for user registration and basic features supported by GitHub =20 * Setup GitHub for Linux | Windows | MAC | All (https://help.github.com/= articles/set-up-git) * To download and install a Git GUI interface (http://git-scm.com/) =20 =3D=3D'''GitHub EDK II Project Repositories'''=3D=3D =20 -* The EDK II BaseTools are part of the EDK II project repository.=20 -* The EDK II project repository is available at https://github.com/tiano= core/edk2.=20 -* Prebuilt Windows tools are available at https://github.com/tianocore/e= dk2-BaseTools-win32.=20 +* The EDK II BaseTools are part of the EDK II project repository. +* The EDK II project repository is available at https://github.com/tiano= core/edk2. +* Prebuilt Windows tools are available at https://github.com/tianocore/e= dk2-BaseTools-win32. * Content that is not released under an accepted open source license can= be found at https://github.com/tianocore/edk2-non-osi.
=3D Getting the extra tools=3D =3D=3D Compiler =3D=3D @@ -21,15 +26,13 @@ The BaseTools build supports the Makefile based build= for EDK II. All Tools are The tools in this section are NOT required to build the EDK II project; = they are needed to compile the BaseTools used to build the EDK II project. =20 -The Python 2.7.x tools may be obtained from http://www.python.org/, whil= e additional Python modules may be installed using setuptools or pip. Be = sure to check-out the appropriate tool set for your OS. - -*Linux and OS/X developers using a command line, create a directory that= will be used to hold the files, then change to that directory.=20 +*Linux and OS/X developers using a command line, create a directory that= will be used to hold the files, then change to that directory. **Replace URL with apropriate one from [[Python Tools]]. Installation an= d configuration for these tools are left to the developer. =20 =20 =20 =20 -Refer to documentation in either the UserManuals or Source folders for m= ore information.=20 +Refer to documentation in either the UserManuals or Source folders for m= ore information. * BuildTools [https://github.com/tianocore/buildtools-BaseTools/tree/mas= ter/UserManuals User Manuals] =20 =3D'''How to Setup the EDK II Tree'''=3D diff --git a/Common-instructions-for-Unix.mediawiki b/Common-instructions= -for-Unix.mediawiki index d15d3ffa0881..85fdbb001998 100644 --- a/Common-instructions-for-Unix.mediawiki +++ b/Common-instructions-for-Unix.mediawiki @@ -1,6 +1,11 @@ __NOTOC__ =3D=3DCommon instructions for Unix =3D=3D =20 + Note: New build instructions are available. It is recommended to start= with the new instructions if learning how to + build edk2 for the first time. This page is retained for referen= ce. + +New instructions: [[Build-Instructions.md|Build Instructions]] + A significant portion of the steps are common on the various UNIX-like p= latforms. You should start with the instructions for the operating syste= m that most closely matches your platform, and it will direct you here at= the appropriate time. =20 Note these instructions are not for current Linux distributions, only UN= IX-like systems that do not work with the [[Using EDK II with Native GCC]= ] instructions. Please follow the [[Using EDK II with Native GCC]] guide = for mainstream Linux distros. @@ -135,7 +140,7 @@ Find the following statement in Conf/tools_def.txt an= d comment the line out: DEFINE UNIXGCC_IA32_PETOOLS_PREFIX =3D /opt/tiano/i386-tiano-pe/i386-tia= no-pe/bin/ =20 -Next, find the following statement and uncomment the line:=20 +Next, find the following statement and uncomment the line: =20
 DEFINE UNIXGCC_IA32_PETOOLS_PREFIX =3D ENV(HOME)/programs/gcc/ia32/bin/i=
686-pc-mingw32-
diff --git a/Common-instructions.mediawiki b/Common-instructions.mediawik=
i
index 6e752e5699db..997994390359 100644
--- a/Common-instructions.mediawiki
+++ b/Common-instructions.mediawiki
@@ -1,6 +1,11 @@
 __NOTOC__
 =3DCommon EDK II Build Instructions for Linux=3D
=20
+  Note: New build instructions are available. It is recommended to start=
 with the new instructions if learning how to
+        build edk2 for the first time. This page is retained for referen=
ce.
+
+New instructions: [[Build-Instructions.md|Build Instructions]]
+
 These instructions assume you have installed Linux packages required for=
 an [[EDK II]] build environment, including git (example: [https://github=
.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC#Ubun=
tu_1604_LTS__Ubuntu_1610|Ubuntu 16.04/16.10]). The following instructions=
 are common to the majority of Linux environments.
=20
 =3D=3D=3DGet the edk2 source tree using Git =3D=3D=3D
diff --git a/Getting-Started-with-EDK-II.mediawiki b/Getting-Started-with=
-EDK-II.mediawiki
index f616d1e86e4c..eb6da7dfdc56 100644
--- a/Getting-Started-with-EDK-II.mediawiki
+++ b/Getting-Started-with-EDK-II.mediawiki
@@ -1,4 +1,10 @@
 __NOTOC__
+
+  Note: New build instructions are available. It is recommended to start=
 with the new instructions if learning how to
+        build edk2 for the first time. This page is retained for referen=
ce.
+
+New instructions: [[Build-Instructions.md|Build Instructions]]
+
 =3DDownloading and Compiling Code=3D
=20
 This page shows the steps for downloading [[EDK II]] from GitHub and com=
piling projects under various OS/compiler environments.
@@ -15,24 +21,24 @@ Several build environments are supported and document=
ed.  If instructions are no
 '''Note:''' Some other build tools may be required depending on the proj=
ect or package:
 * [[Nasm Setup|Nasm]]
 * [[ASL Setup|ASL Compiler]]
-* Install Python 3.7 or later (https://www.python.org/)  to run python t=
ool from source=20
+* Install Python 3.7 or later (https://www.python.org/)  to run python t=
ool from source
 **  Python 2.7.10 or later can still be used with PYTHON_HOME
=20
-'''Note:''' Some of the examples use the [[Multiple_Workspace]] `PACKAGE=
S_PATH` feature to the configure EDK II build environment. For example, t=
his is required for using platform code based on edk2-platforms: (https:/=
/github.com/tianocore/edk2-platforms).=20
+'''Note:''' Some of the examples use the [[Multiple_Workspace]] `PACKAGE=
S_PATH` feature to the configure EDK II build environment. For example, t=
his is required for using platform code based on edk2-platforms: (https:/=
/github.com/tianocore/edk2-platforms).
=20
 Once you have a basic build environment running, you can build a project=
 in RELEASE or [[EDK II Debugging|DEBUG]] mode.
=20
 =3D=3DGitHub Help=3D=3D
=20
-GitHub (https://help.github.com/index.html) provides step-by-step instru=
ctions for user registration and basic features supported by GitHub=20
+GitHub (https://help.github.com/index.html) provides step-by-step instru=
ctions for user registration and basic features supported by GitHub
=20
 * Setup GitHub for Linux/Windows/MAC (https://help.github.com/articles/s=
et-up-git)
 * Download and install a git GUI interface: git GUI Clients (https://git=
-scm.com/download/gui/win) | TortoiseGit (https://tortoisegit.org/)
=20
 =3D=3D=3DGitHub EDK II Project Repositories=3D=3D=3D
=20
-* The EDK II project repository is available at https://github.com/tiano=
core/edk2.=20
-* Prebuilt Windows tools are available at https://github.com/tianocore/e=
dk2-BaseTools-win32.=20
+* The EDK II project repository is available at https://github.com/tiano=
core/edk2.
+* Prebuilt Windows tools are available at https://github.com/tianocore/e=
dk2-BaseTools-win32.
 * [[EDK II Platforms]] are available at https://github.com/tianocore/edk=
2-platforms.
 * Content that is not released under an accepted open source license can=
 be found at https://github.com/tianocore/edk2-non-osi.
=20
diff --git a/UDK2017-How-to-Build.md b/UDK2017-How-to-Build.md
index 4eca47f98e21..851218bb0f4b 100644
--- a/UDK2017-How-to-Build.md
+++ b/UDK2017-How-to-Build.md
@@ -1,4 +1,10 @@
-# How to Build [[UDK2017]]=20
+# How to Build [[UDK2017]]
+
+> Note: New build instructions are available. It is recommended to start=
 with the new instructions if learning how to
+> build edk2 for the first time and not specifically targeting UDK2017. =
This page is retained for reference.
+
+New instructions: [Build Instructions](Build-Instructions.md)
+
 Table of Contents
 1) [HOW TO BUILD (WINDOWS SYSTEM)](#how-to-build-windows-system)
 2) [ HOW TO BUILD (LINUX-LIKE SYSTEM)](#how-to-build-linux-like-system)
@@ -20,7 +26,7 @@ The steps below are verified on Microsoft Windows 10 En=
terprise*:
 2.  Create the full Source Code directory for the UDK2017 release
     1)  Create a working space directory in the build machine, for examp=
le, C:\MyWorkspace
     2)  Download the official UDK2017 release .zip file from the [UDK201=
7 Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2017)
-        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (zip f=
ile)](https://github.com/tianocore/edk2/archive/vUDK2017.zip)=20
+        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (zip f=
ile)](https://github.com/tianocore/edk2/archive/vUDK2017.zip)
         2) Extract files in [edk2-vUDK2017] to the working space directo=
ry C:\MyWorkspace.
     3) **OR**  Checkout the vUDK2017 Tag from GitHub with the following =
"git" command 
1) run `git clone https://github.com/tianocore/edk2.git vUDK20= 17` @@ -32,18 +38,18 @@ The steps below are verified on Microsoft Windows 10 = Enterprise*: 4) Run the command `git checkout 0e088c19ab31fccd1d2f55d9e4fe0= 314b57c0097` 5) `Cd C:\MyWorkSpace` 6) Rename this folder from edk2-BaseTools-win32 to win32, then= copy the win32 - directory into the BaseTools/Bin directory under the workspac= e.=20 - (e.g. "C:\MyWorkspace\BaseTools\Bin\") =20 + directory into the BaseTools/Bin directory under the workspac= e. + (e.g. "C:\MyWorkspace\BaseTools\Bin\") 3. Generate OpenSSL* Crypto Library 1) Open file "C:\MyWorkspace\CryptoPkg\Library\OpensslLib\OpenSSL-H= OWTO.txt" and follow the instruction to install OpenSSL* for UEFI building= . For this release, please use OpenSSL-1.1.0e. =20 -4. Compile the BaseTools (Skip if Optional Step 2.iv was done above) Se= e:=20 +4. Compile the BaseTools (Skip if Optional Step 2.iv was done above) Se= e: https://github.com/tianocore/tianocore.github.io/wiki/Windows-syste= ms#compile-tools 1) Open a Microsoft Visual Studio* command prompt, type `cd C:\MyWo= rkspace` to enter the workspace directory - 2) Compile the BaseTools C source tools =20 + 2) Compile the BaseTools C source tools
 	set PYTHON_HOME=3DC:\Python27
         set EDK_TOOLS_PATH=3D%CD%\BaseTools
@@ -86,19 +92,19 @@ The below steps are verified on Ubuntu 16.04 LTS Desk=
top*:
         install it.
         You can also download the source package from https://acpica.org=
/downloads
         and install it following the instruction on the website.
-     4) Install the C Compiler- Ubuntu 16.04 LTS  you can use GNU C comp=
iler (v5.4.0)=20
+     4) Install the C Compiler- Ubuntu 16.04 LTS  you can use GNU C comp=
iler (v5.4.0)
         At Ubuntu, you can type `"sudo apt-get install gcc-5"` under ter=
minal prompt to install it.
=20
=20
 2.  Create the full Source Code directory for the UDK2017 release
     1)  Create a working space directory in the build machine, for examp=
le, ~/src/MyWorkspace
     2)  Download the official UDK2017 release .tar file from the [UDK201=
7 Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2017)
-        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (tar.g=
z file)](https://github.com/tianocore/edk2/archive/vUDK2017.tar.gz)=20
+        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (tar.g=
z file)](https://github.com/tianocore/edk2/archive/vUDK2017.tar.gz)
         2) Extract files in [edk2-vUDK2017] to the working space directo=
ry ~/src/MyWorkspace.
-    3) **OR**  Checkout the vUDK2017 tag from GitHub with the following =
"git" command=20
+    3) **OR**  Checkout the vUDK2017 tag from GitHub with the following =
"git" command
         1)  Run `"git clone https://github.com/tianocore/edk2.git vUDK20=
17"`
         2)  Move all files and folders under "vUDK2017" to "~/src/MyWork=
space"
-	=20
+
 3.  Generate OpenSSL* Crypto Library
     1)  Open file "~/src/MyWorkspace/CryptoPkg/Library/OpensslLib/OpenSS=
L-HOWTO.txt"
         and follow the instruction to install OpenSSL* for UEFI building=
.
@@ -108,9 +114,9 @@ The below steps are verified on Ubuntu 16.04 LTS Desk=
top*:
     *** MdeModulePkg ***
     1)  Open a terminal and type `"cd ~/src/MyWorkspace"` to enter the w=
orkspace
         directory.
-    2)  First build the BaseTools by typing=20
+    2)  First build the BaseTools by typing
         `"make -C BaseTools"`
-    3)  Initialize the build environment by typing=20
+    3)  Initialize the build environment by typing
         `". edksetup.sh"`.
     4)  Type following command to build platforms using GCC v5.4.0 
`"build -p MdeModulePkg/MdeModulePkg.dsc -t GCC5"` diff --git a/UDK2018-How-to-Build.md b/UDK2018-How-to-Build.md index b981b2162cc4..518e224e254b 100644 --- a/UDK2018-How-to-Build.md +++ b/UDK2018-How-to-Build.md @@ -1,4 +1,10 @@ -# How to Build [[UDK2018]]=20 +# How to Build [[UDK2018]] + +> Note: New build instructions are available. It is recommended to start= with the new instructions if learning how to +> build edk2 for the first time and not specifically targeting UDK2018. = This page is retained for reference. + +New instructions: [Build Instructions](Build-Instructions.md) + Table of Contents 1) [HOW TO BUILD (WINDOWS SYSTEM)](#how-to-build-windows-system) 2) [ HOW TO BUILD (LINUX-LIKE SYSTEM)](#how-to-build-linux-like-system) @@ -17,15 +23,15 @@ The steps below are verified on Microsoft Windows 10 = Enterprise*: 4) Download and install Python2.7.x https://www.python.org/ for bu= ilding the BaseTools Default install directory is: C:/Python27 5) Download the pre-compiled Openssl binary from https://wiki.opens= sl.org/index.php/Binaries. Search for a - Windows binary in the list of "_Third Party OpenSSL Related Bina= ry Distributions_" table that will be=20 + Windows binary in the list of "_Third Party OpenSSL Related Bina= ry Distributions_" table that will be Windows binary. Go to the third party site to download the lates= t version of Windows x64 86 or Win32 binary. - Download and extract to C:\Openssl. Make sure C:\Openssl is adde= d to system environment=20 - variable 'PATH'.=20 + Download and extract to C:\Openssl. Make sure C:\Openssl is adde= d to system environment + variable 'PATH'. =20 2. Create the full Source Code directory for the UDK2018 release 1) Create a working space directory in the build machine, for examp= le, C:\MyWorkspace 2) Download the official UDK2018 release .zip file from the [UDK201= 8 Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2018) - 1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (zip f= ile)](https://github.com/tianocore/edk2/archive/vUDK2018.zip)=20 + 1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (zip f= ile)](https://github.com/tianocore/edk2/archive/vUDK2018.zip) 2) Extract files in [edk2-vUDK2018] to the working space directo= ry C:\MyWorkspace. 3) **OR** Checkout the vUDK2018 Tag from GitHub with the following = "git" command
1) run `git clone https://github.com/tianocore/edk2.git vUDK2= 018` @@ -35,16 +41,16 @@ The steps below are verified on Microsoft Windows 10 = Enterprise*: 3. Generate OpenSSL* Crypto Library 1) Open file "C:\MyWorkspace\CryptoPkg\Library\OpensslLib\OpenSSL-H= OWTO.txt" and follow the instruction to install OpenSSL* for UEFI building= . - For this release, please use OpenSSL-1.1.0g. Download it from=20 + For this release, please use OpenSSL-1.1.0g. Download it from https://github.com/openssl/openssl/archive/OpenSSL_1_1_0g.zip Extract it to C:\MyWorkspace\CryptoPkg\Library\OpensslLib, and rename its directory name to openssl =20 -4. Compile the BaseTools See:=20 +4. Compile the BaseTools See: https://github.com/tianocore/tianocore.github.io/wiki/Windows-syste= ms#compile-tools 1) Open a Microsoft Visual Studio* command prompt, type `cd C:\MyWo= rkspace` to enter the workspace directory - 2) Compile the BaseTools C source tools =20 + 2) Compile the BaseTools C source tools
 	set PYTHON_HOME=3DC:\Python27
         edksetup.bat Rebuild
@@ -93,17 +99,17 @@ The below steps are verified on Ubuntu 16.04 LTS Desk=
top*:
 2.  Create the full Source Code directory for the UDK2018 release
     1)  Create a working space directory in the build machine, for examp=
le, ~/src/MyWorkspace
     2)  Download the official UDK2018 release .tar file from the [UDK201=
8 Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2018)
-        1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (tar.g=
z file)](https://github.com/tianocore/edk2/archive/vUDK2018.tar.gz)=20
+        1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (tar.g=
z file)](https://github.com/tianocore/edk2/archive/vUDK2018.tar.gz)
         2) Extract files in [edk2-vUDK2018] to the working space directo=
ry ~/src/MyWorkspace.
-    3) **OR**  Checkout the vUDK2018 tag from GitHub with the following =
"git" command=20
+    3) **OR**  Checkout the vUDK2018 tag from GitHub with the following =
"git" command
         1)  Run `"git clone https://github.com/tianocore/edk2.git vUDK20=
18"`
         2)  Go to the vUDK2018 directory, and from there run: `git check=
out tags/vUDK2018 -b vUDK2018`
         3)  Move all files and folders under "vUDK2018" to "~/src/MyWork=
space"
-	=20
+
 3.  Generate OpenSSL* Crypto Library
     1)  Open file "~/src/MyWorkspace/CryptoPkg/Library/OpensslLib/OpenSS=
L-HOWTO.txt"
         and follow the instruction to install OpenSSL* for UEFI building=
.
-        For this release, please use OpenSSL-1.1.0g.       Download it f=
rom=20
+        For this release, please use OpenSSL-1.1.0g.       Download it f=
rom
         https://github.com/openssl/openssl/archive/OpenSSL_1_1_0g.zip
         Extract it to ~/src/MyWorkspace/CryptoPkg/Library/OpensslLib,
         and rename its directory name to openssl
@@ -113,9 +119,9 @@ The below steps are verified on Ubuntu 16.04 LTS Desk=
top*:
     *** MdeModulePkg ***
     1)  Open a terminal and type `"cd ~/src/MyWorkspace"` to enter the w=
orkspace
         directory.
-    2)  First build the BaseTools by typing=20
+    2)  First build the BaseTools by typing
         `"make -C BaseTools"`
-    3)  Initialize the build environment by typing=20
+    3)  Initialize the build environment by typing
         `". edksetup.sh"`.
     4)  Type following command to build platforms using GCC v5.4.0 
`"build -p MdeModulePkg/MdeModulePkg.dsc -t GCC5"` diff --git a/Unix-like-systems.mediawiki b/Unix-like-systems.mediawiki index 36fd1a2b1299..8981ba04d8bb 100644 --- a/Unix-like-systems.mediawiki +++ b/Unix-like-systems.mediawiki @@ -1,3 +1,8 @@ + Note: New build instructions are available. It is recommended to start= with the new instructions if learning how to + build edk2 for the first time. This page is retained for referen= ce. + +New instructions: [[Build-Instructions.md|Build Instructions]] + This page provides ''step-by-step instructions'' for setting up a [http:= //www.tianocore.org/edk2/ EDK II] build environment on various Unix-like = systems. =20 '''Note''': These instructions are not recommended for most EDK II devel= opers. If you are working with a supported Linux distribution, then the [= [Using EDK II with Native GCC]] instructions are faster, easier, and prod= uce a smaller UEFI binary image. @@ -12,7 +17,7 @@ Often these instructions will contain a command which n= eeds to be executed in th bash$ echo this bold text is a sample command
=20 -To execute this command, highlight the bold text of the command in your = web browser. Most web browsers should be able to copy the text by select= ing Copy under the Edit menu. Now, change back to the terminal applicati= on, and there should be a Paste operation under the Edit menu. After pas= ting the command into the shell, you may need to press the enter or retur= n key to execute the command.=20 +To execute this command, highlight the bold text of the command in your = web browser. Most web browsers should be able to copy the text by select= ing Copy under the Edit menu. Now, change back to the terminal applicati= on, and there should be a Paste operation under the Edit menu. After pas= ting the command into the shell, you may need to press the enter or retur= n key to execute the command. =20 Of course, there may be other ways to copy and paste the command into th= e terminal which are specific to the windowing environment and applicatio= ns that you are using. If all else fails, however, you can type the comm= and by hand. =20 diff --git a/Using-EDK-II-with-Native-GCC.mediawiki b/Using-EDK-II-with-N= ative-GCC.mediawiki index e17f5056b446..46edfcddcb79 100644 --- a/Using-EDK-II-with-Native-GCC.mediawiki +++ b/Using-EDK-II-with-Native-GCC.mediawiki @@ -1,4 +1,7 @@ + Note: New build instructions are available. It is recommended to start= with the new instructions if learning how to + build edk2 for the first time. This page is retained for referen= ce. =20 +New instructions: [[Build-Instructions.md|Build Instructions]] =20 This page provides ''step-by-step instructions'' for setting up a [http:= //www.tianocore.org/edk2/ EDK II] build environment on Linux using a nati= ve GCC installation (4.4+). This EDK II setup does not require the Mingw= version of GCC to be built, and therefore can be much faster to setup. =20 @@ -10,7 +13,7 @@ These instructions will be written as a series of comma= nds executed from a comma bash$ echo this text is a sample command
=20 -To execute this command, highlight the text of the command in your web b= rowser. (Note that the 'bash$' text is not part of the command!) Most w= eb browsers should be able to copy the text by selecting Copy under the E= dit menu. Now, change back to the terminal application, and there should= be a Paste operation under the Edit menu. After pasting the command int= o the shell, you may need to press the enter or return key to execute the= command.=20 +To execute this command, highlight the text of the command in your web b= rowser. (Note that the 'bash$' text is not part of the command!) Most w= eb browsers should be able to copy the text by selecting Copy under the E= dit menu. Now, change back to the terminal application, and there should= be a Paste operation under the Edit menu. After pasting the command int= o the shell, you may need to press the enter or return key to execute the= command. =20 Of course, there may be other ways to copy and paste the command into th= e terminal which are specific to the windowing environment and applicatio= ns that you are using. If all else fails, however, you can type the comm= and by hand. =20 @@ -63,10 +66,10 @@ Several Ubuntu packages will be needed to set up the = build environment for EDK I bash$ sudo apt install build-essential uuid-dev iasl git nasm python-i= s-python3
=20 -:build-essential - Informational list of build-essential packages=20 +:build-essential - Informational list of build-essential packages :uuid-dev - Universally Unique ID library (headers and static libraries= ) :iasl - Intel ASL compiler/decompiler (also provided by acpica-tools) -:git - support for git revision control system=20 +:git - support for git revision control system :nasm - General-purpose x86 assembler :python-is-python3 - Ubuntu 20.04 python command is 'python3' but edk2 t= ools use 'python' =20 @@ -93,10 +96,10 @@ Several Ubuntu packages will be needed to set up the = build environment for EDK I bash$ sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm = python3-distutils =20 -:build-essential - Informational list of build-essential packages=20 +:build-essential - Informational list of build-essential packages :uuid-dev - Universally Unique ID library (headers and static libraries= ) :iasl - Intel ASL compiler/decompiler (also provided by acpica-tools) -:git - support for git revision control system=20 +:git - support for git revision control system :gcc-5 - GNU C compiler (v5.4.0 as of Ubuntu 16.04 LTS) :nasm - General-purpose x86 assembler :python3-distutils - distutils module from the Python standard library diff --git a/Windows-systems.mediawiki b/Windows-systems.mediawiki index ebb717a22464..50d9d02af8dc 100644 --- a/Windows-systems.mediawiki +++ b/Windows-systems.mediawiki @@ -1,11 +1,17 @@ __NOTOC__ + + Note: New build instructions are available. It is recommended to start= with the new instructions if learning how to + build edk2 for the first time. This page is retained for referen= ce. + +New instructions: [[Build-Instructions.md|Build Instructions]] + This page provides step-by-step instructions or setting up a [http://www= .tianocore.org/edk2/ EDK II] build environment on Windows systems. =20 ''Table of Contents'' * [[Windows-systems#github-help|GitHub Help]] * [[Windows-systems#how-to-setup-the-edk-ii-tree| How to Setup the EDK I= I Tree]] -* [[Windows-systems#download| Download]] Checkout EDK II source tree fr= om Github=20 -* [[Windows-systems#compile-tools |Compile Tools]] Build EDK II BaseTool= s for Windows=20 +* [[Windows-systems#download| Download]] Checkout EDK II source tree fr= om Github +* [[Windows-systems#compile-tools |Compile Tools]] Build EDK II BaseTool= s for Windows * [[Windows-systems#build | BUILD]] EDK II =20 =3D=3DGitHub Help=3D=3D @@ -18,11 +24,11 @@ GitHub (https://help.github.com/index.html) provides = step-by-step instructions f =20 =3D=3D'''GitHub EDK II Project Repositories'''=3D=3D =20 -* The EDK II project repository is available at https://github.com/tiano= core/edk2.=20 +* The EDK II project repository is available at https://github.com/tiano= core/edk2. =20 Content that is not released under an accepted open source license can b= e found at https://github.com/tianocore/edk2-non-osi.
 
-Note: the steps below will pull the latest code from edk2 master. To wor= k from a stable release, please refer to the Microsoft Windows build step= s for [[UDK2017]]: https://github.com/tianocore/tianocore.github.io/wiki/= UDK2017-How-to-Build#how-to-build-windows-system=20 +Note: the steps below will pull the latest code from edk2 master. To wor= k from a stable release, please refer to the Microsoft Windows build step= s for [[UDK2017]]: https://github.com/tianocore/tianocore.github.io/wiki/= UDK2017-How-to-Build#how-to-build-windows-system =20 =3D=3D=3DInternet proxies=3D=3D=3D =20 @@ -47,9 +53,9 @@ Download/Checkout the EDK II source tree from Github ## Click on the ''Clone or Download'' button (Right Green) ## Click on Download ZIP ## Unzip to C:/ -## Rename directory =E2=80=9Cedk2-master=E2=80=9D to =E2=80=9Cedk2=E2=80= =9D =20 +## Rename directory =E2=80=9Cedk2-master=E2=80=9D to =E2=80=9Cedk2=E2=80= =9D =20 -Continue to [[Windows-systems#compile-tools |Compile Tools]]=20 +Continue to [[Windows-systems#compile-tools |Compile Tools]] =20 =3D=3D=3D Using '''Git for Windows''' Application =3D=3D=3D =3D=3D=3D=3D ''Git GUI''=3D=3D=3D=3D @@ -77,7 +83,7 @@ Continue to [[Windows-systems#compile-tools |Compile To= ols]] and then [[Windows- * Change to the workspace directory * Clone the EDK II project repository (See [[Windows-systems#download| D= ownload]] section above) ** Example: git clone https://github.com/tianocore/edk2 -* Install Python37 or late version (https://www.python.org/) to run pyt= hon tool from source=20 +* Install Python37 or late version (https://www.python.org/) to run pyt= hon tool from source * Compile BaseTools C source tools Example: * Inside Git Bash @@ -88,14 +94,14 @@ Example: Example: *Open Command prompt and CD C:\edk2:
-     C:\edk2> set PYTHON_HOME=3DC:\Python37
+     C:\edk2> set PYTHON_HOME=3DC:\Python37
      C:\edk2> edksetup.bat Rebuild
 
=20 =20 =3D=3D'''Build'''=3D=3D * Set up the [[Nasm-Setup| Nasm]] open source assembly compiler -* Set up the [[Asl Setup| ASL Compiler]]=20 +* Set up the [[Asl Setup| ASL Compiler]] * [[Windows-systems#compile-tools |Compile Tools]] above * Open a Windows CMD prompt: * Change to the edk2 directory @@ -121,7 +127,7 @@ ACTIVE_PLATFORM should look like this in Conf\target.= txt: ACTIVE_PLATFORM =3D MdeModulePkg/MdeModulePkg.dsc =20 -Modify TOOL_CHAIN_TAG in target.txt for the toolchain installed on your = system. There are many options, so review the tools_def.txt to find the a= ppropriate toolchain for your system. Search for 'Supported Tool Chains'= in tools_def.txt to see the valid options for TOOL_CHAIN_TAG.=20 +Modify TOOL_CHAIN_TAG in target.txt for the toolchain installed on your = system. There are many options, so review the tools_def.txt to find the a= ppropriate toolchain for your system. Search for 'Supported Tool Chains'= in tools_def.txt to see the valid options for TOOL_CHAIN_TAG.
 TOOL_CHAIN_TAG        =3D VS2015x86
 
--=20 2.28.0.windows.1