summaryrefslogtreecommitdiffstats
path: root/BuildNotes2.txt
blob: 78bbf5f0f0d5b2605387263a5a413d103c0f1dcf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
Intel(R) Platform Innovation Framework for EFI
EFI Development Kit II Prime (EDK II Prime)
Root Package 1.00
2008-05-15

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) 2007 - 2008, Intel Corporation  All rights reserved.

EDK II Prime packages are in the development phase. They consist of:

  BuildNotes2.txt         - The build notes for this package
  MdePkg                  - Industry-standard headers and libraries
  BaseTools               - Build -specific tools that are designed to help the
                            developer create and modify drivers and libraries
  IntelFrameworkPkg       - Tiano/Framework Includes and Libraries
  MdeModulePkg            - UEFI 2.1/PI 1.0 compliant modules
  IntelFrameworkModulePKg - Tiano/Framework Includes and Libraries
  Nt32Pkg                 - UEFI 2.1/PI 1.0 emulation environment for Windows
  FatBinPkg               - Binaries built from the FatPkg 
  EdkShellBinPkg          - Binaries of full shell, minimum shell and commands

Note:
  EdkShellBinPkg is supported to support both EDK II build and EDKII Prime
  build by having several module description files.


-------------------------------------------------------------------------------
The most recent version of the setup instructions is available on the EDK II
web-site:
  https://edk2.tianocore.org/installation.html


-------------------------------------------------------------------------------
Quick Start (Windows Development Platform)
-----------

In a command prompt window, change to the top-level directory of the EDK II 
source.

Note:
  The first time the edksetup script is executed, it creates three files in the
  %WORKSPACE%\Conf directory. The files: tools_def.txt, target.txt and
  build_rule.txt, are only created if they do not exist, if they exist, they
  are not touched.

First, set up your project workspace. If you have previously initialized this
WORKSPACE, and a newer version of the *.template files in
WORKSPACE\BaseTools\Conf exists, remove the *.txt files in the WORKSPACE\Conf
directory prior to running the edksetup script.

For the reference build of the Nt32 Platform emulation environment, use the 
edksetup.bat option: --nt32. For building other platforms or modules, this
option is not required, as Visual Studio standard includes, libraries and/or
dlls are not required for normal development.

    c:\MyWork\edk2\> edksetup --nt32

The default tool chain (named MYTOOLS) is pre-configured to use VS2005 for IA32
and X64 target architectures and the DDK for IPF target architectures. To use a
different tool chain, either modify the tools_def.txt file's MYTOOLS entries,
or modify the %WORKSPACE%\Conf\target.txt file's TOOL_CHAIN_TAG. The pre-defined
tags are listed near the top of the %WORKSPACE%\Conf\tools_def.txt file, below
the Supported Tool Chains comment.
Alternatively, you may use the build command's -t option to specify a different
tool chain tag name: build -t VS2003 ... , for example.  Using this method will
require that you always use the build command's -t option.


Next, go to the module directory and begin to build.  This example is for the
HelloWorld application.

    c:\MyWork\edk2\> cd MdeModulePkg\Application\HelloWorld
    c:\MyWork\edk2\> build

If you want to build the a module in another package (for example, 
MdePkg\Library\BaseLib\BaseLib.inf), please edit the file,
%WORKSPACE%\Conf\Target.txt, first.

Change the following line
    ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
to
    ACTIVE_PLATFORM       = MdePkg/MdePkg.dsc

Then go to MdePkg\Library\BaseLib directory and type build:
    c:\MyWork\edk2\> cd MdePkg\Library\BaseLib
    c:\MyWork\edk2\> build

If you want build a platform, ACTIVE_PLATFORM must be set to your desired
platform dsc file, go to directory which must be not a module's directory, and
run "build" command.

Instead of changing Target.txt, you can specify platform, module and/or
architecture on command line.
For example, if you want to build NT32 platform, you can just type 

    c:\MyWork\edk2\> build -p Nt32Pkg\Nt32Pkg.dsc -a IA32

and if you want to build HelloWorld module, you can just type

    c:\MyWork\edk2\> build -p Nt32Pkg\Nt32Pkg.dsc -a IA32 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf

Other helpful command line options of build tool include "-v" and "-d".
The "-v" option is used to turn on the verbose build, which provide more
information during the build. "-d <debug level 0-9>" option is used to
turn on the debug information which is helpful debugging build tools.

For more information on build options, please try "build -h" on command line.

Note:
  The Windows style help option "/?" is not a valid option for the build
  command.


-------------------------------------------------------------------------------
Supported build targets
-----------------------

all       - Build whole platform or module. It can be ignored.
genc      - Generate AutoGen.c, AutoGen.h and <ModuleName>.depex files only.
genmake   - Generate makefiles in addition to files generated by "genc" target.
clean     - Clean intermediate files
cleanall  - Clean all generated files and directories during build, except the
            generated Makefile files (top level and module makefiles)
cleanlib  - Clean all generated files and directories during library build
run       - Launch NT32 shell (only valid for NT32 platform)

-------------------------------------------------------------------------------
Tools in Python
---------------

* Run buld tool written in Python from source
  The build tool written in Python can be executed from its source directly as
  long as you have the Python interpreter (version 2.5) installed. The source
  of Python code is locating at:

    https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python

  where:

    build/build.py      - The entry tool of build tools
    AutoGen/AutoGen.py  - Generate AutoGen.c/.h and makefile only

  "build.py" steps:
    1. Run "edksetup.bat"
    2. set PYTHONPATH to the local directory of above source
       (BaseTools/Source/Python)
    3. Set ACTIVE_PLATFORM in WORKSPACE\Conf
    4. Go to platform or module directory
    5. Run "<python_interpreter.exe> <python_source_dir>/build/build.py" or
       "<python_source_dir>/build/build.py" directly.

  "AutoGen.py" steps:
    1. Run "edksetup.bat"
    2. set PYTHONPATH to the local directory of above source
       (BaseTools/Source/Python)
    3. Set ACTIVE_PLATFORM in WORKSPACE\Conf
    4. Run "<python_interpreter.exe> <python_source_dir>/AutoGen/AutoGen.py" or
       "<python_source_dir>/AutoGen/AutoGen.py"

* Convert Python source to exe file
  The tools written in Python can be coverted into executable program which can
  be executed without Python interpreter. One of the conversion tools is called
  cx_Freeze, available at: 

    http://sourceforge.net/projects/cx-freeze/

  If you have installed cx_Freeze at c:\cx_Freeze-3.0.3. Use the following
  command lines to convert MyBuild.py to a Windows executable.

    set PYTHONPATH=<buildtools>\BaseTools\Source\Python
    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

  The generated .exe files are put in "mybuild" subdirectory.