# 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

  Number of BitBake threads

BBFILES

  List of recipes used by BitBake to build software

BBINCLUDELOGS

  Variable which controls how BitBake displays logs on build failure.

### C

CFLAGS

  Flags passed to C compiler for the target system. Evaluates to the same as TARGET_CFLAGS.

COMPATIBLE_MACHINE

  A regular expression which evalutates to match the machines the recipe works with. It stops recipes being run on machines they're incompatible with which is partciuarly useful with kernels. It also helps to to increase parsing speed as if its found the current machine is not compatible, further parsing of the recipe is skipped.

CONFIG_SITE

  Contains a list of files which containing autoconf test results relevant to the current build. This variable is used by the autotools utilities when running configure.

CVS_TARBALL_STASH

  Location to search for pre-generated tarballs when fetching from remote SCM repositories (CVS/SVN/GIT)

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

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

LICENSE

  List of package source licenses.

### M

MACHINE

  Target device

MACHINE_ESSENTIAL_RDEPENDS

  List of packages required to boot device

MACHINE_ESSENTIAL_RRECOOMENDS

  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_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)

PACKAGES

  List of packages to be created from recipe. The default value is "${PN}-dbg ${PN} ${PN}-doc ${PN}-dev"

PN

  Name of package.

PR

  Revision of package.

PV

  Version of package. The default value is "1.0"

PE

  Epoch of the package. The default value is "1". 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.

POKYLIBC

  Libc implementation selector - glibc 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 which conflict with this one. Package will not be installed if they will not be 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 namespave 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 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.

SHELLCMDS

  A list of commands to run within the a shell, used by TERMCMDRUN. It defaults to SHELLRCCMD.

SHELLRCCMD

  How to launch a shell, defaults to bash.

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.

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