summaryrefslogtreecommitdiff
path: root/BuildNotes2.txt
blob: ffec64462ddc4f35e9ae33197dc38871ca19a040 (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
Intel(R) Platform Innovation Framework for EFI
EFI Development Kit II Prime (EDK II Prime)
Root Package 1.00
2007-06-25

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, Intel Corporation

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 commonds(to be added)

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

-------------------------------------------------------------------------------
Quick Start
-----------

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

First, set up your workspace. If you have had a setup, please make sure that
you don't have newer *.template in WORKSPACE\BaseTools\Conf. Otherwise remove
*.txt files in WORKSPACE\Conf in advance.
    c:\MyWork\edk2\> edksetup newbuild

Second, go to the module directory (For example, MdeModulePkg\Application\HelloWorld),
and then begin to build
    c:\MyWork\edk2\> cd MdeModulePkg\Application\HelloWorld
    c:\MyWork\edk2\> build

If you want to build the modules in other packages
(For example, MdePkg\Library\BaseLib\BaseLib.inf), please edit open the <WORKSPACE>\Conf\Target.txt first,

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

and then go to MdePkg\Library\BaseLib directory and 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". "-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 that "/?" is not working.


-------------------------------------------------------------------------------
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 Makefile
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 newbuild"
        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 newbuild"
        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 convertion tools is called cx_Freeze at 

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

	Suppose you have installed cx_Freeze at c:\cx_Freeze-3.0.3. Use following command line to convert MyBuild.py

    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.