diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index bda509e9a0..33faddcca6 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -3342,28 +3342,76 @@
If you can't use the bin_package
class, you need to be sure you are doing the following:
- Create a recipe where the
+
+ Create a recipe where the
+ do_configure
+ and
+ do_compile
+ tasks do nothing:
+ It is usually sufficient to just not define these
+ tasks in the recipe, because the default
+ implementations do nothing unless a Makefile is
+ found in
+ ${S}.
+
+
+ If
+ ${S} might contain a Makefile,
+ or if you inherit some class that replaces
do_configure and
- do_compile tasks do nothing:
+ do_compile with custom
+ versions, then you can use the
+ [noexec]
+ flag to turn the tasks into no-ops, as follows:
do_configure[noexec] = "1"
do_compile[noexec] = "1"
- Alternatively, you can make these tasks an empty
- function.
+ Unlike
+ deleting the tasks,
+ using the flag preserves the dependency chain from
+ the
+ do_fetch, do_unpack,
+ and
+ do_patch
+ tasks to the
+ do_install
+ task.
Make sure your
do_install task installs the
binaries appropriately.
Ensure that you set up
- FILES (usually
- FILES_${PN}) to point to the
- files you have installed, which of course depends
- on where you have installed them and whether
- those files are in different locations than the
- defaults.
+ FILES
+ (usually
+ FILES_${PN})
+ to point to the files you have installed, which of
+ course depends on where you have installed them
+ and whether those files are in different locations
+ than the defaults.
+
+ Using
+ DEPENDS
+ is a good idea even for components distributed in
+ binary form, and is often necessary for shared
+ libraries.
+ For a shared library, listing the library
+ dependencies in
+ DEPENDS makes sure that the
+ libraries are available in the staging sysroot when
+ other recipes link against the library, which might
+ be necessary for successful linking.
+
+ Using DEPENDS also
+ allows runtime dependencies between packages to be
+ added automatically.
+ See the
+ "Automatically Added Runtime Dependencies"
+ section in the Yocto Project Reference Manual for
+ more information.
+ .