vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 1 | Intel(R) Platform Innovation Framework for EFI
|
| 2 | EFI Development Kit II Prime (EDK II Prime)
|
| 3 | Root Package 1.00
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 4 | 2008-05-15
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 5 |
|
| 6 | Intel is a trademark or registered trademark of Intel Corporation or its
|
| 7 | subsidiaries in the United States and other countries.
|
| 8 | * Other names and brands may be claimed as the property of others.
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 9 | Copyright (c) 2007 - 2008, Intel Corporation All rights reserved.
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 10 |
|
| 11 | EDK II Prime packages are in the development phase. They consist of:
|
| 12 |
|
qhuang8 | f91b9b3 | 2007-07-02 06:10:56 +0000 | [diff] [blame] | 13 | BuildNotes2.txt - The build notes for this package
|
| 14 | MdePkg - Industry-standard headers and libraries
|
| 15 | BaseTools - Build -specific tools that are designed to help the
|
| 16 | developer create and modify drivers and libraries
|
| 17 | IntelFrameworkPkg - Tiano/Framework Includes and Libraries
|
| 18 | MdeModulePkg - UEFI 2.1/PI 1.0 compliant modules
|
| 19 | IntelFrameworkModulePKg - Tiano/Framework Includes and Libraries
|
| 20 | Nt32Pkg - UEFI 2.1/PI 1.0 emulation environment for Windows
|
| 21 | FatBinPkg - Binaries built from the FatPkg
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 22 | EdkShellBinPkg - Binaries of full shell, minimum shell and commands
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 23 |
|
qhuang8 | f91b9b3 | 2007-07-02 06:10:56 +0000 | [diff] [blame] | 24 | Note:
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 25 | EdkShellBinPkg is supported to support both EDK II build and EDKII Prime
|
| 26 | build by having several module description files.
|
| 27 |
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 28 |
|
| 29 | -------------------------------------------------------------------------------
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 30 | The most recent version of the setup instructions is available on the EDK II
|
| 31 | web-site:
|
| 32 | https://edk2.tianocore.org/installation.html
|
| 33 |
|
| 34 |
|
| 35 | -------------------------------------------------------------------------------
|
| 36 | Quick Start (Windows Development Platform)
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 37 | -----------
|
| 38 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 39 | In a command prompt window, change to the top-level directory of the EDK II
|
| 40 | source.
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 41 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 42 | Note:
|
| 43 | The first time the edksetup script is executed, it creates three files in the
|
| 44 | %WORKSPACE%\Conf directory. The files: tools_def.txt, target.txt and
|
| 45 | build_rule.txt, are only created if they do not exist, if they exist, they
|
| 46 | are not touched.
|
| 47 |
|
| 48 | First, set up your project workspace. If you have previously initialized this
|
| 49 | WORKSPACE, and a newer version of the *.template files in
|
| 50 | WORKSPACE\BaseTools\Conf exists, remove the *.txt files in the WORKSPACE\Conf
|
| 51 | directory prior to running the edksetup script.
|
| 52 |
|
| 53 | For the reference build of the Nt32 Platform emulation environment, use the
|
| 54 | edksetup.bat option: --nt32. For building other platforms or modules, this
|
| 55 | option is not required, as Visual Studio standard includes, libraries and/or
|
| 56 | dlls are not required for normal development.
|
lhauch | 8014e7c | 2008-02-22 16:31:23 +0000 | [diff] [blame] | 57 |
|
| 58 | c:\MyWork\edk2\> edksetup --nt32
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 59 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 60 | The default tool chain (named MYTOOLS) is pre-configured to use VS2005 for IA32
|
| 61 | and X64 target architectures and the DDK for IPF target architectures. To use a
|
| 62 | different tool chain, either modify the tools_def.txt file's MYTOOLS entries,
|
| 63 | or modify the %WORKSPACE%\Conf\target.txt file's TOOL_CHAIN_TAG. The pre-defined
|
| 64 | tags are listed near the top of the %WORKSPACE%\Conf\tools_def.txt file, below
|
| 65 | the Supported Tool Chains comment.
|
| 66 | Alternatively, you may use the build command's -t option to specify a different
|
| 67 | tool chain tag name: build -t VS2003 ... , for example. Using this method will
|
| 68 | require that you always use the build command's -t option.
|
| 69 |
|
| 70 |
|
| 71 | Next, go to the module directory and begin to build. This example is for the
|
| 72 | HelloWorld application.
|
| 73 |
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 74 | c:\MyWork\edk2\> cd MdeModulePkg\Application\HelloWorld
|
| 75 | c:\MyWork\edk2\> build
|
| 76 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 77 | If you want to build the a module in another package (for example,
|
| 78 | MdePkg\Library\BaseLib\BaseLib.inf), please edit the file,
|
| 79 | %WORKSPACE%\Conf\Target.txt, first.
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 80 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 81 | Change the following line
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 82 | ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
|
| 83 | to
|
| 84 | ACTIVE_PLATFORM = MdePkg/MdePkg.dsc
|
| 85 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 86 | Then go to MdePkg\Library\BaseLib directory and type build:
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 87 | c:\MyWork\edk2\> cd MdePkg\Library\BaseLib
|
| 88 | c:\MyWork\edk2\> build
|
| 89 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 90 | If you want build a platform, ACTIVE_PLATFORM must be set to your desired
|
| 91 | platform dsc file, go to directory which must be not a module's directory, and
|
| 92 | run "build" command.
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 93 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 94 | Instead of changing Target.txt, you can specify platform, module and/or
|
| 95 | architecture on command line.
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 96 | For example, if you want to build NT32 platform, you can just type
|
| 97 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 98 | c:\MyWork\edk2\> build -p Nt32Pkg\Nt32Pkg.dsc -a IA32
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 99 |
|
| 100 | and if you want to build HelloWorld module, you can just type
|
| 101 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 102 | c:\MyWork\edk2\> build -p Nt32Pkg\Nt32Pkg.dsc -a IA32 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 103 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 104 | Other helpful command line options of build tool include "-v" and "-d".
|
| 105 | The "-v" option is used to turn on the verbose build, which provide more
|
| 106 | information during the build. "-d <debug level 0-9>" option is used to
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 107 | turn on the debug information which is helpful debugging build tools.
|
| 108 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 109 | For more information on build options, please try "build -h" on command line.
|
| 110 |
|
| 111 | Note:
|
| 112 | The Windows style help option "/?" is not a valid option for the build
|
| 113 | command.
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 114 |
|
| 115 |
|
| 116 | -------------------------------------------------------------------------------
|
| 117 | Supported build targets
|
| 118 | -----------------------
|
| 119 |
|
jwang36 | 0c71bc3 | 2007-09-03 06:11:35 +0000 | [diff] [blame] | 120 | all - Build whole platform or module. It can be ignored.
|
| 121 | genc - Generate AutoGen.c, AutoGen.h and <ModuleName>.depex files only.
|
| 122 | genmake - Generate makefiles in addition to files generated by "genc" target.
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 123 | clean - Clean intermediate files
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 124 | cleanall - Clean all generated files and directories during build, except the
|
| 125 | generated Makefile files (top level and module makefiles)
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 126 | cleanlib - Clean all generated files and directories during library build
|
jwang36 | 0c71bc3 | 2007-09-03 06:11:35 +0000 | [diff] [blame] | 127 | run - Launch NT32 shell (only valid for NT32 platform)
|
jwang36 | 183bc30 | 2007-07-19 01:43:29 +0000 | [diff] [blame] | 128 |
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 129 | -------------------------------------------------------------------------------
|
| 130 | Tools in Python
|
| 131 | ---------------
|
| 132 |
|
| 133 | * Run buld tool written in Python from source
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 134 | The build tool written in Python can be executed from its source directly as
|
| 135 | long as you have the Python interpreter (version 2.5) installed. The source
|
| 136 | of Python code is locating at:
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 137 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 138 | https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 139 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 140 | where:
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 141 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 142 | build/build.py - The entry tool of build tools
|
| 143 | AutoGen/AutoGen.py - Generate AutoGen.c/.h and makefile only
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 144 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 145 | "build.py" steps:
|
| 146 | 1. Run "edksetup.bat"
|
| 147 | 2. set PYTHONPATH to the local directory of above source
|
| 148 | (BaseTools/Source/Python)
|
| 149 | 3. Set ACTIVE_PLATFORM in WORKSPACE\Conf
|
| 150 | 4. Go to platform or module directory
|
| 151 | 5. Run "<python_interpreter.exe> <python_source_dir>/build/build.py" or
|
| 152 | "<python_source_dir>/build/build.py" directly.
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 153 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 154 | "AutoGen.py" steps:
|
| 155 | 1. Run "edksetup.bat"
|
| 156 | 2. set PYTHONPATH to the local directory of above source
|
| 157 | (BaseTools/Source/Python)
|
| 158 | 3. Set ACTIVE_PLATFORM in WORKSPACE\Conf
|
| 159 | 4. Run "<python_interpreter.exe> <python_source_dir>/AutoGen/AutoGen.py" or
|
| 160 | "<python_source_dir>/AutoGen/AutoGen.py"
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 161 |
|
| 162 | * Convert Python source to exe file
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 163 | The tools written in Python can be coverted into executable program which can
|
| 164 | be executed without Python interpreter. One of the conversion tools is called
|
| 165 | cx_Freeze, available at:
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 166 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 167 | http://sourceforge.net/projects/cx-freeze/
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 168 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 169 | If you have installed cx_Freeze at c:\cx_Freeze-3.0.3. Use the following
|
| 170 | command lines to convert MyBuild.py to a Windows executable.
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 171 |
|
jwang36 | 0c71bc3 | 2007-09-03 06:11:35 +0000 | [diff] [blame] | 172 | set PYTHONPATH=<buildtools>\BaseTools\Source\Python
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 173 | c:\cx_Freeze-3.0.3\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8 --install-dir=.\mybuild MyBuild.py
|
jwang36 | 11dd6c3 | 2007-06-27 02:16:16 +0000 | [diff] [blame] | 174 |
|
lhauch | 1f4c44a | 2008-05-15 16:14:56 +0000 | [diff] [blame^] | 175 | The generated .exe files are put in "mybuild" subdirectory.
|
vanjeff | e4d8dbc | 2007-06-25 11:16:31 +0000 | [diff] [blame] | 176 |
|