diff options
| -rw-r--r-- | documentation/ref-manual/ref-classes.xml | 152 |
1 files changed, 71 insertions, 81 deletions
diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml index d80fd77f9f..e3d7544c02 100644 --- a/documentation/ref-manual/ref-classes.xml +++ b/documentation/ref-manual/ref-classes.xml | |||
| @@ -179,7 +179,7 @@ | |||
| 179 | <title>Pkg-config - <filename>pkgconfig.bbclass</filename></title> | 179 | <title>Pkg-config - <filename>pkgconfig.bbclass</filename></title> |
| 180 | 180 | ||
| 181 | <para> | 181 | <para> |
| 182 | <filename>pkg-config</filename> provides a standard way to get | 182 | <filename>pkg-config</filename> provides a standard way to get |
| 183 | header and library information. | 183 | header and library information. |
| 184 | This class aims to smooth integration of | 184 | This class aims to smooth integration of |
| 185 | <filename>pkg-config</filename> into libraries that use it. | 185 | <filename>pkg-config</filename> into libraries that use it. |
| @@ -198,7 +198,7 @@ | |||
| 198 | 198 | ||
| 199 | <para> | 199 | <para> |
| 200 | Many software licenses require that source code and other materials be | 200 | Many software licenses require that source code and other materials be |
| 201 | released with the binaries. | 201 | released with the binaries. |
| 202 | To help with that task, the following classes are provided: | 202 | To help with that task, the following classes are provided: |
| 203 | <itemizedlist> | 203 | <itemizedlist> |
| 204 | <listitem><filename>archive-original-sources.bbclass</filename></listitem> | 204 | <listitem><filename>archive-original-sources.bbclass</filename></listitem> |
| @@ -515,47 +515,47 @@ | |||
| 515 | since <filename>pkg-config</filename> itself adds the correct sysroot prefix | 515 | since <filename>pkg-config</filename> itself adds the correct sysroot prefix |
| 516 | when the files are accessed.</para></listitem> | 516 | when the files are accessed.</para></listitem> |
| 517 | <listitem><para><emphasis><filename>textrel:</filename></emphasis> | 517 | <listitem><para><emphasis><filename>textrel:</filename></emphasis> |
| 518 | Checks for ELF binaries that contain relocations in their | 518 | Checks for ELF binaries that contain relocations in their |
| 519 | <filename>.text</filename> sections, which can result in a | 519 | <filename>.text</filename> sections, which can result in a |
| 520 | performance impact at runtime.</para></listitem> | 520 | performance impact at runtime.</para></listitem> |
| 521 | <listitem><para><emphasis><filename>pkgvarcheck:</filename></emphasis> | 521 | <listitem><para><emphasis><filename>pkgvarcheck:</filename></emphasis> |
| 522 | Checks through the variables | 522 | Checks through the variables |
| 523 | <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, | 523 | <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, |
| 524 | <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, | 524 | <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, |
| 525 | <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, | 525 | <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, |
| 526 | <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>, | 526 | <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>, |
| 527 | <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, | 527 | <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, |
| 528 | <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, | 528 | <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, |
| 529 | <link linkend='var-FILES'><filename>FILES</filename></link>, | 529 | <link linkend='var-FILES'><filename>FILES</filename></link>, |
| 530 | <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>, | 530 | <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>, |
| 531 | <filename>pkg_preinst</filename>, | 531 | <filename>pkg_preinst</filename>, |
| 532 | <filename>pkg_postinst</filename>, | 532 | <filename>pkg_postinst</filename>, |
| 533 | <filename>pkg_prerm</filename> | 533 | <filename>pkg_prerm</filename> |
| 534 | and <filename>pkg_postrm</filename>, and reports if there are | 534 | and <filename>pkg_postrm</filename>, and reports if there are |
| 535 | variable sets that are not package-specific. | 535 | variable sets that are not package-specific. |
| 536 | Using these variables without a package suffix is bad practice, | 536 | Using these variables without a package suffix is bad practice, |
| 537 | and might unnecessarily complicate dependencies of other packages | 537 | and might unnecessarily complicate dependencies of other packages |
| 538 | within the same recipe or have other unintended consequences. | 538 | within the same recipe or have other unintended consequences. |
| 539 | </para></listitem> | 539 | </para></listitem> |
| 540 | <listitem><para><emphasis><filename>xorg-driver-abi:</filename></emphasis> | 540 | <listitem><para><emphasis><filename>xorg-driver-abi:</filename></emphasis> |
| 541 | Checks that all packages containing Xorg drivers have ABI | 541 | Checks that all packages containing Xorg drivers have ABI |
| 542 | dependencies. | 542 | dependencies. |
| 543 | The <filename>xserver-xorg</filename> recipe provides driver | 543 | The <filename>xserver-xorg</filename> recipe provides driver |
| 544 | ABI names. | 544 | ABI names. |
| 545 | All drivers should depend on the ABI versions that they have | 545 | All drivers should depend on the ABI versions that they have |
| 546 | been built against. | 546 | been built against. |
| 547 | Driver recipes that include | 547 | Driver recipes that include |
| 548 | <filename>xorg-driver-input.inc</filename> | 548 | <filename>xorg-driver-input.inc</filename> |
| 549 | or <filename>xorg-driver-video.inc</filename> will | 549 | or <filename>xorg-driver-video.inc</filename> will |
| 550 | automatically get these versions. | 550 | automatically get these versions. |
| 551 | Consequently, you should only need to explicitly add | 551 | Consequently, you should only need to explicitly add |
| 552 | dependencies to binary driver recipes. | 552 | dependencies to binary driver recipes. |
| 553 | </para></listitem> | 553 | </para></listitem> |
| 554 | <listitem><para><emphasis><filename>libexec:</filename></emphasis> | 554 | <listitem><para><emphasis><filename>libexec:</filename></emphasis> |
| 555 | Checks if a package contains files in | 555 | Checks if a package contains files in |
| 556 | <filename>/usr/libexec</filename>. | 556 | <filename>/usr/libexec</filename>. |
| 557 | This check is not performed if the | 557 | This check is not performed if the |
| 558 | <filename>libexecdir</filename> variable has been set | 558 | <filename>libexecdir</filename> variable has been set |
| 559 | explicitly to <filename>/usr/libexec</filename>. | 559 | explicitly to <filename>/usr/libexec</filename>. |
| 560 | </para></listitem> | 560 | </para></listitem> |
| 561 | <listitem><para><emphasis><filename>staticdev:</filename></emphasis> | 561 | <listitem><para><emphasis><filename>staticdev:</filename></emphasis> |
| @@ -575,21 +575,21 @@ | |||
| 575 | </itemizedlist> | 575 | </itemizedlist> |
| 576 | </para> | 576 | </para> |
| 577 | <note> | 577 | <note> |
| 578 | You can use the <filename>WARN_QA</filename> and | 578 | You can use the <filename>WARN_QA</filename> and |
| 579 | <filename>ERROR_QA</filename> variables to control the behavior of | 579 | <filename>ERROR_QA</filename> variables to control the behavior of |
| 580 | these checks at the global level (i.e. in your custom distro | 580 | these checks at the global level (i.e. in your custom distro |
| 581 | configuration). | 581 | configuration). |
| 582 | However, to skip one or more checks in recipes, you should use | 582 | However, to skip one or more checks in recipes, you should use |
| 583 | <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>. | 583 | <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>. |
| 584 | For example, to skip the check for symbolic link | 584 | For example, to skip the check for symbolic link |
| 585 | <filename>.so</filename> files in the main package of a recipe, | 585 | <filename>.so</filename> files in the main package of a recipe, |
| 586 | add the following to the recipe. | 586 | add the following to the recipe. |
| 587 | You need to realize that the package name override, in this example | 587 | You need to realize that the package name override, in this example |
| 588 | <filename>${PN}</filename>, must be used: | 588 | <filename>${PN}</filename>, must be used: |
| 589 | <literallayout class='monospaced'> | 589 | <literallayout class='monospaced'> |
| 590 | INSANE_SKIP_${PN} += "dev-so" | 590 | INSANE_SKIP_${PN} += "dev-so" |
| 591 | </literallayout> | 591 | </literallayout> |
| 592 | Please keep in mind that the QA checks exist in order to detect real | 592 | Please keep in mind that the QA checks exist in order to detect real |
| 593 | or potential problems in the packaged output. | 593 | or potential problems in the packaged output. |
| 594 | So exercise caution when disabling these checks. | 594 | So exercise caution when disabling these checks. |
| 595 | </note> | 595 | </note> |
| @@ -599,28 +599,28 @@ | |||
| 599 | <title>Removing Work Files During the Build - <filename>rm_work.bbclass</filename></title> | 599 | <title>Removing Work Files During the Build - <filename>rm_work.bbclass</filename></title> |
| 600 | 600 | ||
| 601 | <para> | 601 | <para> |
| 602 | The OpenEmbedded build system can use a substantial amount of disk | 602 | The OpenEmbedded build system can use a substantial amount of disk |
| 603 | space during the build process. | 603 | space during the build process. |
| 604 | A portion of this space is the work files under the | 604 | A portion of this space is the work files under the |
| 605 | <filename>${TMPDIR}/work</filename> directory for each recipe. | 605 | <filename>${TMPDIR}/work</filename> directory for each recipe. |
| 606 | Once the build system generates the packages for a recipe, the work | 606 | Once the build system generates the packages for a recipe, the work |
| 607 | files for that recipe are no longer needed. | 607 | files for that recipe are no longer needed. |
| 608 | However, by default, the build system preserves these files | 608 | However, by default, the build system preserves these files |
| 609 | for inspection and possible debugging purposes. | 609 | for inspection and possible debugging purposes. |
| 610 | If you would rather have these files deleted to save disk space | 610 | If you would rather have these files deleted to save disk space |
| 611 | as the build progresses, you can enable <filename>rm_work</filename> | 611 | as the build progresses, you can enable <filename>rm_work</filename> |
| 612 | by adding the following to your <filename>local.conf</filename> file, | 612 | by adding the following to your <filename>local.conf</filename> file, |
| 613 | which is found in the | 613 | which is found in the |
| 614 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. | 614 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>. |
| 615 | <literallayout class='monospaced'> | 615 | <literallayout class='monospaced'> |
| 616 | INHERIT += "rm_work" | 616 | INHERIT += "rm_work" |
| 617 | </literallayout> | 617 | </literallayout> |
| 618 | If you are modifying and building source code out of the work directory | 618 | If you are modifying and building source code out of the work directory |
| 619 | for a recipe, enabling <filename>rm_work</filename> will potentially | 619 | for a recipe, enabling <filename>rm_work</filename> will potentially |
| 620 | result in your changes to the source being lost. | 620 | result in your changes to the source being lost. |
| 621 | To exclude some recipes from having their work directories deleted by | 621 | To exclude some recipes from having their work directories deleted by |
| 622 | <filename>rm_work</filename>, you can add the names of the recipe or | 622 | <filename>rm_work</filename>, you can add the names of the recipe or |
| 623 | recipes you are working on to the <filename>RM_WORK_EXCLUDE</filename> | 623 | recipes you are working on to the <filename>RM_WORK_EXCLUDE</filename> |
| 624 | variable, which can also be set in your <filename>local.conf</filename> | 624 | variable, which can also be set in your <filename>local.conf</filename> |
| 625 | file. | 625 | file. |
| 626 | Here is an example: | 626 | Here is an example: |
| @@ -677,28 +677,37 @@ | |||
| 677 | </section> | 677 | </section> |
| 678 | 678 | ||
| 679 | <section id='ref-classes-externalsrc'> | 679 | <section id='ref-classes-externalsrc'> |
| 680 | <title>Using External Source - <filename>externalsrc.bbclass</filename></title> | 680 | <title><filename>externalsrc.bbclass</filename></title> |
| 681 | 681 | ||
| 682 | <para> | 682 | <para> |
| 683 | You can use this class to build software from source code that is external to the | 683 | You can use this class to build software from source code that is |
| 684 | OpenEmbedded build system. | 684 | external to the OpenEmbedded build system. |
| 685 | In other words, your source code resides in an external tree outside of the Yocto Project. | 685 | Building software from an external source tree means that the build |
| 686 | Building software from an external source tree means that the normal fetch, unpack, and | 686 | system's normal fetch, unpack, and patch process is not used. |
| 687 | patch process is not used. | ||
| 688 | </para> | 687 | </para> |
| 689 | 688 | ||
| 690 | <para> | 689 | <para> |
| 691 | To use the class, you need to define the | 690 | By default, the OpenEmbedded build system uses the |
| 692 | <link linkend='var-S'><filename>S</filename></link> variable to point to the directory that contains the source files. | 691 | <link linkend='var-S'><filename>S</filename></link> and |
| 693 | You also need to have your recipe inherit the <filename>externalsrc.bbclass</filename> class. | 692 | <link linkend='var-B'><filename>B</filename></link> variables to |
| 693 | locate unpacked recipe source code and to build it, respectively. | ||
| 694 | When your recipe inherits <filename>externalsrc.bbclass</filename>, | ||
| 695 | you use the | ||
| 696 | <link linkend='var-EXTERNALSRC'><filename>EXTERNALSRC</filename></link> | ||
| 697 | and | ||
| 698 | <link linkend='var-EXTERNALSRC_BUILD'><filename>EXTERNALSRC_BUILD</filename></link> | ||
| 699 | variables to ultimately define <filename>S</filename> and | ||
| 700 | <filename>B</filename>. | ||
| 694 | </para> | 701 | </para> |
| 695 | 702 | ||
| 696 | <para> | 703 | <para> |
| 697 | This class expects the source code to support recipe builds that use the | 704 | By default, this class expects the source code to support recipe builds |
| 698 | <link linkend='var-B'><filename>B</filename></link> variable to point to the directory in | 705 | that use the <link linkend='var-B'><filename>B</filename></link> |
| 699 | which the OpenEmbedded build system places the generated objects built from the recipes. | 706 | variable to point to the directory in which the OpenEmbedded build |
| 700 | By default, the <filename>B</filename> directory is set to the following, which is separate from the | 707 | system places the generated objects built from the recipes. |
| 701 | Source Directory (<filename>S</filename>): | 708 | By default, the <filename>B</filename> directory is set to the |
| 709 | following, which is separate from the source directory | ||
| 710 | (<filename>S</filename>): | ||
| 702 | <literallayout class='monospaced'> | 711 | <literallayout class='monospaced'> |
| 703 | ${WORKDIR}/${BPN}/{PV}/ | 712 | ${WORKDIR}/${BPN}/{PV}/ |
| 704 | </literallayout> | 713 | </literallayout> |
| @@ -706,36 +715,17 @@ | |||
| 706 | <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>, | 715 | <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>, |
| 707 | <link linkend='var-BPN'><filename>BPN</filename></link>, | 716 | <link linkend='var-BPN'><filename>BPN</filename></link>, |
| 708 | <link linkend='var-PV'><filename>PV</filename></link>, | 717 | <link linkend='var-PV'><filename>PV</filename></link>, |
| 709 | <link linkend='var-S'><filename>S</filename></link>, and | ||
| 710 | <link linkend='var-B'><filename>B</filename></link> for more information. | ||
| 711 | </para> | 718 | </para> |
| 712 | 719 | ||
| 713 | <para> | 720 | <para> |
| 714 | You can build object files in the external tree by setting the | 721 | For more information on |
| 715 | <filename>B</filename> variable equal to <filename>"${S}"</filename>. | 722 | <filename>externalsrc.bbclass</filename>, see the comments in |
| 716 | However, this practice does not work well if you use the source for more than one variant | 723 | <filename>meta/classes/externalsrc.bbclass</filename> in the |
| 717 | (i.e., "natives" such as <filename>quilt-native</filename>, | 724 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>. |
| 718 | or "crosses" such as <filename>gcc-cross</filename>). | 725 | For information on how to use <filename>externalsrc.bbclass</filename>, |
| 719 | So, be sure there are no "native", "cross", or "multilib" variants of the recipe. | 726 | see the |
| 720 | </para> | 727 | "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building Software from an External Source</ulink>" |
| 721 | 728 | section in the Yocto Project Development Manual. | |
| 722 | <para> | ||
| 723 | If you do want to build different variants of a recipe, you can use the | ||
| 724 | <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link> variable. | ||
| 725 | When you do, the <link linkend='var-B'><filename>B</filename></link> variable must support the | ||
| 726 | recipe's ability to build variants in different working directories. | ||
| 727 | Most Autotools-based recipes support separating these directories. | ||
| 728 | The OpenEmbedded build system defaults to using separate directories for <filename>gcc</filename> | ||
| 729 | and some kernel recipes. | ||
| 730 | Alternatively, you can make sure that separate recipes exist that each | ||
| 731 | use the <filename>BBCLASSEXTEND</filename> variable to build each variant. | ||
| 732 | The separate recipes can inherit a single target recipe. | ||
| 733 | </para> | ||
| 734 | |||
| 735 | <para> | ||
| 736 | For information on how to use this class, see the | ||
| 737 | "<ulink url='&YOCTO_DOCS_DEV_URL;#building-software-from-an-external-source'>Building | ||
| 738 | Software from an External Source</ulink>" section in the Yocto Project Development Manual. | ||
| 739 | </para> | 729 | </para> |
| 740 | </section> | 730 | </section> |
| 741 | 731 | ||
