From 22083287912ebd552e33b79f7c567bc966376d43 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 15 Oct 2010 11:55:59 +0100 Subject: handbook: Move into documentation directory Signed-off-by: Richard Purdie --- handbook/ref-classes.xml | 455 ----------------------------------------------- 1 file changed, 455 deletions(-) delete mode 100644 handbook/ref-classes.xml (limited to 'handbook/ref-classes.xml') diff --git a/handbook/ref-classes.xml b/handbook/ref-classes.xml deleted file mode 100644 index 036044dd2..000000000 --- a/handbook/ref-classes.xml +++ /dev/null @@ -1,455 +0,0 @@ - - - -Reference: Classes - - - Class files are used to abstract common functionality and share it amongst multiple - .bb files. Any metadata usually found in a - .bb file can also be placed in a class - file. Class files are identified by the extension - .bbclass and are usually placed - in a classes/ directory beneath the - meta*/ directory or the directory pointed - by BUILDDIR (e.g. build/)in the same way as - .conf files in the conf directory. Class files are searched for - in BBPATH in the same was as .conf files too. - - - - In most cases inheriting the class is enough to enable its features, although - for some classes you may need to set variables and/or override some of the - default behaviour. - - -
- The base class - <filename>base.bbclass</filename> - - - The base class is special in that every .bb - file inherits it automatically. It contains definitions of standard basic - tasks such as fetching, unpacking, configuring (empty by default), compiling - (runs any Makefile present), installing (empty by default) and packaging - (empty by default). These are often overridden or extended by other classes - such as autotools.bbclass or - package.bbclass. The class also contains some commonly - used functions such as oe_runmake. - -
- -
- Autotooled Packages - <filename>autotools.bbclass</filename> - - - Autotools (autoconf, automake, libtool) brings standardisation and this - class aims to define a set of tasks (configure, compile etc.) that will - work for all autotooled packages. It should usualy be enough to define - a few standard variables as documented in the simple autotools - example section and then simply "inherit autotools". This class - can also work with software that emulates autotools. - - - - It's useful to have some idea on how the tasks defined by this class work - and what they do behind the scenes. - - - - - - 'do_configure' regenearates the configure script (using autoreconf) and - then launches it with a standard set of arguments used during - cross-compilation. Additional parameters can be passed to - configure through the EXTRA_OECONF variable. - - - - - 'do_compile' runs make with arguments specifying - the compiler and linker. Additional arguments can be passed through - the EXTRA_OEMAKE - variable. - - - - - 'do_install' runs make install passing a DESTDIR - option taking its value from the standard DESTDIR variable. - - - - -
- -
- Alternatives - <filename>update-alternatives.bbclass</filename> - - - Several programs can fulfill the same or similar function and - they can be installed with the same name. For example the ar - command is available from the "busybox", "binutils" and "elfutils" packages. - This class handles the renaming of the binaries so multiple packages - can be installed which would otherwise conflict and yet the - ar command still works regardless of which are installed - or subsequently removed. It renames the conflicting binary in each package - and symlinks the highest priority binary during installation or removal - of packages. - - Four variables control this class: - - - - - - ALTERNATIVE_NAME - - - Name of binary which will be replaced (ar in this example) - - - - - ALTERNATIVE_LINK - - - Path to resulting binary ("/bin/ar" in this example) - - - - - ALTERNATIVE_PATH - - - Path to real binary ("/usr/bin/ar.binutils" in this example) - - - - - ALTERNATIVE_PRIORITY - - - Priority of binary, the version with the most features should have the highest priority - - - - - - - Currently, only one binary per package is supported. - -
- -
- Initscripts - <filename>update-rc.d.bbclass</filename> - - - This class uses update-rc.d to safely install an initscript on behalf of - the package. Details such as making sure the initscript is stopped before - a package is removed and started when the package is installed are taken - care of. Three variables control this class, - INITSCRIPT_PACKAGES, - INITSCRIPT_NAME and - INITSCRIPT_PARAMS. See the - links for details. - -
- -
- Binary config scripts - <filename>binconfig.bbclass</filename> - - - Before pkg-config had become widespread, libraries shipped shell - scripts to give information about the libraries and include paths needed - to build software (usually named 'LIBNAME-config'). This class assists - any recipe using such scripts. - - - - During staging Bitbake installs such scripts into the sysroots/ directory. It also changes all - paths to point into the sysroots/ - directory so all builds which use the script will use the correct - directories for the cross compiling layout. - -
- -
- Debian renaming - <filename>debian.bbclass</filename> - - - This class renames packages so that they follow the Debian naming - policy, i.e. 'glibc' becomes 'libc6' and 'glibc-devel' becomes - 'libc6-dev'. - -
- -
- Pkg-config - <filename>pkgconfig.bbclass</filename> - - - Pkg-config brought standardisation and this class aims to make its - integration smooth for all libraries which make use of it. - - - - During staging Bitbake installs pkg-config data into the sysroots/ directory. By making use of - sysroot functionality within pkgconfig this class no longer has to - manipulate the files. - -
- -
- Distribution of sources - <filename>src_distribute_local.bbclass</filename> - - - Many software licenses require providing the sources for compiled - binaries. To simplify this process two classes were created: - src_distribute.bbclass and - src_distribute_local.bbclass. - - - - Result of their work are tmp/deploy/source/ - subdirs with sources sorted by LICENSE - field. If recipe lists few licenses (or has entries like "Bitstream Vera") source archive is put in each - license dir. - - - - Src_distribute_local class has three modes of operating: - - - - copy - copies the files to the distribute dir - symlink - symlinks the files to the distribute dir - move+symlink - moves the files into distribute dir, and symlinks them back - -
- -
- Perl modules - <filename>cpan.bbclass</filename> - - - Recipes for Perl modules are simple - usually needs only - pointing to source archive and inheriting of proper bbclass. - Building is split into two methods dependly on method used by - module authors. - - - - Modules which use old Makefile.PL based build system require - using of cpan.bbclass in their recipes. - - - - Modules which use Build.PL based build system require - using of cpan_build.bbclass in their recipes. - - -
- -
- Python extensions - <filename>distutils.bbclass</filename> - - - Recipes for Python extensions are simple - they usually only - require pointing to the source archive and inheriting the proper - bbclasses. - Building is split into two methods depending on the build method - used by the module authors. - - - - Extensions which use autotools based build system require use - of autotools and distutils-base bbclasses in their recipes. - - - - Extensions which use distutils build system require use - of distutils.bbclass in their recipes. - - -
- -
- Developer Shell - <filename>devshell.bbclass</filename> - - - This class adds the devshell task. Its usually up to distribution policy - to include this class (Poky does). See the developing with 'devshell' section - for more information about using devshell. - - -
- -
- Packaging - <filename>package*.bbclass</filename> - - - The packaging classes add support for generating packages from a builds - output. The core generic functionality is in - package.bbclass, code specific to particular package - types is contained in various sub classes such as - package_deb.bbclass, package_ipk.bbclass - and package_rpm.bbclass. Most users will - want one or more of these classes and this is controlled by the - PACKAGE_CLASSES - variable. The first class listed in this variable will be used for image - generation. Since images are generated from packages a packaging class is - needed to enable image generation. - - -
- -
- Building kernels - <filename>kernel.bbclass</filename> - - - This class handles building of Linux kernels and the class contains code to know how to build both 2.4 and 2.6 kernel trees. All needed headers are - staged into STAGING_KERNEL_DIR - directory to allow building of out-of-tree modules using module.bbclass. - - - This means that each kernel module built is packaged separately and inter-module dependencies are - created by parsing the modinfo output. If all modules are - required then installing the "kernel-modules" package will install all - packages with modules and various other kernel packages such as "kernel-vmlinux". - - - - Various other classes are used by the kernel and module classes internally including - kernel-arch.bbclass, module_strip.bbclass, - module-base.bbclass and linux-kernel-base.bbclass. - -
- -
- Creating images - <filename>image.bbclass</filename> and <filename>rootfs*.bbclass</filename> - - - Those classes add support for creating images in many formats. First the - rootfs is created from packages by one of the rootfs_*.bbclass - files (depending on package format used) and then image is created. - - The IMAGE_FSTYPES - variable controls which types of image to generate. - - The list of packages to install into the image is controlled by the - IMAGE_INSTALL - variable. - -
- -
- Host System sanity checks - <filename>sanity.bbclass</filename> - - - This class checks prerequisite software is present to - notify the users problems that will affect their build. It also - performs basic checks of the user configuration from local.conf to - prevent common mistakes resulting in build failures. It's usually up to - distribution policy whether to include this class (Poky does). - -
- -
- Generated output quality assurance checks - <filename>insane.bbclass</filename> - - - This class adds a step to package generation which sanity checks the - packages generated by Poky. There are an ever increasing range of checks - it performs, checking for common problems which break builds/packages/images, - see the bbclass file for more information. It's usually up to distribution - policy whether to include this class (Poky does). - -
- -
- Autotools configuration data cache - <filename>siteinfo.bbclass</filename> - - - Autotools can require tests which have to execute on the target hardware. - Since this isn't possible in general when cross compiling, siteinfo is - used to provide cached test results so these tests can be skipped over but - the correct values used. The meta/site directory - contains test results sorted into different categories like architecture, endianess and - the libc used. Siteinfo provides a list of files containing data relevant to - the current build in the CONFIG_SITE - variable which autotools will automatically pick up. - - - The class also provides variables like SITEINFO_ENDIANESS - and SITEINFO_BITS - which can be used elsewhere in the metadata. - - - This class is included from base.bbclass and is hence always active. - -
- -
- Other Classes - - - Only the most useful/important classes are covered here but there are - others, see the meta/classes directory for the rest. - -
- - - - -
- -- cgit v1.2.3