+\r
+--------------------\r
+A Word on Apache-ANT\r
+--------------------\r
+The Apache-ANT program is a build tool that uses XML-based project files.\r
+Similar to Makefiles, these project files may contain multiple targets. Most\r
+build.xml files in EDK II are auto-generated; any edits performed on the\r
+build.xml files will be overwritten by the next build.\r
+\r
+Pre-defined targets in the build.xml file include:\r
+ all - This target builds binaries for defined architectures.\r
+ clean - This target removes object files generated by commands.\r
+ cleanall - This target removes all generated files and directories.\r
+\r
+----------------------------\r
+A Word on the GCC Tool Chain\r
+----------------------------\r
+EDK II will not compile with a standard Linux gcc tool chain. While Linux\r
+distributions are usually based on ELF, EDK II requires a version of gcc \r
+that is configured to produce PE-COFF images. You will find a script in \r
+edk2/Tools/gcc that will download, configure, compile, and install a gcc \r
+4.X cross-compile tool chain for EDK II development. This custom tool chain \r
+supports the IA-32 architecture. It can be built and run on Cygwin, Linux, and \r
+many other POSIX-compliant host operating environments. To compile the custom \r
+gcc tool chain, you need the following tools on your host computer: bash, gcc, \r
+gmake, curl (or wget).\r
+\r
+Only the MdePkg and EdkModulePkg are currently supported by gcc builds. Other\r
+builds, such as the EdkNt32Pkg, will not compile with gcc. By default, the edk2\r
+will try to build the NT32.fpd, which is not supported by gcc. So, you need to\r
+change the Tools/Conf/target.txt.\r
+\r
+The platform to be built is identified by the Tools/Conf/target.txt file:\r
+\r
+#\r
+# PROPERTY Type Use Description\r
+# ---------------- -------- -------- -----------------------------------------------------------\r
+# ACTIVE_PLATFORM Filename Recommended Specify the WORKSPACE relative Path and Filename \r
+# of the platform FPD file that will be used for the build\r
+# This line is required if and only if the current working\r
+# directory does not contain one or more FPD files.\r
+\r
+ACTIVE_PLATFORM =\r
+ \r
+You can leave it black, as above, or set it to any .fpd file in the workspace.\r
+If you leave it blank, then you just cd to the dir that contains the .fpd that\r
+you would like to build (MdePkg/ or EdkModulePkg/) and then type build.\r
+\r
+----------------------------\r
+A Word on compiling on Linux\r
+----------------------------\r
+\r
+In order to compile on Linux, you will need to have the e2fsprogs-dev package\r
+installed. Check your distribution for the rpm, deb or other package format.\r
+This package contains the uuid library and header that are used by some of the\r
+host tools.\r
+\r
+If you are running on x86_64 Linux, then you should install a 64 bit version of\r
+the Java JDK. The version that was used was jdk-1_5_0_07-linux-amd64-rpm.bin.\r
+It may be downloaded from sun.com.\r
+\r
+-----------------------------------------\r
+A Word on compiling under Cygwin with gcc\r
+-----------------------------------------\r
+\r
+Cygwin is a POSIX style operating environment for Windows. It is possible to\r
+compile the EDK 2 using gcc and cygwin. There are a few extra steps necessary\r
+to make this happen. There is a JNI (Java Native Interface) library in the\r
+Tools. In order to compile this under Cygwin, the 'linux' java headers must be\r
+installed to the $JAVA_HOME dir on the windows system. To accomplish this, you\r
+must install the JDK on a linux system, and then copy\r
+linux:$JAVA_HOME/include/linux/ to windows:$JAVA_HOME/include. These are really\r
+typedefs needed by gcc.\r
+\r
+Compiling under cygwin is slow, because the underlying file accesses are slow\r
+in cygwin. For this reason, we do not encourage the use of cygwin. A true unix\r
+system will be a superior choice for those wishing to compile with gcc.\r
+\r
+Make sure that you select the e2fsprogs development package when you install\r
+cygwin. It is necessary for the GenFvImage tool.\r
+\r
+----------------------------------------\r
+A Word on gcc for Processor Architectures\r
+----------------------------------------\r
+\r
+Currently gcc support is limited to IA-32 builds, generating IA-32 PE32 images. \r
+\r
+The X64 bit (Intel 64, etc.) support under the gcc compiler does not support the EFIAPI calling convention (as defined in the UEFI 2.0 specification Chapter 2), so it is not possible to build a working EFI image for an X64 environment. Since the x64 gcc does not support the EFIAPI calling convention the x64 tools do not support generating a PE32+ image. The EFIAPI calling convention is very similar to the Microsoft x64 calling convention.\r
+\r
+On Itanium® Processors the gcc compiler does not support generating a PE32+ image.\r
+\r
+-----------------------\r
+Notes on Documentation\r
+-----------------------\r
+The documents are being managed by the Subversion Source Control on\r
+Tianocore.org. The document repository is "docs" and must be checked out\r
+separately from the EDK II source tree. Refer to the checkout procedures on\r
+the Tianocore.org Web site for EDK II.\r
+\r
+The URL of the document repository is:\r
+ https://edk2.tianocore.org/svn/edk2/trunk/docs\r
+\r