From: Michael Kubacki <michael.kuba...@microsoft.com>

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 <sean.bro...@microsoft.com>
Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Signed-off-by: Michael Kubacki <michael.kuba...@microsoft.com>
---
 Build.mediawiki                        | 229 +++++-----
 BuildTool-Setup-Guide.mediawiki        |  89 ++--
 Common-instructions-for-Unix.mediawiki | 377 +++++++--------
 Common-instructions.mediawiki          | 211 ++++-----
 Getting-Started-with-EDK-II.mediawiki  |  16 +-
 UDK2017-How-to-Build.md                | 252 +++++-----
 UDK2018-How-to-Build.md                | 262 +++++------
 Unix-like-systems.mediawiki            | 425 ++++++++---------
 Using-EDK-II-with-Native-GCC.mediawiki | 483 ++++++++++----------
 Windows-systems.mediawiki              | 314 ++++++-------
 10 files changed, 1352 insertions(+), 1306 deletions(-)

diff --git a/Build.mediawiki b/Build.mediawiki
index 19517eaef4e3..8e16cb12576b 100644
--- a/Build.mediawiki
+++ b/Build.mediawiki
@@ -1,114 +1,115 @@
-=Frequently asked EDK II build questions=
-
-==Regarding the Build for EDK II, how do you specify a different compiler tool 
chain on the command line?==
-
-Use –t parameter for the build command. Example: Using the Microsoft Visual 
Studio 2005 tool chain ... 
-
-    build –t VS2005
-
-For using other tools see [[Getting_Started_with_EDK_II]]. This provides some 
detailed instructions for setting up some different tool chains? The file 
Conf/tools_def.txt contains a list of targets.
-
-==Is it possible to use PCDs @ build time?==
-
-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 something 
should be built then it might be better to use the “Build –D MACRO-NAME” 
options.
-
-==Is there information on Building on Linux?==
-
-For EDK II, yes, the build tools will need to be recompiled for GCC.  Link for 
how to Build for GCC: 
-* [[Using EDK II with Native GCC]]
-* [[Unix-like systems]] (For older Linux distributions, or when using Cygwin 
or Mac OS X)
-
-==What is the state of Python?==
-
-For Building EDK II Python of at least version 2.5 is needed. On Linux we've 
used 2.6 & 2.7.  Python 3+ is not supported and will not work currently.  On 
Windows, python is not required to be installed to build with EDK II. 
-There is a Python interpreter that  is part of the EFI toolkit on 
tianocore.org and is at the Python version level 2.4,  There are long term 
plans 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.
-
-==What does the parsing tool do?==
-
-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 files
-
-==Regarding writing UEFI Applications in EDK II, where is the output and/or 
the binary UEFI application after doing a build?==
-
-The Build output directory is defined in the defines section of a .DSC file.
-For example, Nt32Pkg\Nt32Pkg.dsc - the UEFI application would be in 
Build\NT32\DEBUG_MYTOOLS\IA32
-
-    OUTPUT_DIRECTORY                   = Build/NT32
-    SUPPORTED_ARCHITECTURES    = IA32
-    BUILD_TARGETS              = DEBUG
-
-==How do I get my UEFI application to the target UEFI System?==
-
-Copy the UEFI Binary image from the output directory after the build to a USB 
thumb drive. Insert the USB drive in the UEFI target system. Boot to the EFI 
Shell.  The USB thumb drive should be one of the file systems, e.g. FS0:. Cd to 
that USB drive and run your UEFI application from the shell  prompt
-
-==Is the Build tool source code part of the Build?==
-
-No, the repository for the Tool Source is a separate project. The binaries by 
default are for a Windows build machine. For building on a non Windows machine 
there are instructions for recompiling the build tools.
-
-The sources are also in the BaseTools directory with the pre-build Windows 
executables.  These sources are provided because they are the sources that were 
used to build the binaries.  On Windows systems, the tools do not need to be 
built.  The pre-build binaries can be used.  One Linux, Unix, and OS/X systems, 
these sources are used to build the binaries for that OS, or in the case of 
Python, the Python sources are executed directly.
-
-The [[BaseTools]] Source Project is where advanced development is done on the 
EDK II tools.  Tool developers work in this separate project until a new 
feature is stable, and only once it is stable is a feature added to the 
BaseTools directory and new binaries are generated.
-
-==Can we use Ifdefs?==
-
-This is not recommended but can be used within the DSC or FDF as part of the 
build.
-But here is an example:
-
-   !ifdef $(SOURCE_DEBUG_ENABLE)
-     MSFT:*_*_X64_GENFW_FLAGS  = --keepexceptiontable
-     GCC:*_*_X64_GENFW_FLAGS   = --keepexceptiontable
-     INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable
-   !endif
-
-==When can the report generator show the protocols produced by modules?==
-
-The report generator can show protocols produced by modules. The Runtime DXE 
core will also report what is missing before handing off.
-
-==Why is the Buffer Security check flag (Build options) disabled for building 
EDK II UEFI applications and drivers but it is enabled for building tools. ==
-
-UEFI applications and drivers are not executed in an Operating System 
environment. 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 environment:
-
-* The switch enables additional code in the compiled code base, which requires 
a larger stack space than may be available in the pre-boot environment 
-* 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 how to 
emulate. 
-
-We disable these settings, as enabling them would create non-functioning code.
-
-However, please be aware that Detecting Stack Overflows in Firmware is 
critical in validation and development, and we use other techniques in our code 
to do so.  We just cannot generically support the /Gs flags (as noted above).
-
-The tools do have this flag set, as they are used within the Operating System 
environment, where the intrinsic added by the compiler can be processed 
correctly. 
- 
-==Are there Dual-mode drivers in EDK II?==
-
-No.  The EDK II build system does not support the dual mode drivers described 
in the PI Specification.  These types of modules are very difficult to 
implement correctly, so we recommend that developer implement two different 
modules instead.  The EDK II does allow them to share sources, but 2 different 
PE/COFF images would be generated when built.
-
-==Is there a tool to parse the BIOS Build tree?==
-
-a) Use the report generator build into the build tool  “BUILD –Y” on the 
command line 
-
-  -Y REPORTTYPE, --report-type=REPORTTYPE
-                       Flags that control the type of build report to
-                               generate.  Must be one of: [PCD, LIBRARY, 
FLASH, DEPEX, 
-                        BUILD_FLAGS, FIXED_ADDRESS, EXECUTION_ORDER].
-                               To specify more than one flag, repeat this 
option on
-                               the command line and the default flag set is 
[PCD,
-                               LIBRARY, FLASH, DEPEX, BUILD_FLAGS, 
FIXED_ADDRESS]
-            Use “–Y DEPEX” and this will generate a text file with dependencies
-
-
-b) Predicted dispatch order is limited because it makes assumptions about the 
behavior of the modules. It cannot handle that some PPI and DXE protocols that 
might be conditionally produced. Documented in the EDK2010 March 2010 release 
notes.
-
-c) Behavior of dispatch – filter for DEBUG_DISPATCH in DSC in the PCD for the 
error level PcdDebugPrintErrorLevel
-
-==How does the build tool load the reset vector at 0xFFFFFFF0?==
-
-This is defined in the PI Specification, Volume 3. http://www.uefi.org/specs
-
-In the FV (Firmware Volume) there is something called a Volume Top File inf 
the FV . A Volume Top File (VTF) is a file that must be located such that the 
last byte of the file is also the last byte of the firmware volume. Regardless 
of the file type, a VTF must have the file name GUID of 
EFI_FFS_VOLUME_TOP_FILE_GUID as defined below.
-
-From a PI point of view the first module that runs is the SEC core. If you 
look at the VTF file it is basically the code that contains the reset vector, 
and it jumps to the SEC code.
-
-Reference: 
https://github.com/tianocore/edk2/tree/master/UefiCpuPkg/ResetVector/Vtf0
-
-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. 
-
-In general the EFI build system constructs relocatable PE/COFF images, and 
every image is linked at zero. If the code executes from FLASH, then when the 
FV is constructed the PE/COFF images that are XIP (eXecute In Place) 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 relocated to its load address.
+=Frequently asked EDK II build questions=
+
+  Note: This page is retained for reference. Most of the content as of 2022 is 
still relevant but it is recommended to
+        view the new set of build instructions that describe how to develop 
using containers and build with the Stuart
+        application.
+
+New instructions: [[Build-Instructions.md|Build Instructions]]
+
+==Regarding the Build for EDK II, how do you specify a different compiler tool 
chain on the command line?==
+
+Use –t parameter for the build command. Example: Using the Microsoft Visual 
Studio 2019 tool chain ...
+
+    build –t VS2019
+
+For using other tools see [[Getting_Started_with_EDK_II]]. This provides some 
detailed instructions for setting up some different tool chains? The file 
Conf/tools_def.txt contains a list of targets.
+
+==Is it possible to use PCDs @ build time?==
+
+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 something 
should be built then it might be better to use the “Build –D MACRO-NAME” 
options.
+
+==Is there information on Building on Linux?==
+
+For EDK II, yes, the build tools will need to be recompiled for GCC.  Link for 
how to Build for GCC:
+* [[Using EDK II with Native GCC]]
+* [[Unix-like systems]] (For older Linux distributions, or when using Cygwin 
or Mac OS X)
+
+==What does the parsing tool do?==
+
+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 files
+
+==Regarding writing UEFI Applications in EDK II, where is the output and/or 
the binary UEFI application after doing a build?==
+
+The Build output directory is defined in the defines section of a .DSC file.
+For example, Nt32Pkg\Nt32Pkg.dsc - the UEFI application would be in 
Build\NT32\DEBUG_MYTOOLS\IA32
+
+    OUTPUT_DIRECTORY                   = Build/NT32
+    SUPPORTED_ARCHITECTURES    = IA32
+    BUILD_TARGETS              = DEBUG
+
+==How do I get my UEFI application to the target UEFI System?==
+
+Copy the UEFI Binary image from the output directory after the build to a USB 
thumb drive. Insert the USB drive in the UEFI target system. Boot to the EFI 
Shell.  The USB thumb drive should be one of the file systems, e.g. FS0:. Cd to 
that USB drive and run your UEFI application from the shell  prompt
+
+==Is the Build tool source code part of the Build?==
+
+No, the repository for the Tool Source is a separate project. The binaries by 
default are for a Windows build machine. For building on a non Windows machine 
there are instructions for recompiling the build tools.
+
+The sources are also in the BaseTools directory with the pre-build Windows 
executables.  These sources are provided because they are the sources that were 
used to build the binaries.  On Windows systems, the tools do not need to be 
built.  The pre-build binaries can be used.  One Linux, Unix, and OS/X systems, 
these sources are used to build the binaries for that OS, or in the case of 
Python, the Python sources are executed directly.
+
+The [[BaseTools]] Source Project is where advanced development is done on the 
EDK II tools.  Tool developers work in this separate project until a new 
feature is stable, and only once it is stable is a feature added to the 
BaseTools directory and new binaries are generated.
+
+==Can we use Ifdefs?==
+
+This is not recommended but can be used within the DSC or FDF as part of the 
build.
+But here is an example:
+
+   !ifdef $(SOURCE_DEBUG_ENABLE)
+     MSFT:*_*_X64_GENFW_FLAGS  = --keepexceptiontable
+     GCC:*_*_X64_GENFW_FLAGS   = --keepexceptiontable
+     INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable
+   !endif
+
+==When can the report generator show the protocols produced by modules?==
+
+The report generator can show protocols produced by modules. The Runtime DXE 
core will also report what is missing before handing off.
+
+==Why is the Buffer Security check flag (Build options) disabled for building 
EDK II UEFI applications and drivers but it is enabled for building tools. ==
+
+UEFI applications and drivers are not executed in an Operating System 
environment. 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 environment:
+
+* The switch enables additional code in the compiled code base, which requires 
a larger stack space than may be available in the pre-boot environment
+* 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 how to 
emulate.
+
+We disable these settings, as enabling them would create non-functioning code.
+
+However, please be aware that Detecting Stack Overflows in Firmware is 
critical in validation and development, and we use other techniques in our code 
to do so.  We just cannot generically support the /Gs flags (as noted above).
+
+The tools do have this flag set, as they are used within the Operating System 
environment, where the intrinsic added by the compiler can be processed 
correctly.
+
+==Are there Dual-mode drivers in EDK II?==
+
+No.  The EDK II build system does not support the dual mode drivers described 
in the PI Specification.  These types of modules are very difficult to 
implement correctly, so we recommend that developer implement two different 
modules instead.  The EDK II does allow them to share sources, but 2 different 
PE/COFF images would be generated when built.
+
+==Is there a tool to parse the BIOS Build tree?==
+
+a) Use the report generator build into the build tool  “BUILD –Y” on the 
command line
+
+  -Y REPORTTYPE, --report-type=REPORTTYPE
+                       Flags that control the type of build report to
+                               generate.  Must be one of: [PCD, LIBRARY, 
FLASH, DEPEX,
+                        BUILD_FLAGS, FIXED_ADDRESS, EXECUTION_ORDER].
+                               To specify more than one flag, repeat this 
option on
+                               the command line and the default flag set is 
[PCD,
+                               LIBRARY, FLASH, DEPEX, BUILD_FLAGS, 
FIXED_ADDRESS]
+            Use “–Y DEPEX” and this will generate a text file with dependencies
+
+
+b) Predicted dispatch order is limited because it makes assumptions about the 
behavior of the modules. It cannot handle that some PPI and DXE protocols that 
might be conditionally produced. Documented in the EDK2010 March 2010 release 
notes.
+
+c) Behavior of dispatch – filter for DEBUG_DISPATCH in DSC in the PCD for the 
error level PcdDebugPrintErrorLevel
+
+==How does the build tool load the reset vector at 0xFFFFFFF0?==
+
+This is defined in the PI Specification, Volume 3. http://www.uefi.org/specs
+
+In the FV (Firmware Volume) there is something called a Volume Top File inf 
the FV . A Volume Top File (VTF) is a file that must be located such that the 
last byte of the file is also the last byte of the firmware volume. Regardless 
of the file type, a VTF must have the file name GUID of 
EFI_FFS_VOLUME_TOP_FILE_GUID as defined below.
+
+From a PI point of view the first module that runs is the SEC core. If you 
look at the VTF file it is basically the code that contains the reset vector, 
and it jumps to the SEC code.
+
+Reference: 
https://github.com/tianocore/edk2/tree/master/UefiCpuPkg/ResetVector/Vtf0
+
+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.
+
+In general the EFI build system constructs relocatable PE/COFF images, and 
every image is linked at zero. If the code executes from FLASH, then when the 
FV is constructed the PE/COFF images that are XIP (eXecute In Place) 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 relocated to its load address.
diff --git a/BuildTool-Setup-Guide.mediawiki b/BuildTool-Setup-Guide.mediawiki
index 445ef25af598..45a80406395f 100644
--- a/BuildTool-Setup-Guide.mediawiki
+++ b/BuildTool-Setup-Guide.mediawiki
@@ -1,43 +1,46 @@
-=GitHub Help=
-
-GitHub (https://help.github.com/index.html) provides step-by-step instructions 
for user registration and basic features supported by GitHub 
-
-* 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/)
-
-=='''GitHub EDK II Project Repositories'''==
-
-* The EDK II BaseTools are part of the EDK II project repository. 
-* The EDK II project repository is available at 
https://github.com/tianocore/edk2. 
-* Prebuilt Windows tools are available at 
https://github.com/tianocore/edk2-BaseTools-win32. 
-* Content that is not released under an accepted open source license can be 
found at https://github.com/tianocore/edk2-non-osi.<BR>
-= Getting the extra tools=
-== Compiler ==
-For both the BuildTools and [http://www.tianocore.org/edk2/ EDK II] projects, 
you will need to obtain a compiler from somewhere else. These instructions do 
not cover obtaining or installation of a compiler tools chain. The BaseTools 
build requires a C compiler; an assembler or ACPI assembler are not required to 
build tools in this project. BaseTools assume that a compiler is already 
configured in the environment.
-
-== Python ==
-The BaseTools build supports the Makefile based build for EDK II. All Tools 
are written in either C or Python. The C tools must compile on all operating 
systems with various compilers, so the code is written using simple, standard 
functions and libraries. The Python-based tools are written assuming the 
features that were available in Python. GUI applications can be created in 
Python, using the wxPython package and all Python applications can be converted 
to run under a native OS (Windows, Linux or OS/X.) via the [[Python Tools]].
-
-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.
-
-The Python 2.7.x tools may be obtained from http://www.python.org/, while 
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. 
-**Replace URL with apropriate one from [[Python Tools]]. Installation and 
configuration for these tools are left to the developer.
-
-
-
-
-Refer to documentation in either the UserManuals or Source folders for more 
information. 
-* BuildTools 
[https://github.com/tianocore/buildtools-BaseTools/tree/master/UserManuals User 
Manuals]
-
-='''How to Setup the EDK II Tree'''=
-See [[Getting Started with EDK II]]
-
-==  EDK II Development Process ==
-After setting up your build environment see  [[EDK II Development Process]] 
for making contributions to the EDK II Project.
-
-=Further Help=
-
-If you have questions about the code or run into obstacles getting things to 
work for you, please join our [[edk2-devel]] email list and ask your EDK II 
related questions on the list.
+=GitHub Help=
+
+  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 reference.
+
+New instructions: [[Build-Instructions.md|Build Instructions]]
+
+GitHub (https://help.github.com/index.html) provides step-by-step instructions 
for user registration and basic features supported by GitHub
+
+* 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/)
+
+=='''GitHub EDK II Project Repositories'''==
+
+* The EDK II BaseTools are part of the EDK II project repository.
+* The EDK II project repository is available at 
https://github.com/tianocore/edk2.
+* Prebuilt Windows tools are available at 
https://github.com/tianocore/edk2-BaseTools-win32.
+* Content that is not released under an accepted open source license can be 
found at https://github.com/tianocore/edk2-non-osi.<BR>
+= Getting the extra tools=
+== Compiler ==
+For both the BuildTools and [http://www.tianocore.org/edk2/ EDK II] projects, 
you will need to obtain a compiler from somewhere else. These instructions do 
not cover obtaining or installation of a compiler tools chain. The BaseTools 
build requires a C compiler; an assembler or ACPI assembler are not required to 
build tools in this project. BaseTools assume that a compiler is already 
configured in the environment.
+
+== Python ==
+The BaseTools build supports the Makefile based build for EDK II. All Tools 
are written in either C or Python. The C tools must compile on all operating 
systems with various compilers, so the code is written using simple, standard 
functions and libraries. The Python-based tools are written assuming the 
features that were available in Python. GUI applications can be created in 
Python, using the wxPython package and all Python applications can be converted 
to run under a native OS (Windows, Linux or OS/X.) via the [[Python Tools]].
+
+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.
+
+*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 and 
configuration for these tools are left to the developer.
+
+
+
+
+Refer to documentation in either the UserManuals or Source folders for more 
information.
+* BuildTools 
[https://github.com/tianocore/buildtools-BaseTools/tree/master/UserManuals User 
Manuals]
+
+='''How to Setup the EDK II Tree'''=
+See [[Getting Started with EDK II]]
+
+==  EDK II Development Process ==
+After setting up your build environment see  [[EDK II Development Process]] 
for making contributions to the EDK II Project.
+
+=Further Help=
+
+If you have questions about the code or run into obstacles getting things to 
work for you, please join our [[edk2-devel]] email list and ask your EDK II 
related questions on the list.
diff --git a/Common-instructions-for-Unix.mediawiki 
b/Common-instructions-for-Unix.mediawiki
index d15d3ffa0881..2432695e8844 100644
--- a/Common-instructions-for-Unix.mediawiki
+++ b/Common-instructions-for-Unix.mediawiki
@@ -1,186 +1,191 @@
-__NOTOC__
-==Common instructions for Unix ==
-
-A significant portion of the steps are common on the various UNIX-like 
platforms.  You should start with the instructions for the operating system 
that most closely matches your platform, and it will direct you here at the 
appropriate time.
-
-Note these instructions are not for current Linux distributions, only 
UNIX-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.
-
-===Get the edk2 source tree using Git ===
-
-<pre>
-bash$ mkdir ~/src
-bash$ cd ~/src
-bash$ git clone https://github.com/tianocore/edk2
-</pre>
-
-====For EDKII project developers:====
-*      Clone the EDK II project repository
-**     git clone https://github.com/tianocore/edk2
-*      Change to the edk2 directory
-*      Build the tools
-**     make -C BaseTools
-*      Run the edksetup.sh script
-**     . edksetup.sh
-When the above steps are done, you can work in the edk2 directory for code 
development.
-
-===Build the EDK II BaseTools===
-
-<pre>
-bash$ make -C edk2/BaseTools
-</pre>
-
-===Build gcc x64 UEFI cross compiler===
-
-In order to build UEFI images for x64, you will need to build a cross-compiler 
build of gcc.  This can take quite a while to complete, possibly several hours 
on older systems.  But, a Python script has been provided to automate this 
build process.
-
-Note: This is only needed if behind a internet firewall!
-<pre>
-bash$ export http_proxy=http://proxy.domain.com:proxy_port
-</pre>
-
-To build gcc for x64, use these commands (this will take quite a while to 
complete):
-
-<pre>
-bash$ cd ~/src/edk2/BaseTools/gcc
-bash$ ./mingw-gcc-build.py --arch=x64 \
-  --prefix=~/programs/gcc/x64
-</pre>
-
-===Setup build shell environment===
-
-<pre>
-bash$ cd ~/src/edk2
-bash$ export EDK_TOOLS_PATH=~/src/edk2/BaseTools
-bash$ . edksetup.sh BaseTools
-</pre>
-
-===Modify Conf Files===
-
-You will need to edit the Conf/tools_def.txt and Conf/target.txt files.  These 
changes will enable the MdeModulePkg to be built using the gcc x64 compiler.
-
-====Enable GCC X64 Cross-Compiler====
-
-For the Conf/tools_def.txt file, find the following entry and comment the line 
out:
-
-<pre>
-DEFINE UNIXGCC_X64_PETOOLS_PREFIX  = 
/opt/tiano/x86_64-pc-mingw64/x86_64-pc-mingw64/bin/
-</pre>
-
-Next, find the following entry and uncomment the line:
-
-<pre>
-DEFINE UNIXGCC_X64_PETOOLS_PREFIX  = 
ENV(HOME)/programs/gcc/x64/bin/x86_64-pc-mingw32-
-</pre>
-
-====Set Build Target Information====
-
-For the Conf/target.txt file, find the following lines:
-
-<pre>
-ACTIVE_PLATFORM       = Nt32Pkg/Nt32Pkg.dsc
-TARGET_ARCH           = IA32
-TOOL_CHAIN_TAG        = MYTOOLS
-</pre>
-
-And change the cooresponding lines to match these:
-
-<pre>
-ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
-TARGET_ARCH           = X64
-TOOL_CHAIN_TAG        = UNIXGCC
-</pre>
-
-===Build Hello World!  (and the rest of MdeModulePkg)===
-
-Now you should be able to simply run the build command to compile the 
MdeModulePkg.
-
-<pre>
-bash$ build
-</pre>
-
-As a tangible result of the build, you should have the HelloWorld UEFI X64 
application.  If you have a X64 UEFI system available to you, then this 
application should be able to run successfully under the shell.
-
-<pre>
-bash$ ls Build/MdeModule/DEBUG_UNIXGCC/X64/HelloWorld.efi
-</pre>
-
-==Enabling Other Tools==
-
-The above showed how to setup an X64 build environment for building the core 
MdeModulePkg.  However, other packages may require additional tools such as an 
IA32 cross-compiler and an ASL compiler.  The steps to build these tools are 
described in this section.
-
-===Build gcc IA32 UEFI cross compiler===
-
-In order to build UEFI images for IA32, you will need to build a 
cross-compiler build of gcc.  This can take quite a while to complete, possibly 
several hours on older systems.  But, a Python script has been provided to 
automate this build process.
-
-Note: This is only needed if behind a internet firewall!
-<pre>
-bash$ export http_proxy=http://proxy.domain.com:proxy_port
-</pre>
-
-To build gcc for IA32, use these commands (this will take quite a while to 
complete):
-
-<pre>
-bash$ cd ~/src/edk2/BaseTools/gcc
-bash$ ./mingw-gcc-build.py --arch=ia32 \
-  --prefix=~/programs/gcc/ia32
-</pre>
-
-====Modify Conf Files====
-
-Once the cross-compiler has been successfully built the Conf/tools_def.txt 
will need to be updated so the cross-compiler can be used.
-
-Find the following statement in Conf/tools_def.txt and comment the line out:
-
-<pre>
-DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = 
/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/
-</pre>
-
-Next, find the following statement and uncomment the line: 
-
-<pre>
-DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = 
ENV(HOME)/programs/gcc/ia32/bin/i686-pc-mingw32-
-</pre>
-
-To enable building your target image with IA32 support the Conf/target.txt 
will also need to be modified.
-
-Find the TARGET_ARCH definition in Conf/target.txt and change the 
corresponding line to match this
-
-<pre>
-TARGET_ARCH           = IA32
-</pre>
-
-===Build the Intel ASL (iasl) compiler===
-
-The Intel ASL compiler is not required for all edk2 developers.  It is 
unlikely that UEFI Application or UEFI Driver builds will need an ASL compiler. 
 But, if you are building an entire system firmware image, then you may need an 
ASL compiler.  For example, the edk2 OVMF sample platform does require an ASL 
compiler in order to be built.
-
-First, download the latest ACPI-CA release from http://www.acpica.org.
-
-'''OS X users''': At this time, the latest versions of ACPI-CA are not 
building on Mac OS X, so please use the release from 20081031 instead.
-
-<pre>
-bash$ cd ~/src
-bash$ wget http://www.acpica.org/download/acpica-unix-20090521.tar.gz
-bash$ tar -zxf acpica-unix-20090521.tar.gz
-bash$ make -C acpica-unix-20090521/compiler
-bash$ ln -s ~/src/acpica-unix-20090521/compiler/iasl ~/programs/iasl
-</pre>
-
-====Modify Conf Files====
-
-Once the Intel ASL compiler has been successfully built the Conf/tools_def.txt 
will need to be updated so the ASL compiler can be used.
-
-Find the following statement in Conf/tools_def.txt and comment the line out:
-
-<pre>
-DEFINE UNIX_IASL_BIN           = /usr/bin/iasl
-</pre>
-
-Next, find the following statement and uncomment the line:
-
-<pre>
-DEFINE UNIX_IASL_BIN           = $(HOME)/programs/iasl
-</pre>
-
-===Build [http://www.tianocore.org/ovmf/ OVMF]===
-
-Once your build environment is set up you might be interested in building the 
[http://www.tianocore.org/ovmf/ OVMF] platform which is included in the main 
edk2 source tree.  Since [http://www.tianocore.org/ovmf/ OVMF] builds a full 
system firmware image this may be of interest to UEFI system firmware 
developers.
+__NOTOC__
+==Common instructions for Unix ==
+
+  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 reference.
+
+New instructions: [[Build-Instructions.md|Build Instructions]]
+
+A significant portion of the steps are common on the various UNIX-like 
platforms.  You should start with the instructions for the operating system 
that most closely matches your platform, and it will direct you here at the 
appropriate time.
+
+Note these instructions are not for current Linux distributions, only 
UNIX-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.
+
+===Get the edk2 source tree using Git ===
+
+<pre>
+bash$ mkdir ~/src
+bash$ cd ~/src
+bash$ git clone https://github.com/tianocore/edk2
+</pre>
+
+====For EDKII project developers:====
+*      Clone the EDK II project repository
+**     git clone https://github.com/tianocore/edk2
+*      Change to the edk2 directory
+*      Build the tools
+**     make -C BaseTools
+*      Run the edksetup.sh script
+**     . edksetup.sh
+When the above steps are done, you can work in the edk2 directory for code 
development.
+
+===Build the EDK II BaseTools===
+
+<pre>
+bash$ make -C edk2/BaseTools
+</pre>
+
+===Build gcc x64 UEFI cross compiler===
+
+In order to build UEFI images for x64, you will need to build a cross-compiler 
build of gcc.  This can take quite a while to complete, possibly several hours 
on older systems.  But, a Python script has been provided to automate this 
build process.
+
+Note: This is only needed if behind a internet firewall!
+<pre>
+bash$ export http_proxy=http://proxy.domain.com:proxy_port
+</pre>
+
+To build gcc for x64, use these commands (this will take quite a while to 
complete):
+
+<pre>
+bash$ cd ~/src/edk2/BaseTools/gcc
+bash$ ./mingw-gcc-build.py --arch=x64 \
+  --prefix=~/programs/gcc/x64
+</pre>
+
+===Setup build shell environment===
+
+<pre>
+bash$ cd ~/src/edk2
+bash$ export EDK_TOOLS_PATH=~/src/edk2/BaseTools
+bash$ . edksetup.sh BaseTools
+</pre>
+
+===Modify Conf Files===
+
+You will need to edit the Conf/tools_def.txt and Conf/target.txt files.  These 
changes will enable the MdeModulePkg to be built using the gcc x64 compiler.
+
+====Enable GCC X64 Cross-Compiler====
+
+For the Conf/tools_def.txt file, find the following entry and comment the line 
out:
+
+<pre>
+DEFINE UNIXGCC_X64_PETOOLS_PREFIX  = 
/opt/tiano/x86_64-pc-mingw64/x86_64-pc-mingw64/bin/
+</pre>
+
+Next, find the following entry and uncomment the line:
+
+<pre>
+DEFINE UNIXGCC_X64_PETOOLS_PREFIX  = 
ENV(HOME)/programs/gcc/x64/bin/x86_64-pc-mingw32-
+</pre>
+
+====Set Build Target Information====
+
+For the Conf/target.txt file, find the following lines:
+
+<pre>
+ACTIVE_PLATFORM       = Nt32Pkg/Nt32Pkg.dsc
+TARGET_ARCH           = IA32
+TOOL_CHAIN_TAG        = MYTOOLS
+</pre>
+
+And change the cooresponding lines to match these:
+
+<pre>
+ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
+TARGET_ARCH           = X64
+TOOL_CHAIN_TAG        = UNIXGCC
+</pre>
+
+===Build Hello World!  (and the rest of MdeModulePkg)===
+
+Now you should be able to simply run the build command to compile the 
MdeModulePkg.
+
+<pre>
+bash$ build
+</pre>
+
+As a tangible result of the build, you should have the HelloWorld UEFI X64 
application.  If you have a X64 UEFI system available to you, then this 
application should be able to run successfully under the shell.
+
+<pre>
+bash$ ls Build/MdeModule/DEBUG_UNIXGCC/X64/HelloWorld.efi
+</pre>
+
+==Enabling Other Tools==
+
+The above showed how to setup an X64 build environment for building the core 
MdeModulePkg.  However, other packages may require additional tools such as an 
IA32 cross-compiler and an ASL compiler.  The steps to build these tools are 
described in this section.
+
+===Build gcc IA32 UEFI cross compiler===
+
+In order to build UEFI images for IA32, you will need to build a 
cross-compiler build of gcc.  This can take quite a while to complete, possibly 
several hours on older systems.  But, a Python script has been provided to 
automate this build process.
+
+Note: This is only needed if behind a internet firewall!
+<pre>
+bash$ export http_proxy=http://proxy.domain.com:proxy_port
+</pre>
+
+To build gcc for IA32, use these commands (this will take quite a while to 
complete):
+
+<pre>
+bash$ cd ~/src/edk2/BaseTools/gcc
+bash$ ./mingw-gcc-build.py --arch=ia32 \
+  --prefix=~/programs/gcc/ia32
+</pre>
+
+====Modify Conf Files====
+
+Once the cross-compiler has been successfully built the Conf/tools_def.txt 
will need to be updated so the cross-compiler can be used.
+
+Find the following statement in Conf/tools_def.txt and comment the line out:
+
+<pre>
+DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = 
/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/
+</pre>
+
+Next, find the following statement and uncomment the line:
+
+<pre>
+DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = 
ENV(HOME)/programs/gcc/ia32/bin/i686-pc-mingw32-
+</pre>
+
+To enable building your target image with IA32 support the Conf/target.txt 
will also need to be modified.
+
+Find the TARGET_ARCH definition in Conf/target.txt and change the 
corresponding line to match this
+
+<pre>
+TARGET_ARCH           = IA32
+</pre>
+
+===Build the Intel ASL (iasl) compiler===
+
+The Intel ASL compiler is not required for all edk2 developers.  It is 
unlikely that UEFI Application or UEFI Driver builds will need an ASL compiler. 
 But, if you are building an entire system firmware image, then you may need an 
ASL compiler.  For example, the edk2 OVMF sample platform does require an ASL 
compiler in order to be built.
+
+First, download the latest ACPI-CA release from http://www.acpica.org.
+
+'''OS X users''': At this time, the latest versions of ACPI-CA are not 
building on Mac OS X, so please use the release from 20081031 instead.
+
+<pre>
+bash$ cd ~/src
+bash$ wget http://www.acpica.org/download/acpica-unix-20090521.tar.gz
+bash$ tar -zxf acpica-unix-20090521.tar.gz
+bash$ make -C acpica-unix-20090521/compiler
+bash$ ln -s ~/src/acpica-unix-20090521/compiler/iasl ~/programs/iasl
+</pre>
+
+====Modify Conf Files====
+
+Once the Intel ASL compiler has been successfully built the Conf/tools_def.txt 
will need to be updated so the ASL compiler can be used.
+
+Find the following statement in Conf/tools_def.txt and comment the line out:
+
+<pre>
+DEFINE UNIX_IASL_BIN           = /usr/bin/iasl
+</pre>
+
+Next, find the following statement and uncomment the line:
+
+<pre>
+DEFINE UNIX_IASL_BIN           = $(HOME)/programs/iasl
+</pre>
+
+===Build [http://www.tianocore.org/ovmf/ OVMF]===
+
+Once your build environment is set up you might be interested in building the 
[http://www.tianocore.org/ovmf/ OVMF] platform which is included in the main 
edk2 source tree.  Since [http://www.tianocore.org/ovmf/ OVMF] builds a full 
system firmware image this may be of interest to UEFI system firmware 
developers.
diff --git a/Common-instructions.mediawiki b/Common-instructions.mediawiki
index 6e752e5699db..956813cda163 100644
--- a/Common-instructions.mediawiki
+++ b/Common-instructions.mediawiki
@@ -1,103 +1,108 @@
-__NOTOC__
-=Common EDK II Build Instructions for Linux=
-
-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#Ubuntu_1604_LTS__Ubuntu_1610|Ubuntu
 16.04/16.10]). The following instructions are common to the majority of Linux 
environments.
-
-===Get the edk2 source tree using Git ===
-
-<pre>
-bash$ mkdir ~/src
-bash$ cd ~/src
-bash$ git clone https://github.com/tianocore/edk2
-</pre>
-
-Note: the 'git clone' command above pulls the latest code from edk2. If you 
want to work from a stable release, specify a release tag when cloning. Example:
-
-<pre>
-bash$ git clone https://github.com/tianocore/edk2.git vUDK2017
-</pre>
-
-===Initialize submodules===
-
-<pre>
-bash$ git submodule update --init
-</pre>
-
-===Compile build tools ===
-
-<pre>
-bash$ cd ~/src/edk2
-bash$ make -C BaseTools
-bash$ . edksetup.sh
-</pre>
-
-When the above steps are done, you can work in the edk2 directory for code 
development.
-
-===Build the EDK II BaseTools===
-
-<pre>
-bash$ make -C edk2/BaseTools
-</pre>
-
-===Setup build shell environment===
-
-<pre>
-bash$ cd ~/src/edk2
-bash$ export EDK_TOOLS_PATH=$HOME/src/edk2/BaseTools
-bash$ . edksetup.sh BaseTools
-</pre>
-
-===Modify Conf Files===
-
-Running <code>edksetup.sh</code> populates the <code>edk2/Conf</code> 
directory with default configuration files. You will need to edit the 
<code>Conf/target.txt</code> file to set the build platform, target 
architecture, tool chain, and multi-threading options. The example below is 
based on building the <code>MdeModulePkg</code> using GCC5.
-
-====Set Build Target Information====
-
-For the <code>Conf/target.txt</code> file, find the following lines:
-
-<pre>
-ACTIVE_PLATFORM       = Nt32Pkg/Nt32Pkg.dsc
-TOOL_CHAIN_TAG        = MYTOOLS
-</pre>
-
-And change the corresponding lines to match these:
-
-<pre>
-ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
-TOOL_CHAIN_TAG        = GCC5
-</pre>
-
-:Note: The <code>gcc --version</code> command can be used to find out your GCC 
version.  Use the '''GCC45''' toolchain for gcc 4.5.* and the '''GCC46''' 
toolchain for gcc 4.6.*.
-
-:Note: for GCC5 please install the gcc-5 package. Example for Ubuntu: 
<code>sudo apt-get install gcc-5</code>
-
-Locate the TARGET_ARCH setting:
-
-<pre>
-TARGET_ARCH           = IA32
-</pre>
-
-Change this reflect the build architecture for the final UEFI binary.
-
-:Example: <code>X64</code>, <code>IA32 X64</code> (which will build both 
architectures).
-
-Optional: enable multi-threaded build. The default value for 
<code>MAX_CONCURRENT_THREAD_NUMBER</code> is 1, which disables multi-threaded 
build. Change this value based on your system's multi-threading capabilities. 
The formula is '1 + (2 x processor threads)'.
-
-:Example: for an Intel Core i5 (two processor cores w/ hyperthreading), the 
value is <code>9</code>.
-
-===Build Hello World!  (and the rest of MdeModulePkg)===
-
-Now you should be able to simply run the build command to compile 
<code>MdeModulePkg</code>.
-
-<pre>
-bash$ build
-</pre>
-
-One result of the build is that you should have the HelloWorld UEFI 
application:
-<pre>
-bash$ ls Build/MdeModule/DEBUG_*/*/HelloWorld.efi
-</pre>
-
-===Build [[OVMF]]===
-
-Once your build environment is set up you might be interested in [[How to 
build OVMF|building the OVMF platform]] which is included in the main [[EDK 
II]] source tree.  Since [[OVMF]] builds a full system firmware image, this may 
be of interest to UEFI system firmware developers.
+__NOTOC__
+=Common EDK II Build Instructions for Linux=
+
+  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 reference.
+
+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#Ubuntu_1604_LTS__Ubuntu_1610|Ubuntu
 16.04/16.10]). The following instructions are common to the majority of Linux 
environments.
+
+===Get the edk2 source tree using Git ===
+
+<pre>
+bash$ mkdir ~/src
+bash$ cd ~/src
+bash$ git clone https://github.com/tianocore/edk2
+</pre>
+
+Note: the 'git clone' command above pulls the latest code from edk2. If you 
want to work from a stable release, specify a release tag when cloning. Example:
+
+<pre>
+bash$ git clone https://github.com/tianocore/edk2.git vUDK2017
+</pre>
+
+===Initialize submodules===
+
+<pre>
+bash$ git submodule update --init
+</pre>
+
+===Compile build tools ===
+
+<pre>
+bash$ cd ~/src/edk2
+bash$ make -C BaseTools
+bash$ . edksetup.sh
+</pre>
+
+When the above steps are done, you can work in the edk2 directory for code 
development.
+
+===Build the EDK II BaseTools===
+
+<pre>
+bash$ make -C edk2/BaseTools
+</pre>
+
+===Setup build shell environment===
+
+<pre>
+bash$ cd ~/src/edk2
+bash$ export EDK_TOOLS_PATH=$HOME/src/edk2/BaseTools
+bash$ . edksetup.sh BaseTools
+</pre>
+
+===Modify Conf Files===
+
+Running <code>edksetup.sh</code> populates the <code>edk2/Conf</code> 
directory with default configuration files. You will need to edit the 
<code>Conf/target.txt</code> file to set the build platform, target 
architecture, tool chain, and multi-threading options. The example below is 
based on building the <code>MdeModulePkg</code> using GCC5.
+
+====Set Build Target Information====
+
+For the <code>Conf/target.txt</code> file, find the following lines:
+
+<pre>
+ACTIVE_PLATFORM       = Nt32Pkg/Nt32Pkg.dsc
+TOOL_CHAIN_TAG        = MYTOOLS
+</pre>
+
+And change the corresponding lines to match these:
+
+<pre>
+ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
+TOOL_CHAIN_TAG        = GCC5
+</pre>
+
+:Note: The <code>gcc --version</code> command can be used to find out your GCC 
version.  Use the '''GCC45''' toolchain for gcc 4.5.* and the '''GCC46''' 
toolchain for gcc 4.6.*.
+
+:Note: for GCC5 please install the gcc-5 package. Example for Ubuntu: 
<code>sudo apt-get install gcc-5</code>
+
+Locate the TARGET_ARCH setting:
+
+<pre>
+TARGET_ARCH           = IA32
+</pre>
+
+Change this reflect the build architecture for the final UEFI binary.
+
+:Example: <code>X64</code>, <code>IA32 X64</code> (which will build both 
architectures).
+
+Optional: enable multi-threaded build. The default value for 
<code>MAX_CONCURRENT_THREAD_NUMBER</code> is 1, which disables multi-threaded 
build. Change this value based on your system's multi-threading capabilities. 
The formula is '1 + (2 x processor threads)'.
+
+:Example: for an Intel Core i5 (two processor cores w/ hyperthreading), the 
value is <code>9</code>.
+
+===Build Hello World!  (and the rest of MdeModulePkg)===
+
+Now you should be able to simply run the build command to compile 
<code>MdeModulePkg</code>.
+
+<pre>
+bash$ build
+</pre>
+
+One result of the build is that you should have the HelloWorld UEFI 
application:
+<pre>
+bash$ ls Build/MdeModule/DEBUG_*/*/HelloWorld.efi
+</pre>
+
+===Build [[OVMF]]===
+
+Once your build environment is set up you might be interested in [[How to 
build OVMF|building the OVMF platform]] which is included in the main [[EDK 
II]] source tree.  Since [[OVMF]] builds a full system firmware image, this may 
be of interest to UEFI system firmware developers.
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 reference.
+
+New instructions: [[Build-Instructions.md|Build Instructions]]
+
 =Downloading and Compiling Code=
 
 This page shows the steps for downloading [[EDK II]] from GitHub and compiling 
projects under various OS/compiler environments.
@@ -15,24 +21,24 @@ Several build environments are supported and documented.  
If instructions are no
 '''Note:''' Some other build tools may be required depending on the project or 
package:
 * [[Nasm Setup|Nasm]]
 * [[ASL Setup|ASL Compiler]]
-* Install Python 3.7 or later (https://www.python.org/)  to run python tool 
from source 
+* Install Python 3.7 or later (https://www.python.org/)  to run python tool 
from source
 **  Python 2.7.10 or later can still be used with PYTHON_HOME
 
-'''Note:''' Some of the examples use the [[Multiple_Workspace]] 
`PACKAGES_PATH` feature to the configure EDK II build environment. For example, 
this is required for using platform code based on edk2-platforms: 
(https://github.com/tianocore/edk2-platforms). 
+'''Note:''' Some of the examples use the [[Multiple_Workspace]] 
`PACKAGES_PATH` feature to the configure EDK II build environment. For example, 
this is required for using platform code based on edk2-platforms: 
(https://github.com/tianocore/edk2-platforms).
 
 Once you have a basic build environment running, you can build a project in 
RELEASE or [[EDK II Debugging|DEBUG]] mode.
 
 ==GitHub Help==
 
-GitHub (https://help.github.com/index.html) provides step-by-step instructions 
for user registration and basic features supported by GitHub 
+GitHub (https://help.github.com/index.html) provides step-by-step instructions 
for user registration and basic features supported by GitHub
 
 * Setup GitHub for Linux/Windows/MAC 
(https://help.github.com/articles/set-up-git)
 * Download and install a git GUI interface: git GUI Clients 
(https://git-scm.com/download/gui/win) | TortoiseGit (https://tortoisegit.org/)
 
 ===GitHub EDK II Project Repositories===
 
-* The EDK II project repository is available at 
https://github.com/tianocore/edk2. 
-* Prebuilt Windows tools are available at 
https://github.com/tianocore/edk2-BaseTools-win32. 
+* The EDK II project repository is available at 
https://github.com/tianocore/edk2.
+* Prebuilt Windows tools are available at 
https://github.com/tianocore/edk2-BaseTools-win32.
 * [[EDK II Platforms]] are available at 
https://github.com/tianocore/edk2-platforms.
 * Content that is not released under an accepted open source license can be 
found at https://github.com/tianocore/edk2-non-osi.
 
diff --git a/UDK2017-How-to-Build.md b/UDK2017-How-to-Build.md
index 4eca47f98e21..2f7f80125513 100644
--- a/UDK2017-How-to-Build.md
+++ b/UDK2017-How-to-Build.md
@@ -1,123 +1,129 @@
-# How to Build [[UDK2017]] 
-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)
-
-##                          HOW TO BUILD (WINDOWS SYSTEM)
-
-The steps below are verified on Microsoft Windows 10 Enterprise*:
-
-1.  Setup Build Environment
-    1)  Install Microsoft Visual Studio 2015* in the build machine and make
-        sure that AMD64 complier was selected when installing.
-    2)  Download NASM 2.0.7 or later from http://www.nasm.us/ and install it to
-        C:\Nasm. Make sure C:\Nasm is added to system environment variable 
'PATH'
-    3)  Set up for using GitHub for Windows. See:
-    
https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II#github-help
-    4)  Download and install Python2.7.x  https://www.python.org/ for building 
the BaseTools
-        Default install directory is: C:/Python27
-
-2.  Create the full Source Code directory for the UDK2017 release
-    1)  Create a working space directory in the build machine, for example, 
C:\MyWorkspace
-    2)  Download the official UDK2017 release .zip file from the [UDK2017 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2017)
-        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (zip 
file)](https://github.com/tianocore/edk2/archive/vUDK2017.zip) 
-        2) Extract files in [edk2-vUDK2017] to the working space directory 
C:\MyWorkspace.
-    3) **OR**  Checkout the vUDK2017 Tag from GitHub with the following "git" 
command <br>
-        1) run  `git clone  https://github.com/tianocore/edk2.git vUDK2017`
-        2)  Move all files and folders under "vUDK2017" to "C:\MyWorkspace"
-    4)  **Optional** (See _Compile the BaseTools_ below) Checkout BaseTools 
binaries and copy them to BaseTools binary folder.  Warning the Windows* Binary 
tools are only valid for the tip of the  https://github.com/tianocore/edk2 
repository.
-         1)  `Cd C:\MyWorkspace`
-         2)  Run `git clone 
https://github.com/tianocore/edk2-BaseTools-win32.git`
-         3)  Enter folder edk2-BaseTools-win32
-         4)  Run the command `git checkout 
0e088c19ab31fccd1d2f55d9e4fe0314b57c0097`
-         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 workspace. 
-           (e.g. "C:\MyWorkspace\BaseTools\Bin\")        
-3.  Generate OpenSSL* Crypto Library
-    1)  Open file 
"C:\MyWorkspace\CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt"
-        and follow the instruction to install OpenSSL* for UEFI building.
-        For this release, please use OpenSSL-1.1.0e.
-
-4.  Compile the BaseTools (Skip if Optional Step 2.iv was done above) See: 
-     
https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems#compile-tools
-    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
-        to enter the  workspace directory
-    2)  Compile the BaseTools C source tools  
-<pre>
-       set PYTHON_HOME=C:\Python27
-        set EDK_TOOLS_PATH=%CD%\BaseTools
-        BaseTools\toolssetup.bat Rebuild
-</pre>
-
-5.  Build Steps
-    *** NT32 ***
-
-    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
-        to enter the workspace directory
-    2)  Use edksetup.bat command to initialize the working environment.
-       `edksetup --nt32`
-    3)  Type following command to build Nt32 platform
-        `build -t VS2015x86`
-    4)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
C:\MyWorkspace\Build\MdeModule\DEBUG_VS2015x86\IA32 directory
-
-
----
-
-##                         HOW TO BUILD (LINUX-LIKE SYSTEM)
-The below steps are verified on Ubuntu 16.04 LTS Desktop*:
-
-1.  Setup Build Environment
-    1)  Follow instructions for setting up the build environment on 
tianocore.org.
-        
"https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC";
-       2) Please notice that here the root is `"~/src/MyWorkspace"` instead
-           of `"~/src/edk2"`
-       3) Make sure BaseTools is built and required software like iASL compiler
-           are installed. Some operations need switch to user "root" to 
execute.
-         At Ubuntu, you can type `"sudo apt-get install git"` under terminal 
prompt "Cnt-Alt-T" to
-           install git.
-    2)  Install NASM 2.0.7 or later.
-        At Ubuntu, you can type `"sudo apt-get install nasm"` under terminal 
prompt to
-        install it.
-        You can also download the source package from http://www.nasm.us/ and
-        install it following the instruction on the website.
-    3)  Install IASL 20150818 or later.
-        At Ubuntu, you can type `"sudo apt-get install iasl"` under terminal 
prompt to
-        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 compiler 
(v5.4.0) 
-        At Ubuntu, you can type `"sudo apt-get install gcc-5"` under terminal 
prompt to install it.
-
-
-2.  Create the full Source Code directory for the UDK2017 release
-    1)  Create a working space directory in the build machine, for example, 
~/src/MyWorkspace
-    2)  Download the official UDK2017 release .tar file from the [UDK2017 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2017)
-        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (tar.gz 
file)](https://github.com/tianocore/edk2/archive/vUDK2017.tar.gz) 
-        2) Extract files in [edk2-vUDK2017] to the working space directory 
~/src/MyWorkspace.
-    3) **OR**  Checkout the vUDK2017 tag from GitHub with the following "git" 
command 
-        1)  Run `"git clone https://github.com/tianocore/edk2.git vUDK2017"`
-        2)  Move all files and folders under "vUDK2017" to "~/src/MyWorkspace"
-        
-3.  Generate OpenSSL* Crypto Library
-    1)  Open file 
"~/src/MyWorkspace/CryptoPkg/Library/OpensslLib/OpenSSL-HOWTO.txt"
-        and follow the instruction to install OpenSSL* for UEFI building.
-        For this release, please use OpenSSL-1.1.0e.
-
-4.  Build Steps
-    *** MdeModulePkg ***
-    1)  Open a terminal and type `"cd ~/src/MyWorkspace"` to enter the 
workspace
-        directory.
-    2)  First build the BaseTools by typing 
-        `"make -C BaseTools"`
-    3)  Initialize the build environment by typing 
-        `". edksetup.sh"`.
-    4)  Type following command to build platforms using GCC v5.4.0 <BR>
-        `"build  -p MdeModulePkg/MdeModulePkg.dsc -t GCC5"`
-    5)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
~/src/MyWorkspace/Build/MdeModule/DEBUG_GCC5/IA32 directory
-***
-
-If you have questions please email the [[edk2-devel]] mail list.
-
-See also [[Getting Started with EDK II]]
-
+# 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)
+
+##                          HOW TO BUILD (WINDOWS SYSTEM)
+
+The steps below are verified on Microsoft Windows 10 Enterprise*:
+
+1.  Setup Build Environment
+    1)  Install Microsoft Visual Studio 2015* in the build machine and make
+        sure that AMD64 complier was selected when installing.
+    2)  Download NASM 2.0.7 or later from http://www.nasm.us/ and install it to
+        C:\Nasm. Make sure C:\Nasm is added to system environment variable 
'PATH'
+    3)  Set up for using GitHub for Windows. See:
+    
https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II#github-help
+    4)  Download and install Python2.7.x  https://www.python.org/ for building 
the BaseTools
+        Default install directory is: C:/Python27
+
+2.  Create the full Source Code directory for the UDK2017 release
+    1)  Create a working space directory in the build machine, for example, 
C:\MyWorkspace
+    2)  Download the official UDK2017 release .zip file from the [UDK2017 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2017)
+        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (zip 
file)](https://github.com/tianocore/edk2/archive/vUDK2017.zip)
+        2) Extract files in [edk2-vUDK2017] to the working space directory 
C:\MyWorkspace.
+    3) **OR**  Checkout the vUDK2017 Tag from GitHub with the following "git" 
command <br>
+        1) run  `git clone  https://github.com/tianocore/edk2.git vUDK2017`
+        2)  Move all files and folders under "vUDK2017" to "C:\MyWorkspace"
+    4)  **Optional** (See _Compile the BaseTools_ below) Checkout BaseTools 
binaries and copy them to BaseTools binary folder.  Warning the Windows* Binary 
tools are only valid for the tip of the  https://github.com/tianocore/edk2 
repository.
+         1)  `Cd C:\MyWorkspace`
+         2)  Run `git clone 
https://github.com/tianocore/edk2-BaseTools-win32.git`
+         3)  Enter folder edk2-BaseTools-win32
+         4)  Run the command `git checkout 
0e088c19ab31fccd1d2f55d9e4fe0314b57c0097`
+         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 workspace.
+           (e.g. "C:\MyWorkspace\BaseTools\Bin\")
+3.  Generate OpenSSL* Crypto Library
+    1)  Open file 
"C:\MyWorkspace\CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt"
+        and follow the instruction to install OpenSSL* for UEFI building.
+        For this release, please use OpenSSL-1.1.0e.
+
+4.  Compile the BaseTools (Skip if Optional Step 2.iv was done above) See:
+     
https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems#compile-tools
+    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
+        to enter the  workspace directory
+    2)  Compile the BaseTools C source tools
+<pre>
+       set PYTHON_HOME=C:\Python27
+        set EDK_TOOLS_PATH=%CD%\BaseTools
+        BaseTools\toolssetup.bat Rebuild
+</pre>
+
+5.  Build Steps
+    *** NT32 ***
+
+    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
+        to enter the workspace directory
+    2)  Use edksetup.bat command to initialize the working environment.
+       `edksetup --nt32`
+    3)  Type following command to build Nt32 platform
+        `build -t VS2015x86`
+    4)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
C:\MyWorkspace\Build\MdeModule\DEBUG_VS2015x86\IA32 directory
+
+
+---
+
+##                         HOW TO BUILD (LINUX-LIKE SYSTEM)
+The below steps are verified on Ubuntu 16.04 LTS Desktop*:
+
+1.  Setup Build Environment
+    1)  Follow instructions for setting up the build environment on 
tianocore.org.
+        
"https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC";
+       2) Please notice that here the root is `"~/src/MyWorkspace"` instead
+           of `"~/src/edk2"`
+       3) Make sure BaseTools is built and required software like iASL compiler
+           are installed. Some operations need switch to user "root" to 
execute.
+         At Ubuntu, you can type `"sudo apt-get install git"` under terminal 
prompt "Cnt-Alt-T" to
+           install git.
+    2)  Install NASM 2.0.7 or later.
+        At Ubuntu, you can type `"sudo apt-get install nasm"` under terminal 
prompt to
+        install it.
+        You can also download the source package from http://www.nasm.us/ and
+        install it following the instruction on the website.
+    3)  Install IASL 20150818 or later.
+        At Ubuntu, you can type `"sudo apt-get install iasl"` under terminal 
prompt to
+        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 compiler 
(v5.4.0)
+        At Ubuntu, you can type `"sudo apt-get install gcc-5"` under terminal 
prompt to install it.
+
+
+2.  Create the full Source Code directory for the UDK2017 release
+    1)  Create a working space directory in the build machine, for example, 
~/src/MyWorkspace
+    2)  Download the official UDK2017 release .tar file from the [UDK2017 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2017)
+        1) Download - UDK2017 edk-vUDK2017 Workspace [Source code (tar.gz 
file)](https://github.com/tianocore/edk2/archive/vUDK2017.tar.gz)
+        2) Extract files in [edk2-vUDK2017] to the working space directory 
~/src/MyWorkspace.
+    3) **OR**  Checkout the vUDK2017 tag from GitHub with the following "git" 
command
+        1)  Run `"git clone https://github.com/tianocore/edk2.git vUDK2017"`
+        2)  Move all files and folders under "vUDK2017" to "~/src/MyWorkspace"
+
+3.  Generate OpenSSL* Crypto Library
+    1)  Open file 
"~/src/MyWorkspace/CryptoPkg/Library/OpensslLib/OpenSSL-HOWTO.txt"
+        and follow the instruction to install OpenSSL* for UEFI building.
+        For this release, please use OpenSSL-1.1.0e.
+
+4.  Build Steps
+    *** MdeModulePkg ***
+    1)  Open a terminal and type `"cd ~/src/MyWorkspace"` to enter the 
workspace
+        directory.
+    2)  First build the BaseTools by typing
+        `"make -C BaseTools"`
+    3)  Initialize the build environment by typing
+        `". edksetup.sh"`.
+    4)  Type following command to build platforms using GCC v5.4.0 <BR>
+        `"build  -p MdeModulePkg/MdeModulePkg.dsc -t GCC5"`
+    5)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
~/src/MyWorkspace/Build/MdeModule/DEBUG_GCC5/IA32 directory
+***
+
+If you have questions please email the [[edk2-devel]] mail list.
+
+See also [[Getting Started with EDK II]]
+
diff --git a/UDK2018-How-to-Build.md b/UDK2018-How-to-Build.md
index b981b2162cc4..06a963a8e1e2 100644
--- a/UDK2018-How-to-Build.md
+++ b/UDK2018-How-to-Build.md
@@ -1,128 +1,134 @@
-# How to Build [[UDK2018]] 
-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)
-
-##                          HOW TO BUILD (WINDOWS SYSTEM)
-
-The steps below are verified on Microsoft Windows 10 Enterprise*:
-
-1.  Setup Build Environment
-    1)  Install Microsoft Visual Studio 2015* in the build machine and make
-        sure that AMD64 complier was selected when installing.
-    2)  Download NASM 2.12.01 or later from http://www.nasm.us/ and install it 
to
-        C:\Nasm. Make sure C:\Nasm is added to system environment variable 
'PATH'
-    3)  Set up for using GitHub for Windows. See:
-    
https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II#github-help
-    4)  Download and install Python2.7.x  https://www.python.org/ for building 
the BaseTools
-        Default install directory is: C:/Python27
-    5)  Download the pre-compiled Openssl binary from 
https://wiki.openssl.org/index.php/Binaries.  Search for a
-        Windows binary in the list of "_Third Party OpenSSL Related Binary 
Distributions_" table that will be 
-        Windows binary. Go to the third party site to download the latest 
version of Windows x64 86 or Win32 binary.
-        Download and extract to C:\Openssl. Make sure C:\Openssl is added to 
system environment 
-        variable 'PATH'. 
-
-2.  Create the full Source Code directory for the UDK2018 release
-    1)  Create a working space directory in the build machine, for example, 
C:\MyWorkspace
-    2)  Download the official UDK2018 release .zip file from the [UDK2018 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2018)
-        1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (zip 
file)](https://github.com/tianocore/edk2/archive/vUDK2018.zip) 
-        2) Extract files in [edk2-vUDK2018] to the working space directory 
C:\MyWorkspace.
-    3) **OR**  Checkout the vUDK2018 Tag from GitHub with the following "git" 
command <br>
-        1)  run  `git clone  https://github.com/tianocore/edk2.git vUDK2018`
-        2)  Go to the vUDK2018 directory, and from there run: `git checkout 
tags/vUDK2018 -b vUDK2018`
-        3)  Move all files and folders under "vUDK2018" to "C:\MyWorkspace"
-
-3.  Generate OpenSSL* Crypto Library
-    1)  Open file 
"C:\MyWorkspace\CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt"
-        and follow the instruction to install OpenSSL* for UEFI building.
-        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
-
-4.  Compile the BaseTools See: 
-     
https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems#compile-tools
-    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
-        to enter the  workspace directory
-    2)  Compile the BaseTools C source tools  
-<pre>
-       set PYTHON_HOME=C:\Python27
-        edksetup.bat Rebuild
-</pre>
-
-5.  Build Steps
-    *** NT32 ***
-
-    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
-        to enter the workspace directory
-    2)  Use edksetup.bat command to initialize the working environment.
-       `edksetup --nt32`
-    3)  Type following command to build Nt32 platform
-        `build -t VS2015x86`
-    4)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
C:\MyWorkspace\Build\NT32IA32\DEBUG_VS2015x86\IA32 directory
-
-
----
-
-##                         HOW TO BUILD (LINUX-LIKE SYSTEM)
-The below steps are verified on Ubuntu 16.04 LTS Desktop*:
-
-1.  Setup Build Environment
-    1)  Follow instructions for setting up the build environment on 
tianocore.org.
-        
"https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC";
-
-        2) Please notice that here the root is `"~/src/MyWorkspace`" instead
-           of `"~/src/edk2"`
-
-        3) Make sure BaseTools is built and required software like iASL 
compiler
-           is installed well.
-            a) Some operations need switch to user "root" to execute.
-            b) At Ubuntu, you can type `"sudo apt-get install git"` under 
terminal "Cnt-Alt-T" to
-           install git.
-    2)  Install NASM 2.12.01 or later.
-        At Ubuntu, you can type "sudo apt-get install nasm" under terminal to
-        install it.
-        You can also download the source package from http://www.nasm.us/ and
-        install it following the instruction on the website.
-    3)  Install IASL 20150818 or later.
-        At Ubuntu, you can type `"sudo apt-get install iasl"` under terminal to
-        install it.
-        You can also download the source package from 
https://acpica.org/downloads
-        and install it following the instruction on the website.
-
-2.  Create the full Source Code directory for the UDK2018 release
-    1)  Create a working space directory in the build machine, for example, 
~/src/MyWorkspace
-    2)  Download the official UDK2018 release .tar file from the [UDK2018 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2018)
-        1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (tar.gz 
file)](https://github.com/tianocore/edk2/archive/vUDK2018.tar.gz) 
-        2) Extract files in [edk2-vUDK2018] to the working space directory 
~/src/MyWorkspace.
-    3) **OR**  Checkout the vUDK2018 tag from GitHub with the following "git" 
command 
-        1)  Run `"git clone https://github.com/tianocore/edk2.git vUDK2018"`
-        2)  Go to the vUDK2018 directory, and from there run: `git checkout 
tags/vUDK2018 -b vUDK2018`
-        3)  Move all files and folders under "vUDK2018" to "~/src/MyWorkspace"
-        
-3.  Generate OpenSSL* Crypto Library
-    1)  Open file 
"~/src/MyWorkspace/CryptoPkg/Library/OpensslLib/OpenSSL-HOWTO.txt"
-        and follow the instruction to install OpenSSL* for UEFI building.
-        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 ~/src/MyWorkspace/CryptoPkg/Library/OpensslLib,
-        and rename its directory name to openssl
-
-
-4.  Build Steps
-    *** MdeModulePkg ***
-    1)  Open a terminal and type `"cd ~/src/MyWorkspace"` to enter the 
workspace
-        directory.
-    2)  First build the BaseTools by typing 
-        `"make -C BaseTools"`
-    3)  Initialize the build environment by typing 
-        `". edksetup.sh"`.
-    4)  Type following command to build platforms using GCC v5.4.0 <BR>
-        `"build  -p MdeModulePkg/MdeModulePkg.dsc -t GCC5"`
-    5)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
~/src/MyWorkspace/Build/MdeModule/DEBUG_GCC5/IA32 directory
-***
-
-If you have questions please email the [[edk2-devel]] mail list.
-
-See also [[Getting Started with EDK II]]
-
+# 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)
+
+##                          HOW TO BUILD (WINDOWS SYSTEM)
+
+The steps below are verified on Microsoft Windows 10 Enterprise*:
+
+1.  Setup Build Environment
+    1)  Install Microsoft Visual Studio 2015* in the build machine and make
+        sure that AMD64 complier was selected when installing.
+    2)  Download NASM 2.12.01 or later from http://www.nasm.us/ and install it 
to
+        C:\Nasm. Make sure C:\Nasm is added to system environment variable 
'PATH'
+    3)  Set up for using GitHub for Windows. See:
+    
https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II#github-help
+    4)  Download and install Python2.7.x  https://www.python.org/ for building 
the BaseTools
+        Default install directory is: C:/Python27
+    5)  Download the pre-compiled Openssl binary from 
https://wiki.openssl.org/index.php/Binaries.  Search for a
+        Windows binary in the list of "_Third Party OpenSSL Related Binary 
Distributions_" table that will be
+        Windows binary. Go to the third party site to download the latest 
version of Windows x64 86 or Win32 binary.
+        Download and extract to C:\Openssl. Make sure C:\Openssl is added to 
system environment
+        variable 'PATH'.
+
+2.  Create the full Source Code directory for the UDK2018 release
+    1)  Create a working space directory in the build machine, for example, 
C:\MyWorkspace
+    2)  Download the official UDK2018 release .zip file from the [UDK2018 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2018)
+        1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (zip 
file)](https://github.com/tianocore/edk2/archive/vUDK2018.zip)
+        2) Extract files in [edk2-vUDK2018] to the working space directory 
C:\MyWorkspace.
+    3) **OR**  Checkout the vUDK2018 Tag from GitHub with the following "git" 
command <br>
+        1)  run  `git clone  https://github.com/tianocore/edk2.git vUDK2018`
+        2)  Go to the vUDK2018 directory, and from there run: `git checkout 
tags/vUDK2018 -b vUDK2018`
+        3)  Move all files and folders under "vUDK2018" to "C:\MyWorkspace"
+
+3.  Generate OpenSSL* Crypto Library
+    1)  Open file 
"C:\MyWorkspace\CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt"
+        and follow the instruction to install OpenSSL* for UEFI building.
+        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
+
+4.  Compile the BaseTools See:
+     
https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems#compile-tools
+    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
+        to enter the  workspace directory
+    2)  Compile the BaseTools C source tools
+<pre>
+       set PYTHON_HOME=C:\Python27
+        edksetup.bat Rebuild
+</pre>
+
+5.  Build Steps
+    *** NT32 ***
+
+    1)  Open a Microsoft Visual Studio* command prompt, type `cd 
C:\MyWorkspace`
+        to enter the workspace directory
+    2)  Use edksetup.bat command to initialize the working environment.
+       `edksetup --nt32`
+    3)  Type following command to build Nt32 platform
+        `build -t VS2015x86`
+    4)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
C:\MyWorkspace\Build\NT32IA32\DEBUG_VS2015x86\IA32 directory
+
+
+---
+
+##                         HOW TO BUILD (LINUX-LIKE SYSTEM)
+The below steps are verified on Ubuntu 16.04 LTS Desktop*:
+
+1.  Setup Build Environment
+    1)  Follow instructions for setting up the build environment on 
tianocore.org.
+        
"https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC";
+
+        2) Please notice that here the root is `"~/src/MyWorkspace`" instead
+           of `"~/src/edk2"`
+
+        3) Make sure BaseTools is built and required software like iASL 
compiler
+           is installed well.
+            a) Some operations need switch to user "root" to execute.
+            b) At Ubuntu, you can type `"sudo apt-get install git"` under 
terminal "Cnt-Alt-T" to
+           install git.
+    2)  Install NASM 2.12.01 or later.
+        At Ubuntu, you can type "sudo apt-get install nasm" under terminal to
+        install it.
+        You can also download the source package from http://www.nasm.us/ and
+        install it following the instruction on the website.
+    3)  Install IASL 20150818 or later.
+        At Ubuntu, you can type `"sudo apt-get install iasl"` under terminal to
+        install it.
+        You can also download the source package from 
https://acpica.org/downloads
+        and install it following the instruction on the website.
+
+2.  Create the full Source Code directory for the UDK2018 release
+    1)  Create a working space directory in the build machine, for example, 
~/src/MyWorkspace
+    2)  Download the official UDK2018 release .tar file from the [UDK2018 
Release Page](https://github.com/tianocore/edk2/releases/tag/vUDK2018)
+        1) Download - UDK2018 edk-vUDK2018 Workspace [Source code (tar.gz 
file)](https://github.com/tianocore/edk2/archive/vUDK2018.tar.gz)
+        2) Extract files in [edk2-vUDK2018] to the working space directory 
~/src/MyWorkspace.
+    3) **OR**  Checkout the vUDK2018 tag from GitHub with the following "git" 
command
+        1)  Run `"git clone https://github.com/tianocore/edk2.git vUDK2018"`
+        2)  Go to the vUDK2018 directory, and from there run: `git checkout 
tags/vUDK2018 -b vUDK2018`
+        3)  Move all files and folders under "vUDK2018" to "~/src/MyWorkspace"
+
+3.  Generate OpenSSL* Crypto Library
+    1)  Open file 
"~/src/MyWorkspace/CryptoPkg/Library/OpensslLib/OpenSSL-HOWTO.txt"
+        and follow the instruction to install OpenSSL* for UEFI building.
+        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 ~/src/MyWorkspace/CryptoPkg/Library/OpensslLib,
+        and rename its directory name to openssl
+
+
+4.  Build Steps
+    *** MdeModulePkg ***
+    1)  Open a terminal and type `"cd ~/src/MyWorkspace"` to enter the 
workspace
+        directory.
+    2)  First build the BaseTools by typing
+        `"make -C BaseTools"`
+    3)  Initialize the build environment by typing
+        `". edksetup.sh"`.
+    4)  Type following command to build platforms using GCC v5.4.0 <BR>
+        `"build  -p MdeModulePkg/MdeModulePkg.dsc -t GCC5"`
+    5)  Upon the build completing successfully there should be the UEFI 
Application "`HelloWorld.efi`"  in the 
~/src/MyWorkspace/Build/MdeModule/DEBUG_GCC5/IA32 directory
+***
+
+If you have questions please email the [[edk2-devel]] mail list.
+
+See also [[Getting Started with EDK II]]
+
diff --git a/Unix-like-systems.mediawiki b/Unix-like-systems.mediawiki
index 36fd1a2b1299..1d037b51513a 100644
--- a/Unix-like-systems.mediawiki
+++ b/Unix-like-systems.mediawiki
@@ -1,210 +1,215 @@
-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.
-
-'''Note''': These instructions are not recommended for most EDK II developers. 
If you are working with a supported Linux distribution, then the [[Using EDK II 
with Native GCC]] instructions are faster, easier, and produce a smaller UEFI 
binary image.
-
-==Getting started for UNIX-like operating systems==
-
-These instructions will be written as a series of commands executed from a 
command terminal.
-
-Often these instructions will contain a command which needs to be executed in 
the terminal window.  For example:
-
-<pre>
-bash$ echo this bold text is a sample command
-</pre>
-
-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 selecting Copy 
under the Edit menu.  Now, change back to the terminal application, and there 
should be a Paste operation under the Edit menu.  After pasting the command 
into the shell, you may need to press the enter or return key to execute the 
command. 
-
-Of course, there may be other ways to copy and paste the command into the 
terminal which are specific to the windowing environment and applications that 
you are using.  If all else fails, however, you can type the command by hand.
-
-Some commands are very long, and we use the backslash character (\) to tell 
the shell program that the command is not finished.  For example:
-
-<pre>
-bash$ echo this bold text is a sample command \
-        which is broken into two lines
-</pre>
-
-When you copy and paste, make sure you include all lines of the command 
(including the backslash (\) characters).  If you are typing the command, you 
can remove the backslash character (\) and combine the lines into a single line 
if you prefer.
-
-If a command starts with the sudo command, then you may be prompted for your 
user password.  This will be the same password as you used to login to the 
system.
-
-For the purposes of this set of instructions, we will be using the following 
paths.
-{|
-|Edk2 source tree: || ~/src/edk2
-|-
-|GCC X64 cross-compiler installation: || ~/programs/gcc/x64
-|-
-|GCC IA32 cross-compiler installation: || ~/programs/gcc/ia32
-|-
-|Intel ASL Compiler installation: || ~/src/acpica-unix-20090521/compiler/iasl 
(symlink to compiler at ~/programs/iasl)
-|}
-
-You will need to change the commands if you want to use different locations, 
but this is not recommended unless you are sure that you know what you are 
doing.
-
-===Internet proxies===
-
-If your network utilizes a firewall with a web proxy, then you may need to 
configure your proxy information for various command line applications to work. 
 You may need to consult with your network administrator to find out the 
computer name and port to use for proxy setup.  The following commands are 
common examples of how you would configure your proxy by setting an environment 
variable:
-
-<pre>
-bash$ export http_proxy=http://proxy.domain.com:proxy_port
-bash$ export ftp_proxy=$http_proxy
-</pre>
-
-To utilize the subversion source control command behind an internet firewall 
with a web proxy, you should configure the ~/.subversion/servers file.
-
-== Cygwin 1.7.1 ==
-Notes:
-* Cygwin is not officially supported or tested by the edk2 project at this 
time.
-* Building of [http://www.tianocore.org/edk2/ EDK II] components will be done 
using bash.
-Prerequisites:
-* Cygwin 1.7.1 is currently installed on the system.
-* Cygwin 1.7.1 setup.exe is available on the system to install additional 
packages as needed.
-
-Run Cygwin setup.exe and install the following additional packages.
-* bison
-* flex
-* libgmp-devel
-* libiconv
-* libmpfr-devel
-* gcc (use the compiler upgrade helper option under Devel)
-* make
-* python
-* subversion
-* wget
-* libuuid-devel
-* util-linux (for uuidgen)
-
-When pulling source files using subversion you may choose to get them to a 
more Windows friendly location.  All system drives are mapped under /cygdrive 
when using CYGWIN and bash (ie. C:\ maps to /cygdrive/c).  This allows you to 
substitute ~/src/edk2 for an alternate path such as /cygdrive/c/src/edk2 so 
files can be access at C:\src\edk2 as well.
-
-<big>
-Continue with common instructions for Unix
-</big>
-
-The [[Common instructions for Unix|remaining instructions]] are common for 
most UNIX-like systems.
-
-==Fedora 11==
-Please note:
-* Fedora 11 is not officially supported or tested by the edk2 project at this 
time.
-* These instructions assume that the Software Development option was enabled 
during the Fedora installation.
-
-===Open the GNOME Terminal program===
-
-These instructions will utilize Fedora's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the System Tools sub-menu.
-
-===Install MPFR library===
-
-The MPFR library must be installed to allow the gcc cross compiler to be built.
-
-<pre>
-bash$ mkdir ~/src
-bash$ cd ~/src
-bash$ wget http://www.mpfr.org/mpfr-current/mpfr-2.4.1.tar.bz2
-bash$ tar -jxf mpfr-2.4.1.tar.bz2
-bash$ cd mpfr-2.4.1
-bash$ ./configure --prefix=/usr
-bash$ make
-</pre>
-
-To install the library, you must be root.  Therefore we use 'su' to become the 
root user, for the 'make install' command.
-
-<pre>
-bash$ su
-bash$ make install
-bash$ exit
-</pre>
-
-<big>
-Continue with common instructions for Unix
-</big>
-
-The [[Common instructions for Unix |remaining instructions]] are common for 
most UNIX-like systems.
-
-==Mac OS X 10.5==
-===Xcode Tools===
-
-The first step is to install the Apple Xcode development environment:
-  http://developer.apple.com/tools/xcode
-
-To install Xcode, you must register as an Apple developer, and download the 
Xcode installation disk image (which is fairly large).  These instructions were 
verified with Xcode 3.0.  Within the Xcode Tools disk image, only the Xcode 
Tools.mpkg package needs to be installed.
-
-===Open OS X Terminal program===
-
-Past this point, the remaining instructions will utilize OS X's built in 
command shell (bash) via the Terminal application.  To open the command 
terminal application, open Finder, then press the Cmd-Shift-U key combination.  
(This opens the Applications => Utilities folder.)  In the Utilities folder, 
you should see the Terminal application.
-
-===GMP & MPFR (if behind a web proxy)===
-
-The gmp and mpfr libraries are needed to build the gcc cross compiler at a 
later point in these instructions.  Building these libraries on OS X can 
present some difficulties, so if you are not behind a network firewall, then 
consider using the macports project to install these libraries. (see below)  Be 
sure to set the http_proxy and ftp_proxy environment variables before using the 
'curl' commands below.
-
-<pre>
-bash$ mkdir ~/src
-bash$ cd ~/src
-bash$ curl --remote-name \
-  ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.bz2
-bash$ tar jxvf gmp-4.2.2.tar.bz2
-bash$ cd gmp-4.2.2
-bash$ ./configure --prefix=/usr
-bash$ make
-bash$ make check
-bash$ sudo make install
-</pre>
-
-Note: This might be needed for 64-bit machines if the MPFR configure fails 
below.
-<pre>
-bash$ export CFLAGS="-m64"
-</pre>
-
-<pre>
-bash$ cd ~/src
-bash$ curl --remote-name \
-  http://www.mpfr.org/mpfr-current/mpfr-2.4.1.tar.bz2
-bash$ tar -jxf mpfr-2.4.1.tar.bz2
-bash$ cd mpfr-2.4.1
-bash$ ./configure --prefix=/usr
-bash$ make
-bash$ sudo make install
-</pre>
-
-===GMP & MPFR via Macports (if not behind web proxy)===
-
-If you are not behind a network firewall, then the http://www.macports.org 
project can greatly simlify the installation of gmp & mpfr.  (Macports does not 
work easily with web proxies at this time.) After installing macports you 
should be able to simply run this command at the shell prompt.
-
-<pre>
-bash$ sudo port install gmp mpfr
-</pre>
-
-<big>
-Continue with common instructions for Unix
-</big>
-
-The [[Common instructions for Unix|remaining instructions]] are common for 
most UNIX-like systems.
-
-<!--
-==Red Hat Enterprise Linux 4 Desktop==
-Coming soon...
--->
-<!--
-==SuSE Linux Enterprise 10 Desktop==
-Coming soon...
--->
-
-==Ubuntu 9.10==
-Note: The Ubuntu platform is not officially supported or tested by the edk2 
project at this time.
-
-===Open the GNOME Terminal program===
-
-These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
-
-===Install required software from apt===
-
-Several ubuntu packages will be needed to fully set up an edk2 build 
environment.  In order to easily install all the requirements, you need to run 
this command.
-
-<pre>
-bash$ sudo apt-get install build-essential uuid-dev texinfo \
-        bison flex libgmp3-dev libmpfr-dev subversion
-</pre>
-
-
-==Continue with common instructions for Unix==
-
-
-The [[Common instructions for Unix|remaining instructions]] are common for 
most UNIX-like systems.
-
+  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 reference.
+
+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.
+
+'''Note''': These instructions are not recommended for most EDK II developers. 
If you are working with a supported Linux distribution, then the [[Using EDK II 
with Native GCC]] instructions are faster, easier, and produce a smaller UEFI 
binary image.
+
+==Getting started for UNIX-like operating systems==
+
+These instructions will be written as a series of commands executed from a 
command terminal.
+
+Often these instructions will contain a command which needs to be executed in 
the terminal window.  For example:
+
+<pre>
+bash$ echo this bold text is a sample command
+</pre>
+
+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 selecting Copy 
under the Edit menu.  Now, change back to the terminal application, and there 
should be a Paste operation under the Edit menu.  After pasting the command 
into the shell, you may need to press the enter or return key to execute the 
command.
+
+Of course, there may be other ways to copy and paste the command into the 
terminal which are specific to the windowing environment and applications that 
you are using.  If all else fails, however, you can type the command by hand.
+
+Some commands are very long, and we use the backslash character (\) to tell 
the shell program that the command is not finished.  For example:
+
+<pre>
+bash$ echo this bold text is a sample command \
+        which is broken into two lines
+</pre>
+
+When you copy and paste, make sure you include all lines of the command 
(including the backslash (\) characters).  If you are typing the command, you 
can remove the backslash character (\) and combine the lines into a single line 
if you prefer.
+
+If a command starts with the sudo command, then you may be prompted for your 
user password.  This will be the same password as you used to login to the 
system.
+
+For the purposes of this set of instructions, we will be using the following 
paths.
+{|
+|Edk2 source tree: || ~/src/edk2
+|-
+|GCC X64 cross-compiler installation: || ~/programs/gcc/x64
+|-
+|GCC IA32 cross-compiler installation: || ~/programs/gcc/ia32
+|-
+|Intel ASL Compiler installation: || ~/src/acpica-unix-20090521/compiler/iasl 
(symlink to compiler at ~/programs/iasl)
+|}
+
+You will need to change the commands if you want to use different locations, 
but this is not recommended unless you are sure that you know what you are 
doing.
+
+===Internet proxies===
+
+If your network utilizes a firewall with a web proxy, then you may need to 
configure your proxy information for various command line applications to work. 
 You may need to consult with your network administrator to find out the 
computer name and port to use for proxy setup.  The following commands are 
common examples of how you would configure your proxy by setting an environment 
variable:
+
+<pre>
+bash$ export http_proxy=http://proxy.domain.com:proxy_port
+bash$ export ftp_proxy=$http_proxy
+</pre>
+
+To utilize the subversion source control command behind an internet firewall 
with a web proxy, you should configure the ~/.subversion/servers file.
+
+== Cygwin 1.7.1 ==
+Notes:
+* Cygwin is not officially supported or tested by the edk2 project at this 
time.
+* Building of [http://www.tianocore.org/edk2/ EDK II] components will be done 
using bash.
+Prerequisites:
+* Cygwin 1.7.1 is currently installed on the system.
+* Cygwin 1.7.1 setup.exe is available on the system to install additional 
packages as needed.
+
+Run Cygwin setup.exe and install the following additional packages.
+* bison
+* flex
+* libgmp-devel
+* libiconv
+* libmpfr-devel
+* gcc (use the compiler upgrade helper option under Devel)
+* make
+* python
+* subversion
+* wget
+* libuuid-devel
+* util-linux (for uuidgen)
+
+When pulling source files using subversion you may choose to get them to a 
more Windows friendly location.  All system drives are mapped under /cygdrive 
when using CYGWIN and bash (ie. C:\ maps to /cygdrive/c).  This allows you to 
substitute ~/src/edk2 for an alternate path such as /cygdrive/c/src/edk2 so 
files can be access at C:\src\edk2 as well.
+
+<big>
+Continue with common instructions for Unix
+</big>
+
+The [[Common instructions for Unix|remaining instructions]] are common for 
most UNIX-like systems.
+
+==Fedora 11==
+Please note:
+* Fedora 11 is not officially supported or tested by the edk2 project at this 
time.
+* These instructions assume that the Software Development option was enabled 
during the Fedora installation.
+
+===Open the GNOME Terminal program===
+
+These instructions will utilize Fedora's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the System Tools sub-menu.
+
+===Install MPFR library===
+
+The MPFR library must be installed to allow the gcc cross compiler to be built.
+
+<pre>
+bash$ mkdir ~/src
+bash$ cd ~/src
+bash$ wget http://www.mpfr.org/mpfr-current/mpfr-2.4.1.tar.bz2
+bash$ tar -jxf mpfr-2.4.1.tar.bz2
+bash$ cd mpfr-2.4.1
+bash$ ./configure --prefix=/usr
+bash$ make
+</pre>
+
+To install the library, you must be root.  Therefore we use 'su' to become the 
root user, for the 'make install' command.
+
+<pre>
+bash$ su
+bash$ make install
+bash$ exit
+</pre>
+
+<big>
+Continue with common instructions for Unix
+</big>
+
+The [[Common instructions for Unix |remaining instructions]] are common for 
most UNIX-like systems.
+
+==Mac OS X 10.5==
+===Xcode Tools===
+
+The first step is to install the Apple Xcode development environment:
+  http://developer.apple.com/tools/xcode
+
+To install Xcode, you must register as an Apple developer, and download the 
Xcode installation disk image (which is fairly large).  These instructions were 
verified with Xcode 3.0.  Within the Xcode Tools disk image, only the Xcode 
Tools.mpkg package needs to be installed.
+
+===Open OS X Terminal program===
+
+Past this point, the remaining instructions will utilize OS X's built in 
command shell (bash) via the Terminal application.  To open the command 
terminal application, open Finder, then press the Cmd-Shift-U key combination.  
(This opens the Applications => Utilities folder.)  In the Utilities folder, 
you should see the Terminal application.
+
+===GMP & MPFR (if behind a web proxy)===
+
+The gmp and mpfr libraries are needed to build the gcc cross compiler at a 
later point in these instructions.  Building these libraries on OS X can 
present some difficulties, so if you are not behind a network firewall, then 
consider using the macports project to install these libraries. (see below)  Be 
sure to set the http_proxy and ftp_proxy environment variables before using the 
'curl' commands below.
+
+<pre>
+bash$ mkdir ~/src
+bash$ cd ~/src
+bash$ curl --remote-name \
+  ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.bz2
+bash$ tar jxvf gmp-4.2.2.tar.bz2
+bash$ cd gmp-4.2.2
+bash$ ./configure --prefix=/usr
+bash$ make
+bash$ make check
+bash$ sudo make install
+</pre>
+
+Note: This might be needed for 64-bit machines if the MPFR configure fails 
below.
+<pre>
+bash$ export CFLAGS="-m64"
+</pre>
+
+<pre>
+bash$ cd ~/src
+bash$ curl --remote-name \
+  http://www.mpfr.org/mpfr-current/mpfr-2.4.1.tar.bz2
+bash$ tar -jxf mpfr-2.4.1.tar.bz2
+bash$ cd mpfr-2.4.1
+bash$ ./configure --prefix=/usr
+bash$ make
+bash$ sudo make install
+</pre>
+
+===GMP & MPFR via Macports (if not behind web proxy)===
+
+If you are not behind a network firewall, then the http://www.macports.org 
project can greatly simlify the installation of gmp & mpfr.  (Macports does not 
work easily with web proxies at this time.) After installing macports you 
should be able to simply run this command at the shell prompt.
+
+<pre>
+bash$ sudo port install gmp mpfr
+</pre>
+
+<big>
+Continue with common instructions for Unix
+</big>
+
+The [[Common instructions for Unix|remaining instructions]] are common for 
most UNIX-like systems.
+
+<!--
+==Red Hat Enterprise Linux 4 Desktop==
+Coming soon...
+-->
+<!--
+==SuSE Linux Enterprise 10 Desktop==
+Coming soon...
+-->
+
+==Ubuntu 9.10==
+Note: The Ubuntu platform is not officially supported or tested by the edk2 
project at this time.
+
+===Open the GNOME Terminal program===
+
+These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
+
+===Install required software from apt===
+
+Several ubuntu packages will be needed to fully set up an edk2 build 
environment.  In order to easily install all the requirements, you need to run 
this command.
+
+<pre>
+bash$ sudo apt-get install build-essential uuid-dev texinfo \
+        bison flex libgmp3-dev libmpfr-dev subversion
+</pre>
+
+
+==Continue with common instructions for Unix==
+
+
+The [[Common instructions for Unix|remaining instructions]] are common for 
most UNIX-like systems.
+
diff --git a/Using-EDK-II-with-Native-GCC.mediawiki 
b/Using-EDK-II-with-Native-GCC.mediawiki
index e17f5056b446..ea8c8f9326dc 100644
--- a/Using-EDK-II-with-Native-GCC.mediawiki
+++ b/Using-EDK-II-with-Native-GCC.mediawiki
@@ -1,241 +1,244 @@
-
-
-This page provides ''step-by-step instructions'' for setting up a 
[http://www.tianocore.org/edk2/ EDK II] build environment on Linux using a 
native 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.
-
-==Getting Started==
-
-These instructions will be written as a series of commands executed from a 
command terminal.Often these instructions will contain a command which needs to 
be executed in the terminal window.  For example:
-
-<pre>
-bash$ echo this text is a sample command
-</pre>
-
-To execute this command, highlight the text of the command in your web 
browser.  (Note that the 'bash$' text is not part of the command!)  Most web 
browsers should be able to copy the text by selecting Copy under the Edit menu. 
 Now, change back to the terminal application, and there should be a Paste 
operation under the Edit menu.  After pasting the command into the shell, you 
may need to press the enter or return key to execute the command. 
-
-Of course, there may be other ways to copy and paste the command into the 
terminal which are specific to the windowing environment and applications that 
you are using.  If all else fails, however, you can type the command by hand.
-
-Some commands are very long, and we use the backslash character (\) to tell 
the shell program that the command is not finished.  For example:
-
-<pre>
-bash$ echo this bold text is a sample command \
-        which is broken into two lines
-</pre>
-
-When you copy and paste, make sure you include all lines of the command 
(including the backslash (\) characters).  If you are typing the command, you 
can remove the backslash character (\) and combine the lines into a single line 
if you prefer.
-
-If a command starts with the sudo command, then you may be prompted for your 
user password.  This will be the same password as you used to login to the 
system.
-
-For the purposes of this set of instructions, we will be using the following 
paths.
-{|
-|Edk2 source tree: || $HOME/src/edk2
-|-
-|Native GCC 4.x compiler installation: || /usr/bin/gcc
-|-
-|Intel ASL Compiler installation: || /usr/bin/iasl
-|}
-
-You will need to change the commands if you want to use different locations, 
but this is not recommended unless you are sure that you know what you are 
doing.
-
-===Internet proxies===
-
-If your network utilizes a firewall with a web proxy, then you may need to 
configure your proxy information for various command line applications to work. 
 You may need to consult with your network administrator to find out the 
computer name and port to use for proxy setup.  The following commands are 
common examples of how you would configure your proxy by setting an environment 
variable:
-
-<pre>
-bash$ export http_proxy=http://proxy.domain.com:proxy_port
-bash$ export ftp_proxy=$http_proxy
-</pre>
-
-To utilize the subversion source control command behind an internet firewall 
with a web proxy, you should configure the ~/.subversion/servers file.
-
-===Ubuntu 20.04 LTS===
-
-Note: These instructions utilize GCC5 & NASM compiler support (added in early 
2016), along with git (replaces subversion). GCC 4.x is still supported. GCC5 
is not mandatory.
-
-====Open the GNOME Terminal program====
-
-These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
-
-====Install required software from apt====
-
-Several Ubuntu packages will be needed to set up the build environment for EDK 
II. The following command will install all required packages:
-
-<pre>
-bash$ sudo apt install build-essential uuid-dev iasl git  nasm  
python-is-python3
-</pre>
-
-: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 
-:nasm - General-purpose x86 assembler
-:python-is-python3 - Ubuntu 20.04 python command is 'python3' but edk2 tools 
use 'python'
-
-
-===Continue with common instructions===
-
-The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
-
-
-
-===Ubuntu 16.04 LTS / Ubuntu 16.10===
-
-Note: These instructions utilize GCC5 & NASM compiler support (added in early 
2016), along with git (replaces subversion). GCC 4.x is still supported. GCC5 
is not mandatory.
-
-====Open the GNOME Terminal program====
-
-These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
-
-====Install required software from apt====
-
-Several Ubuntu packages will be needed to set up the build environment for EDK 
II. The following command will install all required packages:
-
-<pre>
-bash$ sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm 
python3-distutils
-</pre>
-
-: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 
-: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
-
-===Continue with common instructions===
-
-The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
-
-
-==Instructions for older Linux Environments==
-
-Note: the instructions below have not been updated for compilers newer than 
GCC 4.4, git (replaces subversion) or NASM. Newer builds may fail without 
satisfying these dependecies. We recommend moving to newer Linux distributions 
unless you have a dependency on a specific version.
-
-===Note: Limitations of GCC 4.4===
-
-Note: The GCC 4.4 toolchain only supports building images for the IA32 and X64 
architectures. We recommend using newer toolchains.
-
-Also, in some cases if GCC 4.4 is installed under Linux x86 (32-bit mode), 
then it may only support building UEFI images for the IA32 architecture.
-
-===Arch Linux 2010.05===
-Note: Arch Linux is not officially supported or tested by the edk2 project at 
this time.
-
-====Open the GNOME Terminal program====
-
-These instructions will utilize Arch Linux's built in command shell (bash) via 
the GNOME Terminal application.  To open the Terminal application, locate it 
under the Applications menu and the System Tools sub-menu.
-
-====Install required software with pacman====
-
-To install the required packages, you must be root.  Therefore we use 'su' to 
become the root user.
-
-<pre>
-bash$ su -
-bash$ pacman -S base-devel glibc iasl python2 subversion
-bash$ exit
-</pre>
-
-<big>
-Continue with common instructions
-</big>
-
-The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
-
-===Fedora 13===
-Note: Fedora is not officially supported or tested by the edk2 project at this 
time.
-
-Note: x86 (32-bit) Fedora will install GCC 4.4 which is only capable of 
building UEFI for the IA32 architecture.
-
-====Open the GNOME Terminal program====
-
-These instructions will utilize Fedora's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the System Tools sub-menu.
-
-====Install required software with yum====
-
-To install the required packages, you must be root.  Therefore we use 'su' to 
become the root user.
-
-<pre>
-bash$ su -
-bash$ yum groupinstall development-tools
-bash$ yum install iasl libuuid-devel
-bash$ exit
-</pre>
-
-<big>
-Continue with common instructions
-</big>
-
-The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
-
-===Mandriva 2010===
-Note: Mandriva is not officially supported or tested by the edk2 project at 
this time.
-
-Note: x86 (32-bit) Mandriva will install GCC 4.4 which is only capable of 
building UEFI for the IA32 architecture.
-
-====Open the Terminal program====
-
-These instructions will utilize Mandriva's built in command shell (bash) via 
the Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Tools sub-menu.
-
-====Install required software with urpmi====
-
-To install the required packages, you must be root.  Therefore we use 'su' to 
become the root user.
-
-<pre>
-bash$ su -
-bash$ urpmi task-c++-devel iasl libuuid-devel subversion
-bash$ exit
-</pre>
-
-<big>
-Continue with common instructions
-</big>
-
-The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
-
-===openSUSE 12.1===
-
-Note: openSUSE is not officially supported or tested by the edk2 project at 
this time.
-
-====Open the GNOME Terminal program====
-
-These instructions will utilize openSUSE's built in command shell (bash) via 
the GNOME Terminal application.  To open the Terminal application, click the 
'Computer' menu, click the 'More Applications' button, and then enter 
'terminal' into the filter text box.
-
-====Install required software with zypper====
-
-Several openSUSE packages will be needed to fully set up an edk2 build 
environment.  In order to easily install all the requirements, you need to run 
this command.
-
-<pre>
-bash> sudo zypper in -t pattern devel_basis
-</pre>
-
-<big>
-Continue with common instructions
-</big>
-
-The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
-
-===Ubuntu 10.10===
-Notes:
-* The Ubuntu platform is not officially supported or tested by the edk2 
project at this time.
-* Both the x86 (32-bit) and x86-64 (64-bit) Ubuntu versions will install GCC 
4.4 which is capable of building UEFI for both the IA32 and X64 architectures.
-* These instructions should work for Ubuntu 10.04 as well
-
-====Open the GNOME Terminal program====
-
-These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
-
-====Install required software from apt====
-
-Several ubuntu packages will be needed to fully set up an edk2 build 
environment.  In order to easily install all the requirements, you need to run 
this command.
-
-<pre>
-bash$ sudo apt-get install build-essential subversion uuid-dev iasl
-</pre>
-
-
-===Continue with common instructions===
-
-The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
-
-
-=See Also=
-
+  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 reference.
+
+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 Linux using a 
native 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.
+
+==Getting Started==
+
+These instructions will be written as a series of commands executed from a 
command terminal.Often these instructions will contain a command which needs to 
be executed in the terminal window.  For example:
+
+<pre>
+bash$ echo this text is a sample command
+</pre>
+
+To execute this command, highlight the text of the command in your web 
browser.  (Note that the 'bash$' text is not part of the command!)  Most web 
browsers should be able to copy the text by selecting Copy under the Edit menu. 
 Now, change back to the terminal application, and there should be a Paste 
operation under the Edit menu.  After pasting the command into the shell, you 
may need to press the enter or return key to execute the command.
+
+Of course, there may be other ways to copy and paste the command into the 
terminal which are specific to the windowing environment and applications that 
you are using.  If all else fails, however, you can type the command by hand.
+
+Some commands are very long, and we use the backslash character (\) to tell 
the shell program that the command is not finished.  For example:
+
+<pre>
+bash$ echo this bold text is a sample command \
+        which is broken into two lines
+</pre>
+
+When you copy and paste, make sure you include all lines of the command 
(including the backslash (\) characters).  If you are typing the command, you 
can remove the backslash character (\) and combine the lines into a single line 
if you prefer.
+
+If a command starts with the sudo command, then you may be prompted for your 
user password.  This will be the same password as you used to login to the 
system.
+
+For the purposes of this set of instructions, we will be using the following 
paths.
+{|
+|Edk2 source tree: || $HOME/src/edk2
+|-
+|Native GCC 4.x compiler installation: || /usr/bin/gcc
+|-
+|Intel ASL Compiler installation: || /usr/bin/iasl
+|}
+
+You will need to change the commands if you want to use different locations, 
but this is not recommended unless you are sure that you know what you are 
doing.
+
+===Internet proxies===
+
+If your network utilizes a firewall with a web proxy, then you may need to 
configure your proxy information for various command line applications to work. 
 You may need to consult with your network administrator to find out the 
computer name and port to use for proxy setup.  The following commands are 
common examples of how you would configure your proxy by setting an environment 
variable:
+
+<pre>
+bash$ export http_proxy=http://proxy.domain.com:proxy_port
+bash$ export ftp_proxy=$http_proxy
+</pre>
+
+To utilize the subversion source control command behind an internet firewall 
with a web proxy, you should configure the ~/.subversion/servers file.
+
+===Ubuntu 20.04 LTS===
+
+Note: These instructions utilize GCC5 & NASM compiler support (added in early 
2016), along with git (replaces subversion). GCC 4.x is still supported. GCC5 
is not mandatory.
+
+====Open the GNOME Terminal program====
+
+These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
+
+====Install required software from apt====
+
+Several Ubuntu packages will be needed to set up the build environment for EDK 
II. The following command will install all required packages:
+
+<pre>
+bash$ sudo apt install build-essential uuid-dev iasl git  nasm  
python-is-python3
+</pre>
+
+: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
+:nasm - General-purpose x86 assembler
+:python-is-python3 - Ubuntu 20.04 python command is 'python3' but edk2 tools 
use 'python'
+
+
+===Continue with common instructions===
+
+The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
+
+
+
+===Ubuntu 16.04 LTS / Ubuntu 16.10===
+
+Note: These instructions utilize GCC5 & NASM compiler support (added in early 
2016), along with git (replaces subversion). GCC 4.x is still supported. GCC5 
is not mandatory.
+
+====Open the GNOME Terminal program====
+
+These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
+
+====Install required software from apt====
+
+Several Ubuntu packages will be needed to set up the build environment for EDK 
II. The following command will install all required packages:
+
+<pre>
+bash$ sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm 
python3-distutils
+</pre>
+
+: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
+: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
+
+===Continue with common instructions===
+
+The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
+
+
+==Instructions for older Linux Environments==
+
+Note: the instructions below have not been updated for compilers newer than 
GCC 4.4, git (replaces subversion) or NASM. Newer builds may fail without 
satisfying these dependecies. We recommend moving to newer Linux distributions 
unless you have a dependency on a specific version.
+
+===Note: Limitations of GCC 4.4===
+
+Note: The GCC 4.4 toolchain only supports building images for the IA32 and X64 
architectures. We recommend using newer toolchains.
+
+Also, in some cases if GCC 4.4 is installed under Linux x86 (32-bit mode), 
then it may only support building UEFI images for the IA32 architecture.
+
+===Arch Linux 2010.05===
+Note: Arch Linux is not officially supported or tested by the edk2 project at 
this time.
+
+====Open the GNOME Terminal program====
+
+These instructions will utilize Arch Linux's built in command shell (bash) via 
the GNOME Terminal application.  To open the Terminal application, locate it 
under the Applications menu and the System Tools sub-menu.
+
+====Install required software with pacman====
+
+To install the required packages, you must be root.  Therefore we use 'su' to 
become the root user.
+
+<pre>
+bash$ su -
+bash$ pacman -S base-devel glibc iasl python2 subversion
+bash$ exit
+</pre>
+
+<big>
+Continue with common instructions
+</big>
+
+The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
+
+===Fedora 13===
+Note: Fedora is not officially supported or tested by the edk2 project at this 
time.
+
+Note: x86 (32-bit) Fedora will install GCC 4.4 which is only capable of 
building UEFI for the IA32 architecture.
+
+====Open the GNOME Terminal program====
+
+These instructions will utilize Fedora's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the System Tools sub-menu.
+
+====Install required software with yum====
+
+To install the required packages, you must be root.  Therefore we use 'su' to 
become the root user.
+
+<pre>
+bash$ su -
+bash$ yum groupinstall development-tools
+bash$ yum install iasl libuuid-devel
+bash$ exit
+</pre>
+
+<big>
+Continue with common instructions
+</big>
+
+The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
+
+===Mandriva 2010===
+Note: Mandriva is not officially supported or tested by the edk2 project at 
this time.
+
+Note: x86 (32-bit) Mandriva will install GCC 4.4 which is only capable of 
building UEFI for the IA32 architecture.
+
+====Open the Terminal program====
+
+These instructions will utilize Mandriva's built in command shell (bash) via 
the Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Tools sub-menu.
+
+====Install required software with urpmi====
+
+To install the required packages, you must be root.  Therefore we use 'su' to 
become the root user.
+
+<pre>
+bash$ su -
+bash$ urpmi task-c++-devel iasl libuuid-devel subversion
+bash$ exit
+</pre>
+
+<big>
+Continue with common instructions
+</big>
+
+The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
+
+===openSUSE 12.1===
+
+Note: openSUSE is not officially supported or tested by the edk2 project at 
this time.
+
+====Open the GNOME Terminal program====
+
+These instructions will utilize openSUSE's built in command shell (bash) via 
the GNOME Terminal application.  To open the Terminal application, click the 
'Computer' menu, click the 'More Applications' button, and then enter 
'terminal' into the filter text box.
+
+====Install required software with zypper====
+
+Several openSUSE packages will be needed to fully set up an edk2 build 
environment.  In order to easily install all the requirements, you need to run 
this command.
+
+<pre>
+bash> sudo zypper in -t pattern devel_basis
+</pre>
+
+<big>
+Continue with common instructions
+</big>
+
+The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
+
+===Ubuntu 10.10===
+Notes:
+* The Ubuntu platform is not officially supported or tested by the edk2 
project at this time.
+* Both the x86 (32-bit) and x86-64 (64-bit) Ubuntu versions will install GCC 
4.4 which is capable of building UEFI for both the IA32 and X64 architectures.
+* These instructions should work for Ubuntu 10.04 as well
+
+====Open the GNOME Terminal program====
+
+These instructions will utilize Ubuntu's built in command shell (bash) via the 
GNOME Terminal application.  To open the Terminal application, locate it under 
the Applications menu and the Accessories sub-menu.
+
+====Install required software from apt====
+
+Several ubuntu packages will be needed to fully set up an edk2 build 
environment.  In order to easily install all the requirements, you need to run 
this command.
+
+<pre>
+bash$ sudo apt-get install build-essential subversion uuid-dev iasl
+</pre>
+
+
+===Continue with common instructions===
+
+The [[Common instructions|remaining instructions]] are common for most 
UNIX-like systems.
+
+
+=See Also=
+
 * [[Unix-like systems]] - Instructions which walk through building the Mingw 
GCC cross-compiler
\ No newline at end of file
diff --git a/Windows-systems.mediawiki b/Windows-systems.mediawiki
index ebb717a22464..6be6e9187be8 100644
--- a/Windows-systems.mediawiki
+++ b/Windows-systems.mediawiki
@@ -1,156 +1,162 @@
-__NOTOC__
-This page provides step-by-step instructions or setting up a 
[http://www.tianocore.org/edk2/ EDK II] build environment on Windows systems.
-
-<u>''Table of Contents''</u>
-* [[Windows-systems#github-help|GitHub Help]]
-* [[Windows-systems#how-to-setup-the-edk-ii-tree| How to Setup the EDK II 
Tree]]
-* [[Windows-systems#download| Download]]  Checkout EDK II source tree from 
Github 
-* [[Windows-systems#compile-tools |Compile Tools]] Build EDK II BaseTools for 
Windows 
-* [[Windows-systems#build | BUILD]] EDK II
-
-==GitHub Help==
-
-GitHub (https://help.github.com/index.html) provides step-by-step instructions 
for user registration and basic features supported by GitHub.
-
-=== Git GUI Interface for Windows OS ===
-* Git for Windows OS is available at: (http://git-scm.com/download/win)
-* TortoiseGit for windows OS is available at 
(https://tortoisegit.org/download/)
-
-=='''GitHub EDK II Project Repositories'''==
-
-* The EDK II project repository is available at 
https://github.com/tianocore/edk2. 
-
-Content that is not released under an accepted open source license can be 
found at https://github.com/tianocore/edk2-non-osi.<br />
-&nbsp;<br />
-Note: the steps below will pull the latest code from edk2 master. To work from 
a stable release, please refer to the Microsoft Windows build steps for 
[[UDK2017]]: 
https://github.com/tianocore/tianocore.github.io/wiki/UDK2017-How-to-Build#how-to-build-windows-system
 
-
-===Internet proxies===
-
-If your network utilizes a firewall with a web proxy, then you may need to 
configure your proxy information for various command line applications to work. 
 You may need to consult with your network administrator to find out the 
computer name and port to use for proxy setup.  The following commands are 
common '''Git Bash''' examples of how you would configure your proxy by setting 
an environment variable:
-
-<pre>
-    $ git config --global https.proxy <proxyname>.domain.com:<port>
-    $ git config --global http.proxy <proxyname>.domain.com:<port>
-</pre>
-
-
-=='''How to Setup the EDK II Tree'''==
-'''Note:''' Some of the following examples use the Multiple Workspace feature 
to configure the EDK II BaseTools.  More information on the Multiple Workspace 
feature can be found at the following location. <BR>
-* [[Multiple_Workspace]]
-
-=='''Download'''==
-Download/Checkout the EDK II source tree from Github
-=== Download Using a Web browser ===
-
-# Download EDK II Project
-## Open https://github.com/tianocore/edk2 in web browser
-## Click on the ''Clone or Download'' button (Right Green)
-## Click on Download ZIP
-## Unzip to C:/
-## Rename directory “edk2-master” to “edk2”  
-
-Continue to [[Windows-systems#compile-tools |Compile Tools]] 
-
-=== Using '''Git for Windows''' Application ===
-==== ''Git GUI''====
-# Clone the EDK II project repository
-## Open Git GUI
-## Use ''Clone Exiting Repository'' with Source location 
https://github.com/tianocore/edk2.git
-## Select a Target directory C:/edk2
-## Check Recursively clone submodules too
-## click Clone button
-
-Continue to [[Windows-systems#compile-tools |Compile Tools]] section
-
-==== ''Git CMD'' ====
-If you use the command line version, then you can easily checkout the edk2 to 
the C:\edk2 directory with the following git command:
-Main repository: https://github.com/tianocore/edk2
-<pre>
-    $git clone https://github.com/tianocore/edk2
-</pre>
-
-Continue to [[Windows-systems#compile-tools |Compile Tools]] and then 
[[Windows-systems#build | BUILD]] sections
-
-=='''Compile Tools'''==
-=====For EDK II project developers on Windows with source BaseTools:=====
-*      Create a workspace directory
-*      Change to the workspace directory
-*      Clone the EDK II project repository (See [[Windows-systems#download| 
Download]] section above)
-**     Example: git clone https://github.com/tianocore/edk2
-* Install Python37 or late version (https://www.python.org/)  to run python 
tool from source 
-* Compile BaseTools C source tools
-Example:
-* Inside Git Bash
-<pre>
-     $ git clone https://github.com/tianocore/edk2
-</pre>
-=====Compile BaseTools=====
-Example:
-*Open Command prompt and CD C:\edk2:
-<pre>
+__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 reference.
+
+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.
+
+<u>''Table of Contents''</u>
+* [[Windows-systems#github-help|GitHub Help]]
+* [[Windows-systems#how-to-setup-the-edk-ii-tree| How to Setup the EDK II 
Tree]]
+* [[Windows-systems#download| Download]]  Checkout EDK II source tree from 
Github
+* [[Windows-systems#compile-tools |Compile Tools]] Build EDK II BaseTools for 
Windows
+* [[Windows-systems#build | BUILD]] EDK II
+
+==GitHub Help==
+
+GitHub (https://help.github.com/index.html) provides step-by-step instructions 
for user registration and basic features supported by GitHub.
+
+=== Git GUI Interface for Windows OS ===
+* Git for Windows OS is available at: (http://git-scm.com/download/win)
+* TortoiseGit for windows OS is available at 
(https://tortoisegit.org/download/)
+
+=='''GitHub EDK II Project Repositories'''==
+
+* The EDK II project repository is available at 
https://github.com/tianocore/edk2.
+
+Content that is not released under an accepted open source license can be 
found at https://github.com/tianocore/edk2-non-osi.<br />
+&nbsp;<br />
+Note: the steps below will pull the latest code from edk2 master. To work from 
a stable release, please refer to the Microsoft Windows build steps for 
[[UDK2017]]: 
https://github.com/tianocore/tianocore.github.io/wiki/UDK2017-How-to-Build#how-to-build-windows-system
+
+===Internet proxies===
+
+If your network utilizes a firewall with a web proxy, then you may need to 
configure your proxy information for various command line applications to work. 
 You may need to consult with your network administrator to find out the 
computer name and port to use for proxy setup.  The following commands are 
common '''Git Bash''' examples of how you would configure your proxy by setting 
an environment variable:
+
+<pre>
+    $ git config --global https.proxy <proxyname>.domain.com:<port>
+    $ git config --global http.proxy <proxyname>.domain.com:<port>
+</pre>
+
+
+=='''How to Setup the EDK II Tree'''==
+'''Note:''' Some of the following examples use the Multiple Workspace feature 
to configure the EDK II BaseTools.  More information on the Multiple Workspace 
feature can be found at the following location. <BR>
+* [[Multiple_Workspace]]
+
+=='''Download'''==
+Download/Checkout the EDK II source tree from Github
+=== Download Using a Web browser ===
+
+# Download EDK II Project
+## Open https://github.com/tianocore/edk2 in web browser
+## Click on the ''Clone or Download'' button (Right Green)
+## Click on Download ZIP
+## Unzip to C:/
+## Rename directory “edk2-master” to “edk2”
+
+Continue to [[Windows-systems#compile-tools |Compile Tools]]
+
+=== Using '''Git for Windows''' Application ===
+==== ''Git GUI''====
+# Clone the EDK II project repository
+## Open Git GUI
+## Use ''Clone Exiting Repository'' with Source location 
https://github.com/tianocore/edk2.git
+## Select a Target directory C:/edk2
+## Check Recursively clone submodules too
+## click Clone button
+
+Continue to [[Windows-systems#compile-tools |Compile Tools]] section
+
+==== ''Git CMD'' ====
+If you use the command line version, then you can easily checkout the edk2 to 
the C:\edk2 directory with the following git command:
+Main repository: https://github.com/tianocore/edk2
+<pre>
+    $git clone https://github.com/tianocore/edk2
+</pre>
+
+Continue to [[Windows-systems#compile-tools |Compile Tools]] and then 
[[Windows-systems#build | BUILD]] sections
+
+=='''Compile Tools'''==
+=====For EDK II project developers on Windows with source BaseTools:=====
+*      Create a workspace directory
+*      Change to the workspace directory
+*      Clone the EDK II project repository (See [[Windows-systems#download| 
Download]] section above)
+**     Example: git clone https://github.com/tianocore/edk2
+* Install Python37 or late version (https://www.python.org/)  to run python 
tool from source
+* Compile BaseTools C source tools
+Example:
+* Inside Git Bash
+<pre>
+     $ git clone https://github.com/tianocore/edk2
+</pre>
+=====Compile BaseTools=====
+Example:
+*Open Command prompt and CD C:\edk2:
+<pre>
      C:\edk2> set PYTHON_HOME=C:\Python37
-     C:\edk2> edksetup.bat Rebuild
-</pre>
-
-
-=='''Build'''==
-* Set up the [[Nasm-Setup| Nasm]] open source assembly compiler
-* Set up the [[Asl Setup| ASL Compiler]] 
-* [[Windows-systems#compile-tools |Compile Tools]] above
-* Open a Windows CMD prompt:
-* Change to the edk2 directory
-* Run the edksetup.bat script
-
-      C:\Users\MySid> CD \edk2
-      C:\edk2> edksetup
-
-===Build MdeModulePkg===
-
-
-====Modify Conf files====
-
-You will need to edit the Conf\target.txt file.  First, change the 
ACTIVE_PLATFORM to the MdeModulePkg:
-
-<pre>
-C:\edk2> notepad Conf\target.txt
-</pre>
-
-ACTIVE_PLATFORM should look like this in Conf\target.txt:
-
-<pre>
-ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
-</pre>
-
-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 
appropriate toolchain for your system.  Search for 'Supported Tool Chains' in 
tools_def.txt to see the valid options for TOOL_CHAIN_TAG. 
-<pre>
-TOOL_CHAIN_TAG        = VS2015x86
-</pre>
-
-
-
-See also: [[Windows-systems-ToolChain-Matrix]] for how to change the Tool 
Chain Tag.
-
-Also, consider if you want to build a different processor architecture by 
changing the TARGET_ARCH value in target.txt.  Please consider that certain 
toolchains only support building certain processor architectures.
-
-====Build Hello World!  (and the rest of MdeModulePkg)====
-
-Now you should be able to simply run the build command to compile the 
MdeModulePkg.
-
-<pre>
-C:\edk2> build
-</pre>
-
-As a tangible result of the build, you should have the HelloWorld UEFI 
application.  If you have a UEFI system available to you which matches the 
processor architecture that you built, then this application should be able to 
run successfully under the shell.
-
-<pre>
-C:\edk2> dir /s Build\MdeModule\DEBUG_...\IA32\HelloWorld.efi
-</pre>
-
-===Build [[OVMF]] (OPTIONAL)===
-
-Once your build environment is set up you might be interested in building the  
[[OVMF]] platform which is included in the main edk2 source tree.  Since 
[[OVMF]] builds a full system firmware image this may be of interest to UEFI 
system firmware developers.
-
-=See Also=
-* [[Getting-Started-Writing-Simple-Application]]
-
+     C:\edk2> edksetup.bat Rebuild
+</pre>
+
+
+=='''Build'''==
+* Set up the [[Nasm-Setup| Nasm]] open source assembly compiler
+* Set up the [[Asl Setup| ASL Compiler]]
+* [[Windows-systems#compile-tools |Compile Tools]] above
+* Open a Windows CMD prompt:
+* Change to the edk2 directory
+* Run the edksetup.bat script
+
+      C:\Users\MySid> CD \edk2
+      C:\edk2> edksetup
+
+===Build MdeModulePkg===
+
+
+====Modify Conf files====
+
+You will need to edit the Conf\target.txt file.  First, change the 
ACTIVE_PLATFORM to the MdeModulePkg:
+
+<pre>
+C:\edk2> notepad Conf\target.txt
+</pre>
+
+ACTIVE_PLATFORM should look like this in Conf\target.txt:
+
+<pre>
+ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
+</pre>
+
+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 
appropriate toolchain for your system.  Search for 'Supported Tool Chains' in 
tools_def.txt to see the valid options for TOOL_CHAIN_TAG.
+<pre>
+TOOL_CHAIN_TAG        = VS2015x86
+</pre>
+
+
+
+See also: [[Windows-systems-ToolChain-Matrix]] for how to change the Tool 
Chain Tag.
+
+Also, consider if you want to build a different processor architecture by 
changing the TARGET_ARCH value in target.txt.  Please consider that certain 
toolchains only support building certain processor architectures.
+
+====Build Hello World!  (and the rest of MdeModulePkg)====
+
+Now you should be able to simply run the build command to compile the 
MdeModulePkg.
+
+<pre>
+C:\edk2> build
+</pre>
+
+As a tangible result of the build, you should have the HelloWorld UEFI 
application.  If you have a UEFI system available to you which matches the 
processor architecture that you built, then this application should be able to 
run successfully under the shell.
+
+<pre>
+C:\edk2> dir /s Build\MdeModule\DEBUG_...\IA32\HelloWorld.efi
+</pre>
+
+===Build [[OVMF]] (OPTIONAL)===
+
+Once your build environment is set up you might be interested in building the  
[[OVMF]] platform which is included in the main edk2 source tree.  Since 
[[OVMF]] builds a full system firmware image this may be of interest to UEFI 
system firmware developers.
+
+=See Also=
+* [[Getting-Started-Writing-Simple-Application]]
+
 <!-- [[Category:EDKII]] -->
\ No newline at end of file
-- 
2.28.0.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#97097): https://edk2.groups.io/g/devel/message/97097
Mute This Topic: https://groups.io/mt/95518594/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Reply via email to