summaryrefslogtreecommitdiffstats
path: root/BaseTools/BuildNotes.txt
blob: 045e8fcf87065d619e05ca0ba1f1f0a80488158d (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
Intel(R) Platform Innovation Framework for EFI
BuildTools Project, BaseTools Sub-Project
Root Package 1.00
2007-08-31

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. All rights reserved.

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

Windows:
  a) Set the PYTHON_FREEZER_PATH to the cx_Freeze installation directory
  b) Go to the <buildtools_project>/BaseTools and run "toolsetup" script

Unix-like:
  a) make -C <buildtools_project>/BaseTools
  b) Look over https://edk2.tianocore.org/step-by-step-instructions.html
     for a helpful step-by-step guide for building 'Hello World' on
     various operating systems with edk2.

Supported build targets (toolsetup)
-----------------------------------

build(or none)  - Incremental Build of all C based tools. This is the default target
rebuild         - Clean all generated files and directories during build, and rebuild all tools

-------------------------------------------------------------------------------
Tools in Python
---------------
* Convert Python source to exe file

  The tools written in Python can be converted into executable program which can 
  be executed without installing a Python interpreter.  (Generally it is easier
  to run the scripts from their source on operating systems other than Windows.)

  For Windows and Linux, the conversion tool package is called cx_Freeze, its
  home page is:

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

	If you have installed cx_Freeze at c:\cx_Freeze-3.0.3. Use following command
  lines to convert MyBuild.py to MyBuild.exe (note this is an example, there is
  no MyBuild Python project in the BaseTools\Python tree.

    set PYTHONPATH=<BaseToolsDirPath>\Source\Python
  	c:\cx_Freeze-3.0.3\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_16_le,encodings.utf_8 --install-dir=.\mybuild MyBuild.py

	The generated .exe (and .dll) files are put in "mybuild" subdirectory.

  The following is a real example with the BuildTools/trunk/BaseTools project 
  installed in: C:\Work\BaseTools

  
  C:\Work\BaseTools\Source\Python> set PYTHONPATH=C:\Work\BaseTools\Source\Python
  C:\Work\BaseTools\Source\Python> c:\cx_Freeze-3.0.3\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_16_le,encodings.utf_8 --install-dir=C:\Work\BaseTools\Bin\Win32 build\build.py

---------------
* Execute tools written in Python without conversion

Unix-like systems:

The edk2/edksetup.sh script will setup everything which is needed to
run the scripts from their source.

Windows:

  The tools written in Python can be executed directly from its source directory
as long as the Python interpreter (Python 2.5) has been installed. Before the execution,
please make sure the environment variable PYTHONPATH is set to 

        <buildtools_project>/BaseTools/Source/Python

  There're five tools written in Python. The entrance file of each tool is listed
below.

      build               <buildtools_project>/BaseTools/Source/Python/build/build.py
      GenFds              <buildtools_project>/BaseTools/Source/Python/GenFds/GenFds.py
      Trim                <buildtools_project>/BaseTools/Source/Python/Trim/Trim.py
      MigrationMsa2Inf    <buildtools_project>/BaseTools/Source/Python/MigrationMsa2Inf/MigrationMsa2Inf.py
      UPT                 <buildtools_project>/BaseTools/Source/Python/UPT/UPT.py