Check in implementation in GNU assembly for Thunk16.S in BaseLib.
[people/mcb30/edk2.git] / www / installation.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
2 <HTML>\r
3 <HEAD>\r
4         <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">\r
5         <TITLE>EDK II Installation Guide</TITLE>\r
6         <META NAME="GENERATOR" CONTENT="OpenOffice.org 2.0  (Win32)">\r
7         <META NAME="CREATED" CONTENT="20060512;12074440">\r
8         <META NAME="CHANGEDBY" CONTENT="Larry Hauch">\r
9         <META NAME="CHANGED" CONTENT="20071022;14380303">\r
10         <STYLE TYPE="text/css">\r
11         <!--\r
12                 H2.heading-2 { font-family: tahoma, verdana, sans-serif; color="GRAY"; font-size: 18pt; }\r
13                 H3.heading-3 { font-size: 16pt; font-variant: small-caps; }\r
14         -->\r
15         </STYLE>\r
16 </HEAD>\r
17 <BODY LANG="en-US" DIR="LTR">\r
18 <H1>Getting and Installing the Required Tools for Building EDK II</H1>\r
19 <H2 CLASS="heading-2">Table of Contents<A NAME="TOP"></A></H2>\r
20 <UL>\r
21         <LI><A HREF="#Requirements">Requirements</A></LI>\r
22         <LI><A HREF="#3rdPartyTools">Third Party Tools</A></LI>\r
23         <LI><A HREF="#Install">Installation & Configuration</A></LI>\r
24         <LI><A HREF="#EnvVars">Environment Variables</A></LI>\r
25         <LI><A HREF="#FirstBuild">First Build</A></LI>\r
26 </UL>\r
27 \r
28 <P><BR></P>\r
29 <H2 CLASS="heading-2"><A NAME="Requirements"></A>Requirements</H2>\r
30 <DIV ID="requirements" DIR="LTR"><A NAME="requirements_table"></A>\r
31   <UL>\r
32     <LI>An IA32 or X64 based development workstation (IPF workstations are not supported)</LI>\r
33     <LI>Microsoft Windows XP or Vista, Apple Mac OS/X (10.4 or later) or Linux operating system</LI>\r
34     <LI>Disk space for compiler tools</LI>\r
35     <LI>Minimum of 1GB of disk space for edk2 development tree and output files</LI>\r
36     <LI>Minimum of 512MB (1GB recommended) of system memory </LI>\r
37   </UL>\r
38   <P>The one of the following is required to be able to obtain the EDK II.</P>\r
39         <TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0>\r
40                 <TR>\r
41                         <TH>\r
42                                 <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">Name</FONT></P>\r
43                         </TH>\r
44                         <TH>\r
45                                 <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">Version</FONT></P>\r
46                         </TH>\r
47                         <TH>\r
48                                 <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">URL</FONT></P>\r
49                         </TH>\r
50                 </TR>\r
51                 <TR>\r
52                         <TD>\r
53                                 <P ALIGN=CENTER><B>TortoiseSVN</B></P>\r
54                         </TD>\r
55                         <TD>\r
56                                 <P ALIGN=CENTER><B>1.4.5</B></P>\r
57                         </TD>\r
58                         <TD>\r
59                                 <P ALIGN=CENTER><A HREF="http://tortoisesvn.net/downloads">http://tortoisesvn.net/downloads</A></P>\r
60                         </TD>\r
61                 </TR>\r
62                 <TR>\r
63                         <TD>\r
64                                 <P ALIGN=CENTER><B>Windows SVN Command Line Tool</B></P>\r
65                         </TD>\r
66                         <TD>\r
67                                 <P ALIGN=CENTER><B>1.4.5</B></P>\r
68                         </TD>\r
69                         <TD>\r
70                                 <P ALIGN=CENTER><A HREF="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91">http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91</A></P>\r
71                         </TD>\r
72                 </TR>\r
73 \r
74                 <TR>\r
75                         <TD>\r
76                                 <P ALIGN=CENTER><B>Mac OS/X SVN Command Line Tool</B></P>\r
77                         </TD>\r
78                         <TD>\r
79                                 <P ALIGN=CENTER><B>1.4.4</B></P>\r
80                         </TD>\r
81                         <TD>\r
82                                 <P ALIGN=CENTER><A HREF="http://downloads.open.collab.net/binaries.html">http://downloads.open.collab.net/binaries.html</A></P>\r
83                         </TD>\r
84                 </TR>\r
85 \r
86                 <TR>\r
87                         <TD>\r
88                                 <P ALIGN=CENTER><B>Linux SVN Command Line Tool</B></P>\r
89                         </TD>\r
90                         <TD>\r
91                                 <P ALIGN=CENTER><B>1.4.5</B></P>\r
92                         </TD>\r
93                         <TD>\r
94                                 <P ALIGN=CENTER><A HREF="http://subversion.tigris.org/project_packages.html">http://subversion.tigris.org/project_packages.html</A></P>\r
95                         </TD>\r
96                 </TR>\r
97 \r
98     <!-- Removed ANT/JAVA information -->\r
99 \r
100         </TABLE>\r
101   <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
102 \r
103         <P><BR></P>\r
104   <H2 CLASS="heading-2"><A NAME="3rdPartyTools"></A>Third Party Tools</H2>\r
105         <P>The following tools are optional (at least one 3<sup>rd</sup> party compiler tool chain is required):</P>\r
106         <DIV ID="Section1" DIR="LTR">\r
107                 <TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0>\r
108                         <TR>\r
109                                 <TH>\r
110                                         <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">Name</FONT></P>\r
111                                 </TH>\r
112                                 <TH>\r
113                                         <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">Version</FONT></P>\r
114                                 </TH>\r
115                                 <TH>\r
116                                         <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">URL</FONT></P>\r
117                                 </TH>\r
118                         </TR>\r
119                         <TR>\r
120                                 <TD>\r
121                                         <P ALIGN=CENTER><B>Cygwin</B><sup>1</sup></P>\r
122                                 </TD>\r
123                                 <TD>\r
124                                         <P ALIGN=CENTER><B>Current</B></P>\r
125                                 </TD>\r
126                                 <TD>\r
127                                         <P ALIGN=CENTER><A HREF="http://www.cygwin.com/">http://www.cygwin.com</A>\r
128           </P>\r
129                                 </TD>\r
130                         </TR>\r
131                         <TR>\r
132                                 <TD>\r
133                                         <P ALIGN=CENTER><B>Microsoft Visual Studio</B><sup>2</sup></P>\r
134                                 </TD>\r
135                                 <TD>\r
136                                         <P ALIGN=CENTER><B>2005 Professional</B>\r
137                                         </P>\r
138                                 </TD>\r
139                                 <TD>\r
140                                         <P ALIGN=CENTER><A HREF="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">http://msdn2.microsoft.com/en-us/vstudio</A></P>\r
141                                 </TD>\r
142                         </TR>\r
143                         <TR>\r
144                                 <TD>\r
145                                         <P ALIGN=CENTER><B>Microsoft Visual Studio</B><sup>3</sup></P>\r
146                                 </TD>\r
147                                 <TD>\r
148                                         <P ALIGN=CENTER><B>2005 Team Suite</B>\r
149                                         </P>\r
150                                 </TD>\r
151                                 <TD>\r
152                                         <P ALIGN=CENTER><A HREF="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">http://msdn2.microsoft.com/en-us/vstudio</A></P>\r
153                                 </TD>\r
154                         </TR>\r
155                         <TR>\r
156                                 <TD>\r
157                                         <P ALIGN=CENTER><B>Microsoft Visual Studio</B><sup>4</sup></P>\r
158                                 </TD>\r
159                                 <TD>\r
160                                         <P ALIGN=CENTER><B>2003 .NET</B>\r
161                                         </P>\r
162                                 </TD>\r
163                                 <TD>\r
164                                         <P ALIGN=CENTER><A HREF="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">http://msdn2.microsoft.com/en-us/vstudio</A></P>\r
165                                 </TD>\r
166                         </TR>\r
167                         <TR>\r
168                                 <TD>\r
169                                         <P ALIGN=CENTER><B>Intel C++ Compiler for Windows</B><sup>5></sup></P>\r
170                                 </TD>\r
171                                 <TD>\r
172                                         <P ALIGN=CENTER><B>9.1</B>\r
173                                         </P>\r
174                                 </TD>\r
175                                 <TD>\r
176                                         <P ALIGN=CENTER><A HREF="http://www.intel.com/">http://www.intel.com</A></P>\r
177                                 </TD>\r
178                         </TR>\r
179                         <TR>\r
180                                 <TD>\r
181                                         <P ALIGN=CENTER><B>Intel C Compiler for EFI Byte Code</B></P>\r
182                                 </TD>\r
183                                 <TD>\r
184                                         <P ALIGN=CENTER><B>1.2</B></P>\r
185                                 </TD>\r
186                                 <TD>\r
187                                         <P ALIGN=CENTER><A HREF="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/efibc/index.htm">http://www.intel.com/cd/software/products</A><BR><A HREF="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/efibc/index.htm">/asmo-na/eng/compilers/efibc/index.htm</A></P>\r
188                                 </TD>\r
189                         </TR>\r
190                         <TR>\r
191                                 <TD>\r
192                                         <P ALIGN=CENTER><B>Microsoft Driver Development Kit</B><sup>6</sup><B> (DDK)</B></P>\r
193                                 </TD>\r
194                                 <TD>\r
195                                         <P ALIGN=CENTER><B>3790.1830</B></P>\r
196                                 </TD>\r
197                                 <TD>\r
198                                         <P ALIGN=CENTER><A HREF="http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.mspx">http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.mspx</A></P>\r
199                                 </TD>\r
200                         </TR>\r
201                         <TR>\r
202                                 <TD>\r
203                                         <P ALIGN=CENTER><B>Microsoft ACPI Source Language Assembler</B></P>\r
204                                 </TD>\r
205                                 <TD>\r
206                                         <P ALIGN=CENTER><B>3.0.0NT or later</B></P>\r
207                                 </TD>\r
208                                 <TD>\r
209                                         <P ALIGN=CENTER><A HREF="http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx">\r
210               http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx</A></P>\r
211                                 </TD>\r
212                         </TR>\r
213                         <TR>\r
214                                 <TD>\r
215                                         <P ALIGN=CENTER><B>Intel ACPI Component Architecture</B></P>\r
216                                 </TD>\r
217                                 <TD>\r
218                                         <P ALIGN=CENTER><B>20060113 or later</B></P>\r
219                                 </TD>\r
220                                 <TD>\r
221                                         <P ALIGN=CENTER><A HREF="http://www.intel.com/technology/iapc/acpi/downloads.htm">http://www.intel.com/technology/iapc/acpi/downloads.htm</A></P>\r
222                                 </TD>\r
223                         </TR>\r
224       <TR>\r
225       </TR>\r
226                 </TABLE>\r
227     <BR>\r
228     <P ALIGN=LEFT>\r
229           <FONT SIZE="2"><sup>1</sup>&nbsp;Instructions for installation of GCC are included in the BaseTools\gcc directory.</FONT><BR>\r
230           <FONT SIZE="2"><sup>2</sup>&nbsp;The default tool chain for the IA32 and X64 builds.</FONT><BR>\r
231           <FONT SIZE="2"><sup>3</sup>&nbsp;Needed for building IPF targets if the DDK is not installed.</FONT><BR>\r
232           <FONT SIZE="2"><sup>4</sup>&nbsp;May only be available through a MSDN subscription.</FONT><BR>\r
233           <FONT SIZE="2"><sup>5</sup>&nbsp;The Intel Compiler requires a Microsoft Visual Studio installation.</FONT><BR>\r
234           <FONT SIZE="2"><sup>6</sup>&nbsp;The default tool chain for IPF builds.</FONT>\r
235     </P>\r
236     <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
237 \r
238           <P><BR></P>\r
239                 <H2 CLASS="heading-2"><A NAME="Install"></A>Install and Configure Tools on Windows XP or Windows Vista</H2>\r
240                 <H3 CLASS="heading-3">Software Installation Order</H3>\r
241                 <P>After installing the compiler tools and your Subversion client,\r
242                 download the edk2, read the BuildNotes2.txt file and you will be\r
243     ready to build an image.</P> \r
244     <P>All builds are started from a command prompt window.</P>\r
245     <H3 CLASS="heading-3">Cygwin</H3>\r
246                 <P>If you optionally install cygwin (for gcc support) you should\r
247                 install it in &quot;Unix&quot; mode. The gcc tool chain will not\r
248                 compile in &quot;DOS&quot; mode.</P>\r
249 \r
250     <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
251                 <H2 CLASS="heading-2"><A NAME="EnvVars"></A>Environment Variables</H2>\r
252                 <P>Environment variables are <B>case sensitive</B>. You must use\r
253                 the exact case as in the examples of this document. Even though\r
254                 windows does not care about case, other operating systems that\r
255     are supported do care about case.<BR><BR>You need to set\r
256                 WORKSPACE to the location of the edk2 directory that you pulled\r
257                 from Subversion. For example:</P>\r
258                 <P><FONT STYLE="margin-bottom: 0.2in;" FACE="courier, 'courier new', monospace" color="#771100">set WORKSPACE=c:\workspace\edk2</FONT><P>\r
259                 It is recommended that you wrap up all the environment variables\r
260                 above into a script that you can launch each time you begin to do\r
261                 development in your EDK II workspace.</P>\r
262 \r
263     <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
264                 <H2 CLASS="heading-2"><A NAME="FirstBuild"></A>First Build</H2>\r
265                 <P>You will need to edit the text file, tools_def.txt which is created\r
266     the first time you run the edksetup script<sup>7</sup>.  The file is located\r
267                 in the %WORKSPACE%\Conf directory. This file contains the names of the\r
268                 compiler tool chains and the location of the compiler binaries. It\r
269                 has been pre-populated with the standard location for the Microsoft\r
270                 tool chains and includes the standard location of the Intel C\r
271                 Compiler for EFI Byte Code (EBC).</P>\r
272                 <P>Once the external tools are installed and the environment variables\r
273                 are set, you can try a build.\r
274     </P>\r
275                 <OL>\r
276                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>cd %WORKSPACE%</FONT>\r
277                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>edksetup.bat --nt32 newbuild</FONT>\r
278       <UL>This will set the PATH to point to the directory containing the \r
279       Win32 binaries of the EDK II tools used in edk2 development. It will\r
280                         fail if the external tools above are not properly installed.<BR>\r
281                         Using the --nt32 switch will run &quot;%VS80COMNTOOLS%\vsvars32&quot; (VS2005) or \r
282       &quot;%VS71COMNTOOLS%\vsvars32&quot; (VS2003.NET) to setup standard C FLAGS, \r
283       Library and Include locations to build the Nt32 emulation environment.<BR>\r
284       <B>Note:</B> If you do not want to build the Nt32 emulation environment, you do not\r
285       need to use the --nt32 switch or run vsvars32.bat.</UL>\r
286       <LI><FONT STYLE="margin-bottom: 0in">Modify Conf/tools_def.txt<sup>8</sup></LI></FONT>\r
287                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>cd Nt32Pkg</FONT>\r
288                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>build</FONT>\r
289       <P>The default build output directory is: %WORKSPACE%\Build\NT32\DEBUG_MYTOOLS\ </P>\r
290                 </OL>\r
291         </DIV>\r
292   <P><FONT SIZE="2"><sup>7</sup>&nbsp;The first time the edksetup script is executed, it\r
293   creates three files in the %WORKSPACE%\Conf directory.  The files tools_def.txt, target.txt and\r
294   build_rule.txt are only created if they do not exist, if they exist, then they are \r
295   not touched.</FONT><BR>\r
296   <FONT SIZE="2"><sup>8</sup>&nbsp;The tools_def.txt file only needs to be modified the\r
297   first time, or if you modify the location of the 3<sup>rd</sup> party tool chains after\r
298   having setup the file.</FONT></P>\r
299   <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
300 </DIV>\r
301 </BODY>\r
302 </HTML>\r