HowToBuildReadme¶
Required Tool and Setup¶
Toolchain versions (common for both windows/linux):
- Python : 3.10.6 (required in search path, use "python -V" to verify)
For Windows:
1) DTC: Install DTC from QPM. (Please join dtc.qpm.viewer for access permisson )
2) Sectools V2: Recommand to copy \\sundae\sectools\v2 to local PC and export sectools path to os envoirnment variable SECTOOLS
3) DTSchema: Extract \\jerry\corebsp_labdata_0002\DTSCHEMA_Windows_Tools\dtschematools.zip to C:\Apps\
4) VisualStudio: Please install VS2010 or later version(It is only suppported until VS2019)
5) Compiler: Extract \\skinnycow\fluid_home\release\16.0.7\Snapdragon-llvm-16.0.7-windows64.zip to C:\Apps\LLVM\16.0.7
Install iasl driver:
linux: sudo apt-get install iasl
Windows:
1) Download/install iasl
2) Rename downloaded folder to ASL
3) Move it to C drive (C:/ASL/iasl.exe)
4) Add C:/ASL/iasl in env variable path
Build Command and options¶
Windows/Linux:
boot_tools\buildex.py
This is the common build script for all packages
Build Options:
Usage: python buildex.py [optional arguments]...
Examples:
python boot_tools/buildex.py
Arguments:
-t --target
Provide target(s) to build, separated by a comma ex: python buildex.py -t Pakala
--variant
Provide variant(s) to build, separated by a comma
ex: python buildex.py –variant XX,YY
where XX, YY are variant folders in a target package folder
-r --release
Provide a release mode, one of “DEBUG” or “RELEASE”. Default is to build both.
-v --version
Specify build version. Default is 0.
-a --alias
Specify the config section as listed in the file QcomPkg/aliasconfig.json to provide the build params instead of manually specifying on command line
-C --component
Will only compile the components which proivide with this option, separeted by a comma .
--build_flags
Comma separated list of extra arguments to be supplied to the underlying build system (here EDK build system).
ex: python buildex.py –build_flags cleanall,special
Extra Build Arg options:
These are comma separated values, within double quotes if space is needed, any valid combination of the values can be used:
-v : verbose -m file : Module inf file to build (relative path from root of workspace) -n x : Number of threads to spawn for the build (x = 1 when need to locate error) cleanall : Clean all the generated files
--compiler_flags
This string is passed in its entirety to the compiler. Quotes may be used for strings that require a space.
ex: python buildex.py –compiler_flags -DPRE_SIL
ex: python buildex.py –compiler_flags “-DSOME_FLAG -DANOTHER_FLAG”
-i --images
Provide image which you want to generate,separeted by a comma
ex: python buildex.py -i xbl,uefi,pmic
Some usage Examples¶
python buildex.py -t Lanai --variant LAA -r DEBUG,RELEASE
Building a specific target, variant LAA for DEBUG and RELEASE
python buildex.py -t Lanai --variant LAA -r DEBUG -i uefi
Building a specific target, variant, and single image uefi for DEBUG
python buildex.py -t Lanai --variant LAA -r DEBUG -C XBL_CORE
Building a specific target 8250pkg, variant LAA and sepceial component XBL_CORE for DEBUG
python buildex.py -t Lanai --variant LAA -r debug --build_flags cleanall
Clean Lanai, LAA Debug image
python buildex.py -a lndevclean -t lanai
Building a specific target lanai, variant LAA for DEBUG by alias option. Detail option alias please refer aliasconfig.json