Reference: Variables Glossary This section lists common variables used in Poky and gives an overview of their function and contents. A B C D E F H I K L M P R S T W A AUTHOR E-mail address to contact original author(s) - to send patches, forward bugs... AUTOREV Use current (newest) source revision - used with SRCREV variable. B BB_NUMBER_THREADS The maximum number of tasks BitBake should run in parallel at any one time BBFILE_COLLECTIONS Identifies layer-specific bbfiles, which contain recipes used by BitBake to build software. The Variable is appended with a layer name. BBFILE_PATTERN Variable that expands to match files from BBFILES in a particular layer. BBFILE_PATTERN is used in the conf/layer.conf file and must contain the name of the specific layer (e.g. BBFILE_PATTERN_emenlow). BBFILE_PRIORITY Assigns different priorities to recipe files in different layers. This variable is useful in situations where the same package appears in more than one layer. Setting BBFILE_PRIORITY allows you to prioritize a layer against other layers that contain the same package - effectively letting you control the precedence for the multiple layers. The precedence established through this variable stands regardless of a layer's package version (PV variable). For example, a layer that has a package with a higher PV value but for which the BBFILE_PRIORITY is set to have a lower precedence still has a lower precedence. A larger value for the BBFILE_PRIORITY variable results in a higher precedence. For example, the value 6 has a higher precedence than the value 5. By default, the BBFILE_PRIORITY variable is set to the value 5. BBFILES List of recipes used by BitBake to build software BBPATH Used by Bitbake to locate bbclass and configuration files. This variable is analogous to the PATH variable. BBINCLUDELOGS Variable which controls how BitBake displays logs on build failure. BBLAYERS Lists in the bblayers.conf file layers to enable in the Poky build. BPN Bare name of package with any suffixes like -cross -native removed. C CFLAGS Flags passed to C compiler for the target system. Evaluates to the same as TARGET_CFLAGS. COMPATIBLE_MACHINE A regular expression which evaluates to match the machines the recipe works with. It stops recipes being run on machines they're incompatible with, which is particularly useful with kernels. It also helps to increase parsing speed as further parsing of the recipe is skipped as if it found the current machine is not compatible. CONFIG_SITE A list of files which contains autoconf test results relevant to the current build. This variable is used by the autotools utilities when running configure. D D Destination directory DEBUG_BUILD Build packages with debugging information. This influences the value SELECTED_OPTIMIZATION takes. DEBUG_OPTIMIZATION The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This defaults to "-O -fno-omit-frame-pointer -g". DEFAULT_PREFERENCE Priority of recipe DEPENDS A list of build time dependencies for a given recipe. These indicate recipes that must have staged before this recipe can configure. DESCRIPTION Package description used by package managers DESTDIR Destination directory DISTRO Short name of distribution DISTRO_EXTRA_RDEPENDS List of packages required by distribution. DISTRO_EXTRA_RRECOMMENDS List of packages which extend usability of image. Those packages will be automatically installed but can be removed by user. DISTRO_FEATURES Features of the distribution. DISTRO_NAME Long name of distribution DISTRO_PN_ALIAS Alias names of the recipe in various Linux distributions. More information in Configuring the DISTRO_PN_ALIAS variable section DISTRO_VERSION Version of distribution DL_DIR Directory where all fetched sources will be stored E ENABLE_BINARY_LOCALE_GENERATION Variable which control which locales for glibc are to be generated during build (useful if target device has 64M RAM or less) EXTRA_OECMAKE Additional cmake options EXTRA_OECONF Additional 'configure' script options EXTRA_OEMAKE Additional GNU make options F FILES list of directories/files which will be placed in packages FULL_OPTIMIZATION The options to pass in TARGET_CFLAGS and CFLAGS when compiling an optimised system. This defaults to "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2". H HOMEPAGE Website where more info about package can be found I IMAGE_FEATURES List of features present in resulting images IMAGE_FSTYPES Formats of rootfs images which we want to have created IMAGE_INSTALL List of packages used to build image INC_PR Defines the Package revision. You manually combine values for INC_PR into the PR field of the parent recipe. When you change INC_PR you change the PR value for every person that includes the file. The following example shows how to use INC_PR given a common .inc that defines the variable. Once defined, the variable can be used to set the PR value: recipes-graphics/xorg-font/font-util_1.1.1.bb:PR - "$(INC_PR).1" recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR - "r1" recipes-graphics/xorg-font/encondings_1.0.3.bb:PR - "$(INC_PR).1" recipes-graphics/xorg-font/fiont-alias_1.0.2.bb:PR - "$(INC_PR).0" INHIBIT_PACKAGE_STRIP This variable causes the build to not strip binaries in resulting packages. INHERIT This variable causes the named class to be inherited at this point during parsing. Its only valid in configuration files. INITSCRIPT_PACKAGES Scope: Used in recipes when using update-rc.d.bbclass. Optional, defaults to PN. A list of the packages which contain initscripts. If multiple packages are specified you need to append the package name to the other INITSCRIPT_* as an override. INITSCRIPT_NAME Scope: Used in recipes when using update-rc.d.bbclass. Mandatory. The filename of the initscript (as installed to ${etcdir}/init.d). INITSCRIPT_PARAMS Scope: Used in recipes when using update-rc.d.bbclass. Mandatory. Specifies the options to pass to update-rc.d. An example is "start 99 5 2 . stop 20 0 1 6 ." which gives the script a runlevel of 99, starts the script in initlevels 2 and 5 and stops it in levels 0, 1 and 6. K KERNEL_IMAGETYPE The type of kernel to build for a device, usually set by the machine configuration files and defaults to "zImage". This is used when building the kernel and is passed to "make" as the target to build. L LAYERDIR When used inside a layer.conf gives the path of the current layer. This variable requires immediate expansion (see the Bitbake manual) as lazy expansion can result in the expansion happening in the wrong directory and therefore giving the wrong value. LICENSE List of package source licenses. LIC_FILES_CHKSUM Checksums of the license text in the recipe source code. This variable tracks changes in license text of the source code files. If the license text is changed, it will trigger the build failure, which gives developer an opportunity to review any license change This is an optional variable now, and the plan is to make it a required variable in the future See "meta/package/zlib/zlib_${PV}.bb" file for an example More information in Configuring the LIC_FILES_CHKSUM variable section M MACHINE Target device MACHINE_ESSENTIAL_RDEPENDS List of packages required to boot device MACHINE_ESSENTIAL_RRECOMMENDS List of packages required to boot device (usually additional kernel modules) MACHINE_EXTRA_RDEPENDS List of packages required to use device MACHINE_EXTRA_RRECOMMNEDS List of packages useful to use device (for example additional kernel modules) MACHINE_FEATURES List of device features - defined in machine features section MAINTAINER E-mail of distribution maintainer P PACKAGE_ARCH Architecture of resulting package PACKAGE_CLASSES List of resulting packages formats PACKAGE_DESCRIPTION Long form description of binary package for packaging sytems such as ipkg, rpm or debian, inherits DESCRIPTION by default PACKAGE_EXTRA_ARCHS List of architectures compatible with device CPU. Usable when build is done for few different devices with misc processors (like XScale and ARM926-EJS) PACKAGE_SUMMARY Short (72 char suggested) Summary of binary package for packaging sytems such as ipkg, rpm or debian, inherits DESCRIPTION by default PACKAGES List of packages to be created from recipe. The default value is "${PN}-dbg ${PN} ${PN}-doc ${PN}-dev" PARALLEL_MAKE Extra options that are passed to the make command during the compile tasks. This is usually of the form '-j 4' where the number represents the maximum number of parallel threads make can run. PN Name of package. PR Revision of package. The default value is "r0". PV Version of package. This is normally extracted from the recipe name, e.g. if the recipe is named "expat_2.0.1.bb" then PV will be "2.0.1". PV is generally not overridden within a recipe unless it is building an unstable version from a source code repository (git, svn, etc.). PE Epoch of the package. The default value is "0". The field is used to make upgrades possible when the versioning scheme changes in some backwards incompatible way. PREFERRED_PROVIDER If multiple recipes provide an item, this variable determines which one should be given preference. It should be set to the "$PN" of the recipe to be preferred. PREFERRED_VERSION If there are multiple versions of recipe available, this variable determines which one should be given preference. It should be set to the "$PV" of the recipe to be preferred. POKY_EXTRA_INSTALL List of packages to be added to the image. This should only be set in local.conf. POKYLIBC Libc implementation selector - glibc, eglibc, or uclibc can be selected. POKYMODE Toolchain selector. It can be external toolchain built from Poky or few supported combinations of upstream GCC or CodeSourcery Labs toolchain. R RCONFLICTS List of packages which conflict with this one. Package will not be installed if they are not removed first. RDEPENDS A list of run-time dependencies for a package. These packages need to be installed alongside the package it applies to so the package will run correctly, an example is a perl script which would rdepend on perl. Since this variable applies to output packages there would usually be an override attached to this variable like RDEPENDS_${PN}-dev. Names in this field should be as they are in PACKAGES namespace before any renaming of the output package by classes like debian.bbclass. ROOT_FLASH_SIZE Size of rootfs in megabytes RRECOMMENDS List of packages which extend usability of the package. Those packages will be automatically installed but can be removed by user. RREPLACES List of packages which are replaced with this one. S S Path to unpacked sources (by default: "${WORKDIR}/${PN}-${PV}") SECTION Section where package should be put - used by package managers SELECTED_OPTIMIZATION The variable takes the value of FULL_OPTIMIZATION unless DEBUG_BUILD = "1" in which case DEBUG_OPTIMIZATION is used. SERIAL_CONSOLE Speed and device for serial port used to attach serial console. This is given to kernel as "console" param and after boot getty is started on that port so remote login is possible. SSTATE_DIR Directory for the shared state. SHELLCMDS A list of commands to run within the a shell, used by TERMCMDRUN. SITEINFO_ENDIANESS Contains "le" for little-endian or "be" for big-endian depending on the endian byte order of the target system. SITEINFO_BITS Contains "32" or "64" depending on the number of bits for the CPU of the target system. SRC_URI List of source files (local or remote ones) SRC_URI_OVERRIDES_PACKAGE_ARCH By default there is code which automatically detects whether SRC_URI contains files which are machine specific and if this is the case it automatically changes PACKAGE_ARCH. Setting this variable to "0" disables that behaviour. SRCDATE Date of source code used to build package (if it was fetched from SCM). SRCREV Revision of source code used to build package (Subversion, GIT, Bazaar only). STAGING_KERNEL_DIR Directory with kernel headers required to build out-of-tree modules. STAMPS Directory (usually TMPDIR/stamps) with timestamps of executed tasks. SUMMARY Short (72 char suggested) Summary of binary package for packaging systems such as ipkg, rpm or debian, inherits DESCRIPTION by default T TARGET_ARCH The architecture of the device we're building for. A number of values are possible but Poky primarily supports "arm" and "i586". TARGET_CFLAGS Flags passed to C compiler for the target system. Evaluates to the same as CFLAGS. TARGET_FPU Method of handling FPU code. For FPU-less targets (most of ARM cpus) it has to be set to "soft" otherwise kernel emulation will get used which will result in performance penalty. TARGET_OS Type of target operating system. Can be "linux" for glibc based system, "linux-uclibc" for uClibc. For ARM/EABI targets there are also "linux-gnueabi" and "linux-uclibc-gnueabi" values possible. TERMCMD This command is used by bitbake to lauch a terminal window with a shell. The shell is unspecified so the user's default shell is used. By default it is set to gnome-terminal but it can be any X11 terminal application or terminal multiplexers like screen. TERMCMDRUN This command is similar to TERMCMD however instead of the users shell it runs the command specified by the SHELLCMDS variable. W WORKDIR Path to directory in tmp/work/ where package will be built.