Merged in the bug fixes from EDK I.
[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> 3<sup>rd</sup>Party Tools must include: a C pre-processor, C compiler, static linker, dynamic linker,\r
106         and an assembler and assembly linker.  For creating ACPI tables required by platforms, an ACPI assembler\r
107         is also required.</P>\r
108         <P>The compiler tool chains are not provided as part of EDK II.  Before purchasing a compiler tool chain,\r
109         make sure to review the End User License Agreement (EULA) that comes with the software to ensure that \r
110         creating EFI firmware and applications (for commercial purposes) for the target architecture is permitted.</P>\r
111         <P>At least one of the following 3<sup>rd</sup> party compiler tool chain is required:</P>\r
112         <DIV ID="Section1" DIR="LTR">\r
113                 <TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0>\r
114                         <TR>\r
115                                 <TH>\r
116                                         <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">Name</FONT></P>\r
117                                 </TH>\r
118                                 <TH>\r
119                                         <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">Version</FONT></P>\r
120                                 </TH>\r
121                                 <TH>\r
122                                         <P STYLE="border: none; padding: 0in"><FONT COLOR="#ffffff">URL</FONT></P>\r
123                                 </TH>\r
124                         </TR>\r
125                         <TR>\r
126                                 <TD>\r
127                                         <P ALIGN=CENTER><B>Cygwin</B><sup>1</sup></P>\r
128                                 </TD>\r
129                                 <TD>\r
130                                         <P ALIGN=CENTER><B>4.1.2</B></P>\r
131                                 </TD>\r
132                                 <TD>\r
133                                         <P ALIGN=CENTER><A HREF="http://www.cygwin.com/">http://www.cygwin.com</A>\r
134           </P>\r
135                                 </TD>\r
136                         </TR>\r
137                         <TR>\r
138                                 <TD>\r
139                                         <P ALIGN=CENTER><B>Microsoft Visual Studio</B><sup>2</sup></P>\r
140                                 </TD>\r
141                                 <TD>\r
142                                         <P ALIGN=CENTER><B>2005 Professional</B>\r
143                                         </P>\r
144                                 </TD>\r
145                                 <TD>\r
146                                         <P ALIGN=CENTER><A HREF="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">http://msdn2.microsoft.com/en-us/vstudio</A></P>\r
147                                 </TD>\r
148                         </TR>\r
149                         <TR>\r
150                                 <TD>\r
151                                         <P ALIGN=CENTER><B>Microsoft Visual Studio</B><sup>3</sup></P>\r
152                                 </TD>\r
153                                 <TD>\r
154                                         <P ALIGN=CENTER><B>2005 Team Suite</B>\r
155                                         </P>\r
156                                 </TD>\r
157                                 <TD>\r
158                                         <P ALIGN=CENTER><A HREF="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">http://msdn2.microsoft.com/en-us/vstudio</A></P>\r
159                                 </TD>\r
160                         </TR>\r
161                         <TR>\r
162                                 <TD>\r
163                                         <P ALIGN=CENTER><B>Microsoft Visual Studio</B><sup>4</sup></P>\r
164                                 </TD>\r
165                                 <TD>\r
166                                         <P ALIGN=CENTER><B>2003 .NET</B>\r
167                                         </P>\r
168                                 </TD>\r
169                                 <TD>\r
170                                         <P ALIGN=CENTER><A HREF="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">http://msdn2.microsoft.com/en-us/vstudio</A></P>\r
171                                 </TD>\r
172                         </TR>\r
173                         <TR>\r
174                                 <TD>\r
175                                         <P ALIGN=CENTER><B>Intel C++ Compiler for Windows</B><sup>5></sup></P>\r
176                                 </TD>\r
177                                 <TD>\r
178                                         <P ALIGN=CENTER><B>9.1</B>\r
179                                         </P>\r
180                                 </TD>\r
181                                 <TD>\r
182                                         <P ALIGN=CENTER><A HREF="http://www.intel.com/">http://www.intel.com</A></P>\r
183                                 </TD>\r
184                         </TR>\r
185                         <TR>\r
186                                 <TD>\r
187                                         <P ALIGN=CENTER><B>Intel C Compiler for EFI Byte Code</B></P>\r
188                                 </TD>\r
189                                 <TD>\r
190                                         <P ALIGN=CENTER><B>1.2</B></P>\r
191                                 </TD>\r
192                                 <TD>\r
193                                         <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
194                                 </TD>\r
195                         </TR>\r
196                         <TR>\r
197                                 <TD>\r
198                                         <P ALIGN=CENTER><B>Microsoft Windows Driver Development Kit</B><sup>6</sup><B> (DDK)</B></P>\r
199                                 </TD>\r
200                                 <TD>\r
201                                         <P ALIGN=CENTER><B>3790.1830</B></P>\r
202                                 </TD>\r
203                                 <TD>\r
204                                         <P ALIGN=CENTER><A HREF=" http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/1830_usa_ddk.iso">Windows Server 2003 SP1 DDK</A></P>\r
205                                 </TD>\r
206                         </TR>\r
207                         <TR>\r
208                                 <TD>\r
209                                         <P ALIGN=CENTER><B>Microsoft ACPI Source Language Assembler</B></P>\r
210                                 </TD>\r
211                                 <TD>\r
212                                         <P ALIGN=CENTER><B>3.0.0NT or later</B></P>\r
213                                 </TD>\r
214                                 <TD>\r
215                                         <P ALIGN=CENTER><A HREF="http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx">\r
216               http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx</A></P>\r
217                                 </TD>\r
218                         </TR>\r
219                         <TR>\r
220                                 <TD>\r
221                                         <P ALIGN=CENTER><B>Intel ACPI Component Architecture</B></P>\r
222                                 </TD>\r
223                                 <TD>\r
224                                         <P ALIGN=CENTER><B>20060113 or later</B></P>\r
225                                 </TD>\r
226                                 <TD>\r
227                                         <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
228                                 </TD>\r
229                         </TR>\r
230       <TR>\r
231       </TR>\r
232                 </TABLE>\r
233     <P>________________________</P>\r
234     <P ALIGN=LEFT>\r
235           <FONT SIZE="2"><sup>1</sup>&nbsp;Instructions for installation of GCC are included in the BaseTools\gcc directory.</FONT><BR>\r
236           <FONT SIZE="2"><sup>2</sup>&nbsp;The default tool chain for the IA32 and X64 builds.</FONT><BR>\r
237           <FONT SIZE="2"><sup>3</sup>&nbsp;Needed for building IPF targets if the DDK is not installed.</FONT><BR>\r
238           <FONT SIZE="2"><sup>4</sup>&nbsp;May only be available through a MSDN subscription. If the DDK is not available, MASM 6.15 can be used for the assembler.</FONT><BR>\r
239           <FONT SIZE="2"><sup>5</sup>&nbsp;The Intel Compiler requires a Microsoft Visual Studio installation.</FONT><BR>\r
240           <FONT SIZE="2"><sup>6</sup>&nbsp;The default tool chain for IPF builds. To download and use the DDK, you must burn the ISO file to a CD or DVD.</FONT>\r
241     </P>\r
242     <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
243 \r
244           <P><BR></P>\r
245                 <H2 CLASS="heading-2"><A NAME="Install"></A>Install and Configure Tools on Windows XP or Windows Vista</H2>\r
246                 <H3 CLASS="heading-3">Software Installation Order</H3>\r
247                 <P>After installing the compiler tools and your Subversion client,\r
248                 download the edk2, read the BuildNotes2.txt file and you will be\r
249     ready to build an image.</P> \r
250     <P>All builds are started from a command prompt window.</P>\r
251     <H3 CLASS="heading-3">Cygwin</H3>\r
252                 <P>If you optionally install cygwin (for gcc support) you should\r
253                 install it in &quot;Unix&quot; mode. The gcc tool chain will not\r
254                 compile in &quot;DOS&quot; mode.</P>\r
255 \r
256     <P>________________________</P>\r
257     <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
258                 <H2 CLASS="heading-2"><A NAME="EnvVars"></A>Environment Variables</H2>\r
259                 <P>Environment variables are <B>case sensitive</B>. You must use\r
260                 the exact case as in the examples of this document. Even though\r
261                 windows does not care about case, other operating systems that\r
262     are supported do care about case.<BR><BR>You need to set\r
263                 WORKSPACE to the location of the edk2 directory that you pulled\r
264                 from Subversion. For example:</P>\r
265                 <P><FONT STYLE="margin-bottom: 0.2in;" FACE="courier, 'courier new', monospace" color="#771100">set WORKSPACE=c:\workspace\edk2</FONT><P>\r
266                 It is recommended that you wrap up all the environment variables\r
267                 above into a script that you can launch each time you begin to do\r
268                 development in your EDK II workspace.</P>\r
269 \r
270     <P>________________________</P>\r
271     <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
272                 <H2 CLASS="heading-2"><A NAME="FirstBuild"></A>First Build</H2>\r
273                 <P>You will need to edit the text file, tools_def.txt which is created\r
274     the first time you run the edksetup script<sup>7</sup>.  The file is located\r
275                 in the %WORKSPACE%\Conf directory. This file contains the names of the\r
276                 compiler tool chains and the location of the compiler binaries. It\r
277                 has been pre-populated with the standard location for the Microsoft\r
278                 tool chains and includes the standard location of the Intel C\r
279                 Compiler for EFI Byte Code (EBC).</P>\r
280     <P>The default tool chain (named MYTOOLS) is pre-configured to use VS2005 for\r
281     IA32 and X64 target architectures and the DDK for IPF target architectures.\r
282     To use a different tool chain, either modify the tools_def.txt file's MYTOOLS\r
283     entries, or modify the %WORKSPACE%\Conf\target.txt file's TOOL_CHAIN_TAG.</P>\r
284                 <P>Once the external tools are installed and the environment variables\r
285                 are set, you can try a build.\r
286     </P>\r
287                 <OL>\r
288                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>cd %WORKSPACE%</FONT>\r
289                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>edksetup.bat --nt32</FONT>\r
290       <UL>This will set the PATH to point to the directory containing the \r
291       Win32 binaries of the EDK II tools used in edk2 development. It will\r
292                         fail if the external tools above are not properly installed.<BR>\r
293                         Using the --nt32 switch will run &quot;%VS80COMNTOOLS%\vsvars32&quot; (VS2005) or \r
294       &quot;%VS71COMNTOOLS%\vsvars32&quot; (VS2003 .NET) to setup standard C FLAGS, \r
295       Library and Include locations to build the Nt32 emulation environment.<BR>\r
296       <B>Note:</B> If you do not want to build the Nt32 emulation environment, you do not\r
297       need to use the --nt32 switch or run vsvars32.bat.</UL>\r
298       <LI><FONT STYLE="margin-bottom: 0in">Modify Conf/tools_def.txt<sup>8</sup></LI></FONT>\r
299                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>cd Nt32Pkg</FONT>\r
300                         <LI><FONT STYLE="margin-bottom: 0in;" FACE="courier, 'courier new', monospace" color='#771100'>build</FONT>\r
301       <P>The default build output directory is: %WORKSPACE%\Build\NT32\DEBUG_MYTOOLS\ </P>\r
302                 </OL>\r
303         </DIV>\r
304   <P>________________________</P>\r
305   <P><FONT SIZE="2"><sup>7</sup>&nbsp;The first time the edksetup script is executed, it\r
306   creates three files in the %WORKSPACE%\Conf directory.  The files tools_def.txt, target.txt and\r
307   build_rule.txt are only created if they do not exist, if they exist, then they are \r
308   not touched.</FONT><BR>\r
309   <FONT SIZE="2"><sup>8</sup>&nbsp;The tools_def.txt file only needs to be modified the\r
310   first time, or if you modify the location of the 3<sup>rd</sup> party tool chains after\r
311   having setup the file.</FONT></P>\r
312   <P><A HREF="#Top"><IMG SRC="top_arrow.jpg" BORDER="0"></A>&nbsp;<A HREF="#Top">Back to Top</A></P>\r
313 </DIV>\r
314 </BODY>\r
315 </HTML>\r