Home | History | Annotate | Download | only in edk2
      1 Intel(R) Platform Innovation Framework for EFI
      2 EFI Development Kit II (EDK II)
      3 2011-12-14
      4 
      5 Intel is a trademark or registered trademark of Intel Corporation or its
      6 subsidiaries in the United States and other countries.
      7 * Other names and brands may be claimed as the property of others.
      8 Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.
      9 
     10 EDK II packages can be gathered from the following address:
     11   https://github.com/tianocore/edk2.git
     12 
     13 The detailed introduction of these packages can be found in each package
     14 description file. (The *.dec file under the package directory)
     15 
     16 
     17 -------------------------------------------------------------------------------
     18 The most recent version of the setup instructions is available on the EDK II
     19 web-site:
     20   https://github.com/tianocore/tianocore.github.io/wiki/Getting%20Started%20with%20EDK%20II
     21 
     22 
     23 -------------------------------------------------------------------------------
     24 Quick Start (Windows Development Platform)
     25 -----------
     26 
     27 In a command prompt window, change to the top-level directory of the EDK II 
     28 source.
     29 
     30 Note:
     31   The first time the edksetup script is executed, it creates three files in the
     32   %WORKSPACE%\Conf directory. The files: tools_def.txt, target.txt and
     33   build_rule.txt, are only created if they do not exist, if they exist, they
     34   are not touched.
     35 
     36 First, set up your project workspace. If you have previously initialized this
     37 WORKSPACE, and a newer version of the *.template files in
     38 WORKSPACE\BaseTools\Conf exists, remove the *.txt files in the WORKSPACE\Conf
     39 directory prior to running the edksetup script.
     40 
     41 For the reference build of the Nt32 Platform emulation environment, use the 
     42 edksetup.bat option: --nt32. For building other platforms or modules, this
     43 option is not required, as Visual Studio standard includes, libraries and/or
     44 dlls are not required for normal development.
     45 
     46     c:\MyWork\edk2\> edksetup --nt32
     47 
     48 The default tool chain (named MYTOOLS) is pre-configured to use VS2008 for IA32
     49 and X64 target architectures and DDK3790 for IPF target architectures. To use a
     50 different tool chain, either modify the tools_def.txt file's MYTOOLS entries,
     51 or modify the %WORKSPACE%\Conf\target.txt file's TOOL_CHAIN_TAG. The pre-defined
     52 tags are listed near the top of the %WORKSPACE%\Conf\tools_def.txt file, below
     53 the Supported Tool Chains comment.
     54 Alternatively, you may use the build command's -t option to specify a different
     55 tool chain tag name: build -t VS2008 ... , for example.  Using this method will
     56 require that you always use the build command's -t option. If you use 64-bit 
     57 Windows OS, you should use tool chain tag name with x86, such as VS2008x86.
     58 
     59 
     60 Next, go to the module directory and begin to build. This example is for the
     61 HelloWorld application.
     62 
     63     c:\MyWork\edk2\> cd MdeModulePkg\Application\HelloWorld
     64     c:\MyWork\edk2\> build
     65 
     66 If you want to build the a module in another package (for example, 
     67 MdePkg\Library\BaseLib\BaseLib.inf), please edit the file
     68 %WORKSPACE%\Conf\Target.txt first.
     69 
     70 Change the following line
     71     ACTIVE_PLATFORM       = MdeModulePkg/MdeModulePkg.dsc
     72 to
     73     ACTIVE_PLATFORM       = MdePkg/MdePkg.dsc
     74 
     75 Then go to MdePkg\Library\BaseLib directory and type build:
     76     c:\MyWork\edk2\> cd MdePkg\Library\BaseLib
     77     c:\MyWork\edk2\> build
     78 
     79 If you want build a platform, ACTIVE_PLATFORM must be set to your desired
     80 platform dsc file, go to directory which must be not a module's directory, and
     81 run "build" command.
     82 
     83 Instead of changing Target.txt, you can specify platform, module and/or
     84 architecture on command line.
     85 For example, if you want to build NT32 platform, you can just type 
     86 
     87     c:\MyWork\edk2\> build -p Nt32Pkg\Nt32Pkg.dsc -a IA32
     88 
     89 and if you want to build HelloWorld module, you can just type
     90 
     91     c:\MyWork\edk2\> build -p Nt32Pkg\Nt32Pkg.dsc -a IA32 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf
     92 
     93 Other helpful command line options of build tool include "-v" and "-d".
     94 The "-v" option is used to turn on the verbose build, which provide more
     95 information during the build. "-d <debug level 0-9>" option is used to
     96 turn on the debug information which is helpful debugging build tools.
     97 
     98 For more information on build options, please try "build -h" on command line.
     99 
    100 Note:
    101   The Windows style help option "/?" is not a valid option for the build
    102   command.
    103 
    104 
    105 -------------------------------------------------------------------------------
    106 Supported build targets
    107 -----------------------
    108 
    109 all       - Build whole platform or module. It can be ignored.
    110 genc      - Generate AutoGen.c, AutoGen.h and <ModuleName>.depex files only.
    111 genmake   - Generate makefiles in addition to files generated by "genc" target.
    112 clean     - Clean intermediate files
    113 cleanall  - Clean all generated files and directories during build, except the
    114             generated Makefile files (top level and module makefiles)
    115 cleanlib  - Clean all generated files and directories during library build
    116 run       - Launch NT32 shell (only valid for NT32 platform)
    117 
    118 -------------------------------------------------------------------------------
    119 Tools in Python
    120 ---------------
    121 
    122 * Run build tool written in Python from source
    123   It can be executed from its source directly as long as you have the Python
    124   interpreter (version 2.5.4) installed. The source code is located at
    125   WORKSPACE/BaseTools.
    126 
    127   where:
    128 
    129     build/build.py      - The entry tool of build tools
    130 
    131   "build.py" steps:
    132     1. Run "edksetup.bat"
    133     2. set PYTHONPATH to the local directory of above source
    134        (BaseTools/Source/Python)
    135     3. Set ACTIVE_PLATFORM in WORKSPACE\Conf
    136     4. Go to platform or module directory
    137     5. Run "<python_interpreter.exe> <python_source_dir>/build/build.py" or
    138        "<python_source_dir>/build/build.py" directly.
    139 
    140 * Convert Python source to exe file
    141   The tools written in Python can be coverted into executable program which can
    142   be executed without Python interpreter. One of the conversion tools is called
    143   cx_Freeze, available at: 
    144 
    145     http://sourceforge.net/projects/cx-freeze/
    146 
    147   If you have installed cx_Freeze at c:\cx_Freeze-3.0.3. Use the following
    148   command lines to convert MyBuild.py to a Windows executable.
    149 
    150     set PYTHONPATH=<buildtools>\BaseTools\Source\Python
    151     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
    152 
    153   The generated .exe files are put in "mybuild" subdirectory.
    154 
    155