# 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.