summaryrefslogtreecommitdiff
path: root/BuildNotes.txt
diff options
context:
space:
mode:
authorlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>2009-12-14 17:46:24 +0000
committerlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>2009-12-14 17:46:24 +0000
commitc0b89afd91839ed8d5466f6723d12d43bf776d67 (patch)
tree24fb1829d001b76806314548d51ee30caa2e2288 /BuildNotes.txt
parentcd4179255601b9dda32de906851f9c97fc7a8844 (diff)
downloadedk2-platforms-c0b89afd91839ed8d5466f6723d12d43bf776d67.tar.xz
Removing BuildNotes.txt file, as it was for the obsolete Java/ANT based builds
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9562 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'BuildNotes.txt')
-rw-r--r--BuildNotes.txt724
1 files changed, 0 insertions, 724 deletions
diff --git a/BuildNotes.txt b/BuildNotes.txt
deleted file mode 100644
index 3783da56a9..0000000000
--- a/BuildNotes.txt
+++ /dev/null
@@ -1,724 +0,0 @@
-Intel(R) Platform Innovation Framework for EFI
-EFI Development Kit II (EDK II)
-Root Package 1.00
-2006-11-08
-
-Intel is a trademark or registered trademark of Intel Corporation or its
-subsidiaries in the United States and other countries.
-* Other names and brands may be claimed as the property of others.
-Copyright (c) 2006 - 2007, Intel Corporation
-
-This document provides updates to documentation, along with a description on
-how to install and build the EDK II.
-
-Package Contents
-----------------
- BuildNotes.txt - The build notes for this package.
- OldMdePkg - Industry-standard headers and libraries
- Tools - Build -specific tools that are designed to help the
- developer create and modify drivers and libraries
- EdkModulePkg - Reference drivers
- EdkFatBinPkg - Binary DXE drivers for the Fat 32 file system
- EdkShellBinPkg - Binary Shell applications and commands
- EdkNt32Pkg - NT32 Emulation platform reference
- EdkUnixPkg - Posix/Unix Emulation platform reference (Currently this
- builds only on ia32 Linux, but is meant to be portable.)
-
-Note: MDE and MDK that appear in other documentation refer to the OldMdePkg and
-Tools packages, respectively. While, these two packages are the minimum
-requirement for developing EDK II Packages we recommend that you download all
-of the top-level files listed above.
-
-The following package is available as a separate project, under a separate
-license, on the TianoCore.org website: https://fat-driver2.tianocore.org
-
- EdkFatPkg - A package containing source DXE drivers for the Fat 32 file
- system
-
-Documents have the following filenames (to download these documents, see "Notes
-on Documentation" later in these Release Notes):
- EDK II Module Development Environment Library Specification, v0.58
- (MDE_Library_Spec_0_58.rtf)
- EDK II Build and Packaging Architecture Specification, v0.53
- (Build_Packaging_Spec_0_53.rtf)
- EDK II Platform Configuration Database Infrastructure Description, v0.54
- (PCD_Infrastructure_0_54.rtf)
- EDK II Module Surface Area Specification, v0.51
- (Module_Surface_Area_0_50.rtf)
- EDK II Module Development Environment Package Specification, v0.51
- (MDE_Package_Spec_0_51.rtf)
- EDK II C Coding Standards Specification v0.51
- (C_Coding_Standards_Specification_ 0_51.rtf)
- EDK II Subversion Setup Guide
- (edk2-subversion-setup.rtf)
-
-Pre-Requisites
---------------
-The following list of tools must be installed on the development workstation
-prior to using the EDK II.
-
-Compiler Tool Chain
- Microsoft* Visual Studio .NET 2003* (http://www.microsoft.com)
- or
- A special GCC version 4.x or later (http://gcc.gnu.org). See below.
-
-Assembler Tool Chain
- Microsoft Macro Assembler, version 6.15 or later
- or
- GNU binutils 2.16.1 or later
- (Http://ftp.gnu.org/gnu/binutils)
-
-Java Development Kit ( Java 5.0 or later)
- Sun* jdk-1.5.0_06 or later (http://java.sun.com)
- or
- Bea Systems* jrockit-25.2.0-jdk1.5.0_03 or later (http://www.bea.com)
-
-Java Tools
- Apache-ANT, version 1.6.5 or later (http://ant.apache.org)
- Ant-contrib, version 1.0b2 or later
- (http://prdownloads.sourceforge.net/ant-contrib/ant-contrib-1.0b2-bin.zip?download)
- Saxon8, version 8.1.1
- (http://prdownloads.sourceforge.net/saxon/saxonb8-1-1.zip?download)
- XMLBeans, version 2.1.0 (http://xmlbeans.apache.org)
- DO NOT download the latest XMLBeans, version 2.2.0. It is not compatible
- with Saxon8, version 8.1.1.
-
-Other Tools
- TortoiseSVN version 1.3.3. (http://tortoisesvn.tigris.org/)
-
-Optional Tools
---------------
-Compiler Tool Chains:
- Intel(R) C++ Compiler for Windows*, ver. 9.0 or later (http://www.intel.com)
- Intel(R) C Compiler for EFI Byte Code, ver. 1.2 or later
- (http://www.intel.com/cd/software/products/asmo-na/eng/compilers/efibc/index.htm)
- Microsoft Driver Development Kit, version 3790.1830 or later
- (http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.mspx)
- Microsoft ACPI Source Language Assembler, Version 1.0.13NT or later
- Intel ACPI Component Architecture, version 20060113
-
-Python
-
- There are several tools implemented in Python and wxPython Widgets in the
- Tools/Python directory. These are optional tools, and are not necessary in
- order to use or build the edk2 code. In order to use them you must
- install Python 2.4.x and wxWidgets 2.8.x for your platform. The tools
- have been tested and work correctly on OS X, Linux and Windows.
-
- There is a script called Install_Python_OSX.sh that will download and
- install the correct versions for OS X. For other platforms, please find
- the installers for your platform at the following sites:
-
- - http://www.python.org/download/releases/2.4.4/ (Python interpreter)
- - http://www.wxpython.org/download.php#binaries (Python GUI extensions)
-
- Your linux distribution may contain packages of python and wxPython, which
- should work, provided they are are compatible with the above specified
- versions.
-
------------------------------------------------
-Notes on Required Tools (Source Control System)
------------------------------------------------
-The EDK II is being managed by the Subversion Source Control on Tianocore.org.
-Subversion provides speed, security, and additional features. The
-recommended client is TortoiseSVN version 1.3.3.
- (Available at http://tortoisesvn.tigris.org/)
-
-The checkout procedures on the Tianocore.org Web site include
-instructions for the use of Subversion Source Control.
-
-The URL of the EDK II repository is:
- https://edk2.tianocore.org/svn/edk2/trunk/edk2
-
-
---------------------------------------------------------------------
-Notes On Required Tools (With examples for Windows, OS X, and Linux*)
---------------------------------------------------------------------
-Software Installation Order:
- After installing the compiler tools and your Subversion client, install the
- following required tools in this order:
- 1. Java JDK
- 2. Apache-Ant
- 3. ant-contrib
- 4. xmlbeans
- 5. saxon8
-
-Java Development Kit:
-
- The Java Environment Variable must be set before attempting to build.
- For Sun JDK (see note below?:
- set JAVA_HOME=c:\Java\jdk1.5.0_06 (Windows example)
- export JAVA_HOME=/Library/Java/Home/ (OS X example)
- export JAVA_HOME=/usr/lib/j2sdk1.5-sun/ (Linux example)
- For Bea Systems:
- set JAVA_HOME=c:\Java\jrockit-R26.0.0-jdk1.5.0_04
-
- When using the Sun JDK5.0:
- During installation, you should specify the install directory as C:\Java
- instead of C:\Program Files\(or some other drive letter.) While installing
- to this non-standard location is not required, in practice, it seems to work
- more reliably.
- For the JDK, the install path is C:\Java\jdk1.5.0_06
- For the JRE, the install path is C:\Java\jre1.5.0_06
- Alternatively, you can specify C:\sunjavajdk and C:\sunjavajre.
-
- NOTE: You cannot combine the location for the JDK and the JRE, because the
- JRE install removes most of the binaries and libraries installed by the JDK
- install.
-
-Java Tools:
- The Apache-ANT requires the ANT_HOME environment variable to be set before
- attempting to build:
- set ANT_HOME=c:\<full path to where ant was installed>
- export ANT_HOME=~/ExternalTools/apache-ant (OS X and Linux example)
-
- The ant-contrib.jar file should be installed in the %ANT_HOME%\lib
- directory.
-
- XMLBeans, requires the XMLBEANS_HOME environment variable to be set
- before attempting to build:
- set XMLBEANS_HOME=C:\<full path to where xmlbeans was installed>
- export XMLBEANS_HOME=~/ExternalTools/xmlbeans (OS X and Linux example)
-
- Copy the saxon8.jar file to the %XMLBEANS_HOME%\lib directory.
-
- The Ant and XMLBean tools must be in the path.
- MS system example:
- set PATH=%PATH%;%ANT_HOME%\bin;%XMLBEANS_HOME%\bin
- Linux/OS X bash shell example:
- export PATH=$PATH:${ANT_HOME}/bin:${XMLBEANS_HOME}/bin
-
---------------------
-A Word on Apache-ANT
---------------------
-The Apache-ANT program is a build tool that uses XML-based project files.
-Similar to Makefiles, these project files may contain multiple targets. Most
-build.xml files in EDK II are auto-generated; any edits performed on the
-build.xml files will be overwritten by the next build.
-
-Pre-defined targets in the build.xml file include:
- all - This target builds binaries for defined architectures.
- clean - This target removes object files generated by commands.
- cleanall - This target removes all generated files and directories.
-
-Use the ANT option, -emacs, to remove the [cc] characters when an error occurs
-to provide a method for the Visual Studio IDE to open a file by double
-clicking the mouse on the file. Add -emacs to the end of the build command.
-----------------------------
-A Word on the GCC Tool Chain
-----------------------------
-
-EDK II will not compile with a standard Linux gcc tool chain. While Linux
-distributions are usually based on ELF, EDK II requires a version of gcc that
-is configured to produce PE-COFF images. You will find a script in <Root of
-EDK2 tree>/Tools/gcc/tianoCross-gcc-4.1 that will download, configure, compile,
-and install a gcc 4.1 cross-compile tool chain for EDK II development. This
-custom tool chain supports the IA-32 architecture. It can be built and run on
-Cygwin, Linux, and many other POSIX-compliant host operating environments. To
-compile the custom gcc tool chain, you need the following tools on your host
-computer: bash, gcc, gmake, curl (or wget).
-
-Only the OldMdePkg, EdkModulePkg and EdkUnixPkg are currently supported by gcc
-builds. Other builds, such as the EdkNt32Pkg, will not compile with gcc. By
-default, the edk2 will try to build the NT32.fpd, which is not supported by
-gcc. So, you need to change the Tools/Conf/target.txt.
-
-The cross-compile build script has been tested on Cygwin, OS X and Linux. You
-should expect to hack on these scripts to make them work on your system. You
-may need to install additional tools on your system to make the scripts work.
-
-You will need
-
- A recent version (3.0 or later should be fine) of gcc that is able to produce
- executables for the machine that you want to run this compiler on (the host
- machine).
- wget or curl (which enables the download of the gcc compiler source code)
- tar
- bzip
- gzip
- bash
- and possibly others
-
-CYGWIN Notes
-
-You should setup cygwin to use binmode on all mounts. When you initially
-install cygwin it gives you the choice of Unix file mode (recommended) or DOS
-file mode. Unix mode will cause all the cygwin directories to be mounted in
-binmode, while DOS will mount the dirs in textmode. Here is an example of a
-cygwin install where the dirs are (properly) mounted in binmode.
-To view mount information, type:
- mount
-
-C:\cygwin\bin on /usr/bin type user (binmode)
-C:\cygwin\lib on /usr/lib type user (binmode)
-c:\workspace on /workspace type system (binmode)
-C:\cygwin on / type user (binmode)
-
-If you use textmode, it is likely that the build will fail in a way that is
-hard to debug. Textmode is required to retain or add the DOS ^M characters
-in DOS batch files during file editing sessions.
-
-You can switch from textmode to binmode for compilation by executing the
-following:
- mount -b --change-cygdrive-prefix cygdrive
-
-Cygwin is pretty slow, so it is not recommended for large builds.
-
-
-
-
-
-The platform to be built is identified by the Tools/Conf/target.txt file:
-
-#
-# PROPERTY Type Use Description
-# ---------------- -------- -------- -----------------------------------------------------------
-# ACTIVE_PLATFORM Filename Recommended Specify the WORKSPACE relative Path and Filename
-# of the platform FPD file that will be used for the build
-# This line is required if and only if the current working
-# directory does not contain one or more FPD files.
-
-ACTIVE_PLATFORM =
-
-You can leave it black, as above, or set it to any .fpd file in the workspace.
-If you leave it blank, then you just cd to the dir that contains the .fpd that
-you would like to build (OldMdePkg/ or EdkModulePkg/) and then type build.
-
-----------------------------
-A Word on compiling on Linux
-----------------------------
-
-In order to compile on Linux, you will need to have the e2fsprogs-devel package
-installed. Check your distribution for the rpm, deb or other package format.
-This package contains the uuid library and header that are used by some of the
-host tools.
-
-If you are running on x86_64 Linux, then you should install a 64 bit version of
-the Java JDK. The version that was used was jdk-1_5_0_07-linux-amd64-rpm.bin.
-It may be downloaded from sun.com.
-
------------------------------------------
-A Word on compiling under Cygwin with gcc
------------------------------------------
-
-Cygwin is a POSIX style operating environment for Windows. It is possible to
-compile the EDK 2 using gcc and cygwin. Compiling under cygwin is slow, because
-the underlying file accesses are slow in cygwin. For this reason, we do not
-encourage the use of cygwin. A true unix system will be a superior choice for
-those wishing to compile with gcc.
-
-Make sure that you select the e2fsprogs development package when you install
-cygwin. It is necessary for the GenFvImage tool.
-
-----------------------------------------
-A Word on gcc for Processor Architectures
-----------------------------------------
-
-Currently gcc support is limited to IA-32 builds, generating IA-32 PE32 images.
-
-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.
-
-We have added prelinary support for the MinGW64 Tool chain. This gcc tool
-chain is ported to follow the Microsft X64 ABI, and therefore is compatible
-with the EFI specification.
-
-On Itanium?Processors the gcc compiler does not support generating a PE32+ image.
-
-----------------------------------------
-A Word on EdkUnixPkg -- The Unix simulator
-----------------------------------------
-
-A unix port of the Nt32 simulator has been added to the project. It currently
-builds and runs on 32 bit Linux, but should be portable to other Unix
-variants. In order to build it, you should use the ELFGCC tool chain defintion
-in tools_def.txt, which is set in target.txt. These are two settings to make
-in Tools/Conf/target.txt:
-
-ACTIVE_PLATFORM = EdkUnixPkg/Unix.fpd
-TOOL_CHAIN_TAG = ELFGCC
-
-Once that is setup, type build, and then you will end up with the simulator in
-Build/Unix/DEBUG_ELFGCC/IA32/SecMain.exe.
-
-In order to use the gdb debugger with the simulator, you may need to load the
-correct symbol file for the various modules that are loaded. For example,
-
-add-symbol-file EdkModulePkg/Bus/Pci/PciBus/Dxe/PciBus/DEBUG/./PciBus.dll
-0x45dc6000
-
-You can see the names of the symbol files (they are in ELF format even though
-the extension is .dll) printed on the screen as the simulator comes up.
-
------------------------
-Notes on Documentation
------------------------
-The documents are being managed by the Subversion Source Control on
-Tianocore.org. The document repository is "docs" and must be checked out
-separately from the EDK II source tree. Refer to the checkout procedures on
-the Tianocore.org Web site for EDK II.
-
-The URL of the document repository is:
- https://edk2.tianocore.org/svn/edk2/trunk/docs
-
-
--------------------------------------------------------------------------------
-Quick Start
------------
-(assumes Microsoft Tools and OS environment, for GCC Tools or Linux, see
-"Detailed Starting Instructions" below)
-
-Follow the instructions at https://edk2.tianocore.org/servlets/ProjectSource to
-check out the entire EDK II source tree.
-
-In a command window, change to the top-level directory of the EDK II source.
-
-To test your tool chain setup and to build the supplied tools, execute:
- c:\MyWork\edk2\> edksetup ForceRebuild
-
-(The edksetup script is referred to as the setup command throughout the
-rest of this document.)
- NOTE: You should run the setup command at the start of every session.
- This configures the environment to include the TianoTools and the
- Java applications and libraries.
-
-You will need to set the WORKSPACE environment variable, or run the edksetup
-script (without any arguments), any time you want to build.
-
- Set the WORKSPACE environment variable, e.g.:
-
- c:\> set WORKSPACE=C:\MyWork\edk2
-
-You may need to edit the text files Tools/Conf/target.txt and
-Tools/Conf/tools_def.txt (created by edksetup) using your favorite
-text editor to ensure that the paths to the tools you want to use
-to build EDK II binaries are correct. These files contain the default
-paths (as per the default installation of the tools), so a customized
-install may require this manual process.
-
-Once this is completed, you are ready to test the build, by executing:
- c:\MyWork\edk2\> build
-
-This command builds the active platform specified in text file target.txt. If
-the active platform is not specified target.txt, you must execute the build
-command from the sub-directory that contains FPD files. For more information
-about the active platform policy, see the "EDK II Build and Packaging
-Architecture Specification."
-
--------------------------------------------------------------------------------
-Detailed Starting Instructions
-------------------------------
-
-Follow the instructions at https://edk2.tianocore.org/servlets/ProjectSource to
-check out the entire EDK II source tree.
-
-In a command window, change to the top-level directory of the EDK II source.
-
-If the active compiler tool chain is GCC, you must set the
-environment variable, TOOL_CHAIN to "gcc" before running the
-edksetup script. Example: export TOOL_CHAIN=gcc
-
-To test your tool chain setup and to build the supplied tools, execute:
- c:\MyWork\edk2\> edksetup ForceRebuild
-
-On Linux systems, you must source the edksetup.sh file to load the correct
-settings into your shell.
-
- . edksetup.sh # Note the dot.
-
-If you have recently updated your code from subversion, the tools will need to
-be rebuilt if there were any code changes made to them. You can request that
-the tools get rebuilt by typing:
-
- . edksetup.sh Rebuild # Unix-like systems
- edksetup.bat Rebuild # Windows
-
-The edksetup script is referred to as the setup command throughout the
-rest of this document.
- NOTE: You should run the setup command (edksetup)at the start of every
- session. This configures the environment to include the
- TianoTools and the Java applications and libraries.
-
-Any changes to the tool source code or XML Schema documents require that
-you execute the following:
- c:\MyWork\edk2\> edksetup ForceRebuild
-
-You must set the WORKSPACE environment variable, or run the edksetup
-script (without any arguments), any time you want to build.
-
- Set the WORKSPACE environment variable, e.g.:
-
- c:\> set WORKSPACE=C:\MyWork\edk2
-
-You may need to edit the text files Tools/Conf/target.txt and
-Tools/Conf/tools_def.txt (created by edksetup) using your favorite
-text editor to ensure that the paths to the tools you want to use
-to build EDK II binaries are correct. These files contain the default
-paths (as per the default installation of the tools), so a customized
-tool installation may require this manual process.
-
-Once this is completed, you are ready to test the build, by executing:
- c:\MyWork\edk2\> build
-
-This command builds the active platform specified in text file target.txt. If
-the active platform is not specified, go to the sub-directory that contains FPD
-files and execute the build command. For more information about the active
-platform policy, see the "EDK II Build and Packaging Architecture
-Specification."
-
---------------------------
-Individual Platform Builds
---------------------------
-After running the setup command, you can build individual platforms.
-In the command window:
- Set the active platform in target.txt, and execute this command:
- c:\<directory>\> build
-or
- cd to the platform (FPD file) that you want to build and execute this command:
- c:\MyWork\edk2\EdkNt32Pkg\> build
-
- Note that the active platform specified in target.txt overrides the platform
- specified by any FPD file in the current directory. For more information
- about active platform policy, see the "EDK II Build and Packaging Architecture
- Specification."
-
-To run the Nt32 emulation platform under Microsoft Windows, go to
-<full build path>\DEBUG\MSFT\IA32 and execute SecMain.exe
-
-To exit the Nt32 emulation platform, type "reset" at the EFI Shell>
-command prompt. Alternatively, from the graphical interface, select the Boot
-Maintenance Manager's "Reset System" command.
-
- NOTE: When creating a new platform, the Platform Name is restricted
- to a single word containing alphanumeric characters, underscore, dash,
- and period. The space character and other special characters are
- not allowed.
-
------------------------
-Notes on Symbolic Debug
------------------------
-To enable EFI Symbolic Debugging, make sure the target output is set to DEBUG
-in the text file Tools/Conf/target.txt and then modify the FPD <BuildOptions>
-<Options><Option BuildTargets="DEBUG" ToolCode="CC"> and append the following
-compiler options to the string:
-"/D EFI_GENERATE_SYM_FILE", "/D EFI_SYMBOLIC_DEBUG"
-
-(If the Option line does not contain "/D EFI_DEBUG", you must add that
-option as well.)
-
-------------------------
-Individual Module Builds
-------------------------
-After running the setup command, you can build individual modules.
- In the command window, cd to the module that you want to build, and
- execute the build command:
- c:\MyWork\edk2\OldMdePkg\Library\BaseLib\> build
-
- You must set the active platform in target.txt for individual module builds.
-
--------------------------------------------------------------------------------
-
-General Information:
-===============================================================
-Mechanisms
-----------
-A brief overview:
-
-A) The Surface Area Package Description (SPD) file contains information about
-the modules that the package contains, including the location of all MSA files,
-and public library names and headers that might be provided by a module in the
-package. Packages are defined by SPD files. (Found in the root of the Package
-subdirectory (i.e. EdkNt32Pkg).) The SPD file is further explained in "EDK II
-Build and Packaging Architecture Specification."
-
-B) Module Surface Area Definition (MSA) files. A description of a module's
-surface area, with all module specific default flags and features specified.
-For additional details, see the "EDK II Module Surface Area Specification" and
-the "EDK II Build and Packaging Architecture Specification."
-
-C) Framework Platform Description (FPD) files. A description of a platform's
-surface are, including a list of modules that are needed by the platform. To
-support individual module builds, developers are not required to provide
-information about specific flash devices, nor flash device layout.
-Specific sections in the FPD file control aspects of the build, such
-as the Supported Architectures and Build Targets, as well as the tool flags
-that are used to create the binary files. A valid platform file can specify
-zero or more modules, so individual modules can be compiled within the context
-of a platform (FPD) definition.
-
-D) Platform Configuration Database (PCD). A platform database that contains a
-variety of current platform settings or directives that can be accessed by a
-driver or application. The PCD is defined by the PCD_Protocol (This is
-further explained in the "EDK II Platform Configuration Database Infrastructure
-Description."
-
-E) Library Class. A library class is a logical grouping of similar functions.
-When developing components, the module surface area declares the class of
-libraries that can be used by the component. The MSA and SPD files can specify
-a recommended instance of the library that a platform integrator (PI) may
-select, however this is only a recommendation. The PI may choose to select a
-different library instance to be used during compilation and linking. All
-library type modules must include header files in their distribution package,
-as well as their MSA files. Components, on the other hand, need provide only an
-MSA file and either source or binary files when distributing packages. The
-Library Classes are further explained in the "EDK II Build and Packaging
-Architecture Specification."
-
-=========================================================================
-The common operations by developers of new modules are:
------------------------------------------------
-1) Manually creating a new module in a package:
- - The module source code must first be created in an appropriate directory
- (under the package the module is to be a part of.)
- - An MSA file must be created, spelling out all aspects of the module.
- - The MSA must be added to the SPD for the package to include the module.
-
------------------------------------------------------
-2) Adding and Removing modules to and from a package:
-
- - Set up environment as Build
- - Adding a module to a package:
- - Generate the MSA file
- - Add a new <Filename> element under <MsaFiles> into
- <PackageDir>\<PackageName>.spd, using arelative path to the package
- - Add a new <ModuleSA> entry under each <FrameworkModules> into the
- <PackageDir>\<PackageName>.fpd file if necessary.
-
- - Removing a module from a package:
- - Comment out or remove the corresponding <Filename> element under
- <MsaFiles> from <PackageDir>\<PackageName>.spd
- - Comment out or remove the corresponding <ModuleSA> entry under each
- <FrameworkModules> from <PackageDir>\<PackageName>.fpd if necessary.
-
--------------------------------
-3) Manually creating a package:
- - Identify the modules that are to be members of the project.
- - Identify the Variables and Guids required in and of the Package (including
- consumption and production information).
- - Create an SPD file defining these modules and calling out their MSA files.
- - Add a new <Filename> element under <PackageList> into
- Tools\Conf\FrameworkDatabase.db, using the relative path to the workspace.
-
------------------------------------------
-4) Declaring a new Protocol in a package:
- - This release requires manual editing of the SPD file, adding the protocol
- to the ProtocolDeclarations section of the file.
- - Add the Protocol .h file to the Include\Protocol directory.
- - Add an <Entry> to the <ProtocolDeclarations> element in the
- <PackageName>.spd file
- - Each line contains Protocol base name, followed by the global variable
- name, and the hex value of the Protocol GUID.
-
-Example Protocol Entries (NOTE: The Guid entry is a single line in the SPD
-file):
-<ProtocolDeclarations>
- <Entry Name="Bds">
- <C_Name>gEfiBdsArchProtocolGuid</C_Name>
- <GuidValue>665E3FF6-46CC-11D4-9A38-0090273FC14D</GuidValue>
- <HelpText/>
- </Entry>
- <Entry Name="Cpu">
- <C_Name>gEfiCpuArchProtocolGuid</C_Name>
- <GuidValue>26BACCB1-6F42-11D4-BCE7-0080C73C8881</GuidValue>
- <HelpText/>
- </Entry>
-</ProtocolDeclarations>
-
-------------------------------------
-5) Declaring a new PPI in a package:
- - This release requires manual editing of the SPD file
- - Add the PPI .h file to the Include\Ppi directory.
- - Add an <Entry> to the package <PpiDeclarations> element in the
- <PackageName>.spd file
- - Each line contains the PPI base name, followed by the global variable
- name and the hex value of the PPI GUID.
-
-Example Ppi Entries (NOTE: The Guid entry is a single line in the SPD file):
-<PpiDeclarations>
- <Entry Name="BootInRecoveryMode">
- <C_Name>gEfiPeiBootInRecoveryModePpiGuid</C_Name>
- <GuidValue>17EE496A-D8E4-4B9A-94D1-CE8272300850</GuidValue>
- <HelpText/>
- </Entry>
- <Entry Name="CpuIo">
- <C_Name>gEfiPeiCpuIoPpiInServiceTableGuid</C_Name>
- <GuidValue>E6AF1F7B-FC3F-46DA-A828-A3B457A44282</GuidValue>
- <HelpText/>
- </Entry>
-</PpiDeclarations>
-
--------------------------------------
-6) Declaring a new GUID in a package:
- - This release requires manual editing of the SPD file to include the new
- Guid. This is identical to adding a ProtocolDeclaration or PpiDeclaration
- element, as described above.
-
-------------------------------------------
-7) Declaring a new PCD entry in a package:
- - This release requires manual editing of the SPD file to include the new
- PCD. New Pcd entries are added to the PcdDefinitions section of the
- <PackageName>.spd file using the following example for the format
- (NOTE: The hex <Token> value must be unique):
-
-<PcdDeclarations>
- <PcdEntry ItemType="FIXED_AT_BUILD">
- <C_Name>PcdMaximumUnicodeStringLength</C_Name>
- <Token>0x00000001</Token>
- <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
- <DatumType>UINT32</DatumType>
- <ValidUsage>FIXED_AT_BUILD</ValidUsage>
- <DefaultValue>1000000</DefaultValue>
- <HelpText>The maximum lengh for unicode string.</HelpText>
- </PcdEntry>
-</PcdDeclarations>
-
-------------------------------
-8) Declaring a new Library Class:
- - This release requires manual editing of the SPD file to include the new
- Library Class. New Library Class entries are added to the
- LibraryClassDeclarations section of the <PackageName>.spd file using
- the following example for the format:
-
-<LibraryClassDeclarations>
- <LibraryClass Name="BaseLib">
- <IncludeHeader>Include/Library/BaseLib.h</IncludeHeader>
- <HelpText/>
- </LibraryClass>
- <LibraryClass Name="BaseMemoryLib">
- <IncludeHeader>Include/Library/BaseMemoryLib.h</IncludeHeader>
- <HelpText/>
- </LibraryClass>
-</LibraryClassDeclarations>
-
-=======================================================
-EDK II Changes Relative to the original EDK:
---------------------------------------------
-The EDK II represents significant changes in the structure of the EDK.
-Therefore, it is very difficult to isolate all of the changes of this version of
-the EDK with the original EDK.
-
-Of particular note:
-
-1) EDK II contains new hardware feature support for the ICH SMBUS Libraries.
- These libraries are provided to make Memory Reference Code (MRC) development
- easier.
-2) The MDE libraries represent significant changes in source
- (with only limited changes in functionality.) These new libraries conform
- to the "EDK II Module Development Environment Library Specification.?
-3) The Fat Binary and the EDK Shell Binary Packages are functionally identical
- to the original EDK.
-4) The EDK tools directory has been expanded to include more tools and more
- tool functionality.
-5) The EDK NT32 section has been ported to the new build process, but
- functionally remains the same as the original EDK.
-6) The Application "HelloWorld" has been ported to EDK II as well.
-
-=======================================================
-Virus scanned by McAfee VirusScan Enterprise 8.0.0, Virus Definitions 4890, no
-virus detected.
-
-vim:tw=78:ts=2:com=fb\:- :ai