audk/BaseTools
Kinney, Michael D aedd1559cc BaseTools/BinToPcd: Add support for multiple binary input files
https://bugzilla.tianocore.org/show_bug.cgi?id=890

There are use cases where a VOID * PCD needs to be generated from multiple
binary input files.  This can be in the form of an array of fixed size
elements or a set of variable sized elements.

Update BinToPcd to support multiple one or more -i INPUTFILE arguments.
By default, the contents of each binary input file are concatenated in
the order provided.  This supports generating a PCD that is an array of
fixed size elements

Add -x, --xdr flags to BinToPcd  to encodes the PCD using the
Variable-Length Opaque Data of RFC 4506 External Data Representation
Standard (XDR).

    https://tools.ietf.org/html/rfc4506
    https://tools.ietf.org/html/rfc4506#section-4.10

The data format from RFC 4506 meets the requirements for a PCD that is a
set of variable sized elements in the Variable-Length Opaque Data format.
The overhead of this format is a 32-bit length and 0 to 3 bytes of padding
to align the next element at a 32-bit boundary.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2018-03-28 08:51:15 -07:00
..
Bin BaseTools: Improve LzmaF86Compress wrapper 2016-01-20 05:15:55 +00:00
BinWrappers BaseTools/PosixLike: honor pre-set PYTHONPATH 2018-03-21 15:53:44 +01:00
Conf BaseTools/Conf: Add VS2017/ARM64 support 2018-03-19 17:05:45 +08:00
Scripts BaseTools/BinToPcd: Add support for multiple binary input files 2018-03-28 08:51:15 -07:00
Source BaseTools: Update Rsa2048Sha256Sign to use openssl dgst option 2018-03-28 09:58:43 +08:00
Tests BaseTools: Use python2 if available in Tests/GNUmakefile 2016-01-20 05:14:10 +00:00
UserManuals BaseTools/UPT: Man Page Update 2017-03-09 15:06:15 +08:00
gcc Sync BaseTools Branch (version r2321) to EDKII main trunk. 2011-09-18 12:17:25 +00:00
.gitignore BaseTools gitignore: Ignore VS intermediate files *.obj and *.pdb 2016-11-18 11:07:46 +08:00
BuildEnv BaseTools/BuildEnv: override "set -C" (noclobber) in sourcing shell env 2017-10-18 11:34:03 +02:00
BuildNotes.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
GNUmakefile BaseTools: Update BaseTools top GNUMakefile with the clear dependency 2017-11-30 13:06:49 +08:00
Makefile BaseTools: Update top VS Makefile with the absolute path 2017-02-06 10:35:28 +08:00
ReadMe.txt BaseTools: Correct ReadMe.txt file with CRLF line ending 2016-07-29 09:18:11 +08:00
building-gcc.txt Sync BaseTool trunk (version r2649) into EDKII BaseTools. 2014-01-27 05:23:15 +00:00
get_vsvars.bat BaseTools: Update VS batch file to auto detect VS2017 2017-11-29 16:03:12 +08:00
set_vsprefix_envs.bat BaseTools: Update VS batch file to auto detect VS2017 2017-11-29 16:03:12 +08:00
toolsetup.bat BaseTools: Add WindowsLike path in front of PATH Env 2018-02-23 16:57:32 +08:00

ReadMe.txt

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This directory contains the next generation of EDK II build tools and template files.
Templates are located in the Conf directory, while the tools executables for
Microsoft Windows 32-bit Operating Systems are located in the Bin\Win32 directory, other 
directory contatins tools source.

1. Build step to generate the binary tools.

=== Windows/Visual Studio Notes ===

To build the BaseTools, you should run the standard vsvars32.bat script
from your preferred Visual Studio installation or you can run get_vsvars.bat
to use latest automatically detected version.

In addition to this, you should set the following environment variables:

 * EDK_TOOLS_PATH - Path to the BaseTools sub directory under the edk2 tree
 * BASE_TOOLS_PATH - The directory where the BaseTools source is located.
   (It is the same directory where this README.txt is located.)
 * PYTHON_FREEZER_PATH - Path to where the python freezer tool is installed

After this, you can run the toolsetup.bat file, which is in the same
directory as this file.  It should setup the remainder of the environment,
and build the tools if necessary.

Please also refer to the 'BuildNotes.txt' file for more information on
building under Windows.

=== Unix-like operating systems ===

To build on Unix-like operating systems, you only need to type 'make' in
the base directory of the project.

=== Ubuntu Notes ===

On Ubuntu, the following command should install all the necessary build
packages to build all the C BaseTools:

  sudo apt-get install build-essential uuid-dev

=== Python sqlite3 module ===
On Windows, the cx_freeze will not copy the sqlite3.dll to the frozen 
binary directory (the same directory as build.exe and GenFds.exe). 
Please copy it manually from <PythonHome>\DLLs.

The Python distributed with most recent Linux will have sqlite3 module
built in. If not, please install sqlit3 package separately.

26-OCT-2011