123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690 |
- .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
- ***************************
- ``devtool`` Quick Reference
- ***************************
- The ``devtool`` command-line tool provides a number of features that
- help you build, test, and package software. This command is available
- alongside the ``bitbake`` command. Additionally, the ``devtool`` command
- is a key part of the extensible SDK.
- This chapter provides a Quick Reference for the ``devtool`` command. For
- more information on how to apply the command when using the extensible
- SDK, see the ":doc:`/sdk-manual/extensible`" chapter in the Yocto
- Project Application Development and the Extensible Software Development
- Kit (eSDK) manual.
- .. _devtool-getting-help:
- Getting Help
- ============
- The ``devtool`` command line is organized similarly to Git in that it
- has a number of sub-commands for each function. You can run
- ``devtool --help`` to see all the commands::
- $ devtool --help
- NOTE: Starting bitbake server...
- usage: devtool [--basepath BASEPATH] [--bbpath BBPATH] [-d] [-q] [--color COLOR] [-h] <subcommand> ...
- OpenEmbedded development tool
- options:
- --basepath BASEPATH Base directory of SDK / build directory
- --bbpath BBPATH Explicitly specify the BBPATH, rather than getting it from the metadata
- -d, --debug Enable debug output
- -q, --quiet Print only errors
- --color COLOR Colorize output (where COLOR is auto, always, never)
- -h, --help show this help message and exit
- subcommands:
- Beginning work on a recipe:
- add Add a new recipe
- modify Modify the source for an existing recipe
- upgrade Upgrade an existing recipe
- Getting information:
- status Show workspace status
- latest-version Report the latest version of an existing recipe
- check-upgrade-status Report upgradability for multiple (or all) recipes
- search Search available recipes
- Working on a recipe in the workspace:
- build Build a recipe
- ide-sdk Setup the SDK and configure the IDE
- rename Rename a recipe file in the workspace
- edit-recipe Edit a recipe file
- find-recipe Find a recipe file
- configure-help Get help on configure script options
- update-recipe Apply changes from external source tree to recipe
- reset Remove a recipe from your workspace
- finish Finish working on a recipe in your workspace
- Testing changes on target:
- deploy-target Deploy recipe output files to live target machine
- undeploy-target Undeploy recipe output files in live target machine
- build-image Build image including workspace recipe packages
- Advanced:
- create-workspace Set up workspace in an alternative location
- import Import exported tar archive into workspace
- export Export workspace into a tar archive
- extract Extract the source for an existing recipe
- sync Synchronize the source tree for an existing recipe
- menuconfig Alter build-time configuration for a recipe
- Use devtool <subcommand> --help to get help on a specific command
- As directed in the general help output, you can
- get more syntax on a specific command by providing the command name and
- using ``--help``::
- $ devtool add --help
- NOTE: Starting bitbake server...
- usage: devtool add [-h] [--same-dir | --no-same-dir] [--fetch URI] [--npm-dev] [--no-pypi] [--version VERSION] [--no-git] [--srcrev SRCREV | --autorev]
- [--srcbranch SRCBRANCH] [--binary] [--also-native] [--src-subdir SUBDIR] [--mirrors] [--provides PROVIDES]
- [recipename] [srctree] [fetchuri]
- Adds a new recipe to the workspace to build a specified source tree. Can optionally fetch a remote URI and unpack it to create the source tree.
- arguments:
- recipename Name for new recipe to add (just name - no version, path or extension). If not specified, will attempt to auto-detect it.
- srctree Path to external source tree. If not specified, a subdirectory of /media/build1/poky/build/workspace/sources will be used.
- fetchuri Fetch the specified URI and extract it to create the source tree
- options:
- -h, --help show this help message and exit
- --same-dir, -s Build in same directory as source
- --no-same-dir Force build in a separate build directory
- --fetch URI, -f URI Fetch the specified URI and extract it to create the source tree (deprecated - pass as positional argument instead)
- --npm-dev For npm, also fetch devDependencies
- --no-pypi Do not inherit pypi class
- --version VERSION, -V VERSION
- Version to use within recipe (PV)
- --no-git, -g If fetching source, do not set up source tree as a git repository
- --srcrev SRCREV, -S SRCREV
- Source revision to fetch if fetching from an SCM such as git (default latest)
- --autorev, -a When fetching from a git repository, set SRCREV in the recipe to a floating revision instead of fixed
- --srcbranch SRCBRANCH, -B SRCBRANCH
- Branch in source repository if fetching from an SCM such as git (default master)
- --binary, -b Treat the source tree as something that should be installed verbatim (no compilation, same directory structure). Useful with binary packages e.g. RPMs.
- --also-native Also add native variant (i.e. support building recipe for the build host as well as the target machine)
- --src-subdir SUBDIR Specify subdirectory within source tree to use
- --mirrors Enable PREMIRRORS and MIRRORS for source tree fetching (disable by default).
- --provides PROVIDES, -p PROVIDES
- Specify an alias for the item provided by the recipe. E.g. virtual/libgl
- .. _devtool-the-workspace-layer-structure:
- The Workspace Layer Structure
- =============================
- ``devtool`` uses a "Workspace" layer in which to accomplish builds. This
- layer is not specific to any single ``devtool`` command but is rather a
- common working area used across the tool.
- The following figure shows the workspace structure:
- .. image:: figures/build-workspace-directory.png
- :scale: 100%
- .. code-block:: none
- attic - A directory created if devtool believes it must preserve
- anything when you run "devtool reset". For example, if you
- run "devtool add", make changes to the recipe, and then
- run "devtool reset", devtool takes notice that the file has
- been changed and moves it into the attic should you still
- want the recipe.
- README - Provides information on what is in workspace layer and how to
- manage it.
- .devtool_md5 - A checksum file used by devtool.
- appends - A directory that contains *.bbappend files, which point to
- external source.
- conf - A configuration directory that contains the layer.conf file.
- recipes - A directory containing recipes. This directory contains a
- folder for each directory added whose name matches that of the
- added recipe. devtool places the recipe.bb file
- within that sub-directory.
- sources - A directory containing a working copy of the source files used
- when building the recipe. This is the default directory used
- as the location of the source tree when you do not provide a
- source tree path. This directory contains a folder for each
- set of source files matched to a corresponding recipe.
- .. _devtool-adding-a-new-recipe-to-the-workspace:
- Adding a New Recipe to the Workspace Layer
- ==========================================
- Use the ``devtool add`` command to add a new recipe to the workspace
- layer. The recipe you add should not exist --- ``devtool`` creates it for
- you. The source files the recipe uses should exist in an external area.
- The following example creates and adds a new recipe named ``jackson`` to
- a workspace layer the tool creates. The source code built by the recipes
- resides in ``/home/user/sources/jackson``::
- $ devtool add jackson /home/user/sources/jackson
- If you add a recipe and the workspace layer does not exist, the command
- creates the layer and populates it as described in
- ":ref:`devtool-the-workspace-layer-structure`" section.
- Running ``devtool add`` when the workspace layer exists causes the tool
- to add the recipe, append files, and source files into the existing
- workspace layer. The ``.bbappend`` file is created to point to the
- external source tree.
- .. note::
- If your recipe has runtime dependencies defined, you must be sure
- that these packages exist on the target hardware before attempting to
- run your application. If dependent packages (e.g. libraries) do not
- exist on the target, your application, when run, will fail to find
- those functions. For more information, see the
- ":ref:`ref-manual/devtool-reference:deploying your software on the target machine`"
- section.
- By default, ``devtool add`` uses the latest revision (i.e. master) when
- unpacking files from a remote URI. In some cases, you might want to
- specify a source revision by branch, tag, or commit hash. You can
- specify these options when using the ``devtool add`` command:
- - To specify a source branch, use the ``--srcbranch`` option::
- $ devtool add --srcbranch &DISTRO_NAME_NO_CAP; jackson /home/user/sources/jackson
- In the previous example, you are checking out the &DISTRO_NAME_NO_CAP;
- branch.
- - To specify a specific tag or commit hash, use the ``--srcrev``
- option::
- $ devtool add --srcrev &DISTRO_REL_TAG; jackson /home/user/sources/jackson
- $ devtool add --srcrev some_commit_hash /home/user/sources/jackson
- The previous examples check out the
- &DISTRO_REL_TAG; tag and the commit associated with the
- some_commit_hash hash.
- .. note::
- If you prefer to use the latest revision every time the recipe is
- built, use the options ``--autorev`` or ``-a``.
- .. _devtool-extracting-the-source-for-an-existing-recipe:
- Extracting the Source for an Existing Recipe
- ============================================
- Use the ``devtool extract`` command to extract the source for an
- existing recipe. When you use this command, you must supply the root
- name of the recipe (i.e. no version, paths, or extensions), and you must
- supply the directory to which you want the source extracted.
- Additional command options let you control the name of a development
- branch into which you can checkout the source and whether or not to keep
- a temporary directory, which is useful for debugging.
- .. _devtool-synchronizing-a-recipes-extracted-source-tree:
- Synchronizing a Recipe's Extracted Source Tree
- ==============================================
- Use the ``devtool sync`` command to synchronize a previously extracted
- source tree for an existing recipe. When you use this command, you must
- supply the root name of the recipe (i.e. no version, paths, or
- extensions), and you must supply the directory to which you want the
- source extracted.
- Additional command options let you control the name of a development
- branch into which you can checkout the source and whether or not to keep
- a temporary directory, which is useful for debugging.
- .. _devtool-modifying-a-recipe:
- Modifying an Existing Recipe
- ============================
- Use the ``devtool modify`` command to begin modifying the source of an
- existing recipe. This command is very similar to the
- :ref:`add <devtool-adding-a-new-recipe-to-the-workspace>` command
- except that it does not physically create the recipe in the workspace
- layer because the recipe already exists in an another layer.
- The ``devtool modify`` command extracts the source for a recipe, sets it
- up as a Git repository if the source had not already been fetched from
- Git, checks out a branch for development, and applies any patches from
- the recipe as commits on top. You can use the following command to
- checkout the source files::
- $ devtool modify recipe
- Using the above command form, ``devtool`` uses the existing recipe's
- :term:`SRC_URI` statement to locate the upstream source,
- extracts the source into the default sources location in the workspace.
- The default development branch used is "devtool".
- .. _devtool-edit-an-existing-recipe:
- Edit an Existing Recipe
- =======================
- Use the ``devtool edit-recipe`` command to run the default editor, which
- is identified using the ``EDITOR`` variable, on the specified recipe.
- When you use the ``devtool edit-recipe`` command, you must supply the
- root name of the recipe (i.e. no version, paths, or extensions). Also,
- the recipe file itself must reside in the workspace as a result of the
- ``devtool add`` or ``devtool upgrade`` commands.
- .. _devtool-updating-a-recipe:
- Updating a Recipe
- =================
- Use the ``devtool update-recipe`` command to update your recipe with
- patches that reflect changes you make to the source files. For example,
- if you know you are going to work on some code, you could first use the
- :ref:`devtool modify <devtool-modifying-a-recipe>` command to extract
- the code and set up the workspace. After which, you could modify,
- compile, and test the code.
- When you are satisfied with the results and you have committed your
- changes to the Git repository, you can then run the
- ``devtool update-recipe`` to create the patches and update the recipe::
- $ devtool update-recipe recipe
- If you run the ``devtool update-recipe``
- without committing your changes, the command ignores the changes.
- Often, you might want to apply customizations made to your software in
- your own layer rather than apply them to the original recipe. If so, you
- can use the ``-a`` or ``--append`` option with the
- ``devtool update-recipe`` command. These options allow you to specify
- the layer into which to write an append file::
- $ devtool update-recipe recipe -a base-layer-directory
- The ``*.bbappend`` file is created at the
- appropriate path within the specified layer directory, which may or may
- not be in your ``bblayers.conf`` file. If an append file already exists,
- the command updates it appropriately.
- .. _devtool-checking-on-the-upgrade-status-of-a-recipe:
- Checking on the Upgrade Status of a Recipe
- ==========================================
- Upstream recipes change over time. Consequently, you might find that you
- need to determine if you can upgrade a recipe to a newer version.
- To check on the upgrade status of a recipe, you can use the
- ``devtool latest-version recipe`` command, which quickly shows the current
- version and the latest version available upstream. To get a more global
- picture, use the ``devtool check-upgrade-status`` command, which takes a
- list of recipes as input, or no arguments, in which case it checks all
- available recipes. This command will only print the recipes for which
- a new upstream version is available. Each such recipe will have its current
- version and latest upstream version, as well as the email of the maintainer
- and any additional information such as the commit hash or reason for not
- being able to upgrade it, displayed in a table.
- This upgrade checking mechanism relies on the optional :term:`UPSTREAM_CHECK_URI`,
- :term:`UPSTREAM_CHECK_REGEX`, :term:`UPSTREAM_CHECK_GITTAGREGEX`,
- :term:`UPSTREAM_CHECK_COMMITS` and :term:`UPSTREAM_VERSION_UNKNOWN`
- variables in package recipes.
- .. note::
- - Most of the time, the above variables are unnecessary. They are only
- required when upstream does something unusual, and default
- mechanisms cannot find the new upstream versions.
- - For the ``oe-core`` layer, recipe maintainers come from the
- :yocto_git:`maintainers.inc </poky/tree/meta/conf/distro/include/maintainers.inc>`
- file.
- - If the recipe is using the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:git fetcher (\`\`git://\`\`)`
- rather than a tarball, the commit hash points to the commit that matches
- the recipe's latest version tag, or in the absence of suitable tags,
- to the latest commit (when :term:`UPSTREAM_CHECK_COMMITS` set to ``1``
- in the recipe).
- As with all ``devtool`` commands, you can get help on the individual
- command::
- $ devtool check-upgrade-status -h
- NOTE: Starting bitbake server...
- usage: devtool check-upgrade-status [-h] [--all] [recipe [recipe ...]]
- Prints a table of recipes together with versions currently provided by recipes, and latest upstream versions, when there is a later version available
- arguments:
- recipe Name of the recipe to report (omit to report upgrade info for all recipes)
- options:
- -h, --help show this help message and exit
- --all, -a Show all recipes, not just recipes needing upgrade
- Unless you provide a specific recipe name on the command line, the
- command checks all recipes in all configured layers.
- Here is a partial example table that reports on all the recipes::
- $ devtool check-upgrade-status
- ...
- INFO: bind 9.16.20 9.16.21 Armin Kuster <akuster808@gmail.com>
- INFO: inetutils 2.1 2.2 Tom Rini <trini@konsulko.com>
- INFO: iproute2 5.13.0 5.14.0 Changhyeok Bae <changhyeok.bae@gmail.com>
- INFO: openssl 1.1.1l 3.0.0 Alexander Kanavin <alex.kanavin@gmail.com>
- INFO: base-passwd 3.5.29 3.5.51 Anuj Mittal <anuj.mittal@intel.com> cannot be updated due to: Version 3.5.38 requires cdebconf for update-passwd utility
- ...
- Notice the reported reason for not upgrading the ``base-passwd`` recipe.
- In this example, while a new version is available upstream, you do not
- want to use it because the dependency on ``cdebconf`` is not easily
- satisfied. Maintainers can explicit the reason that is shown by adding
- the :term:`RECIPE_NO_UPDATE_REASON` variable to the corresponding recipe.
- See :yocto_git:`base-passwd.bb </poky/tree/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb?h=kirkstone>`
- for an example::
- RECIPE_NO_UPDATE_REASON = "Version 3.5.38 requires cdebconf for update-passwd utility"
- Last but not least, you may set :term:`UPSTREAM_VERSION_UNKNOWN` to ``1``
- in a recipe when there's currently no way to determine its latest upstream
- version.
- .. _devtool-upgrading-a-recipe:
- Upgrading a Recipe
- ==================
- As software matures, upstream recipes are upgraded to newer versions. As
- a developer, you need to keep your local recipes up-to-date with the
- upstream version releases. There are several ways of upgrading recipes.
- You can read about them in the ":ref:`dev-manual/upgrading-recipes:upgrading recipes`"
- section of the Yocto Project Development Tasks Manual. This section
- overviews the ``devtool upgrade`` command.
- Before you upgrade a recipe, you can check on its upgrade status. See
- the ":ref:`devtool-checking-on-the-upgrade-status-of-a-recipe`" section
- for more information.
- The ``devtool upgrade`` command upgrades an existing recipe to a more
- recent version of the recipe upstream. The command puts the upgraded
- recipe file along with any associated files into a "workspace" and, if
- necessary, extracts the source tree to a specified location. During the
- upgrade, patches associated with the recipe are rebased or added as
- needed.
- When you use the ``devtool upgrade`` command, you must supply the root
- name of the recipe (i.e. no version, paths, or extensions), and you must
- supply the directory to which you want the source extracted. Additional
- command options let you control things such as the version number to
- which you want to upgrade (i.e. the :term:`PV`), the source
- revision to which you want to upgrade (i.e. the
- :term:`SRCREV`), whether or not to apply patches, and so
- forth.
- You can read more on the ``devtool upgrade`` workflow in the
- ":ref:`dev-manual/devtool:use \`\`devtool upgrade\`\` to create a version of the recipe that supports a newer version of the software`"
- section in the Yocto Project Application Development and the Extensible
- Software Development Kit (eSDK) manual. You can also see an example of
- how to use ``devtool upgrade`` in the ":ref:`dev-manual/upgrading-recipes:using ``devtool upgrade```"
- section in the Yocto Project Development Tasks Manual.
- .. _devtool-resetting-a-recipe:
- Resetting a Recipe
- ==================
- Use the ``devtool reset`` command to remove a recipe and its
- configuration (e.g. the corresponding ``.bbappend`` file) from the
- workspace layer. Realize that this command deletes the recipe and the
- append file. The command does not physically move them for you.
- Consequently, you must be sure to physically relocate your updated
- recipe and the append file outside of the workspace layer before running
- the ``devtool reset`` command.
- If the ``devtool reset`` command detects that the recipe or the append
- files have been modified, the command preserves the modified files in a
- separate "attic" subdirectory under the workspace layer.
- Here is an example that resets the workspace directory that contains the
- ``mtr`` recipe::
- $ devtool reset mtr
- NOTE: Cleaning sysroot for recipe mtr...
- NOTE: Leaving source tree /home/scottrif/poky/build/workspace/sources/mtr as-is; if you no longer need it then please delete it manually
- $
- .. _devtool-finish-working-on-a-recipe:
- Finish Working on a Recipe
- ==========================
- Use the ``devtool finish`` command to push any committed changes to the
- specified recipe in the specified layer and remove it from your workspace.
- This is roughly equivalent to the ``devtool update-recipe`` command followed by
- the ``devtool reset`` command. The changes must have been committed to the git
- repository created by ``devtool``. Here is an example::
- $ devtool finish recipe /path/to/custom/layer
- .. _devtool-building-your-recipe:
- Building Your Recipe
- ====================
- Use the ``devtool build`` command to build your recipe. The
- ``devtool build`` command is equivalent to the
- ``bitbake -c populate_sysroot`` command.
- When you use the ``devtool build`` command, you must supply the root
- name of the recipe (i.e. do not provide versions, paths, or extensions).
- You can use either the ``-s`` or the ``--disable-parallel-make`` options to
- disable parallel makes during the build. Here is an example::
- $ devtool build recipe
- .. _devtool-building-your-image:
- Building Your Image
- ===================
- Use the ``devtool build-image`` command to build an image, extending it
- to include packages from recipes in the workspace. Using this command is
- useful when you want an image that ready for immediate deployment onto a
- device for testing. For proper integration into a final image, you need
- to edit your custom image recipe appropriately.
- When you use the ``devtool build-image`` command, you must supply the
- name of the image. This command has no command line options::
- $ devtool build-image image
- .. _devtool-deploying-your-software-on-the-target-machine:
- Deploying Your Software on the Target Machine
- =============================================
- Use the ``devtool deploy-target`` command to deploy the recipe's build
- output to the live target machine::
- $ devtool deploy-target recipe target
- The target is the address of the target machine, which must be running
- an SSH server (i.e. ``user@hostname[:destdir]``).
- This command deploys all files installed during the
- :ref:`ref-tasks-install` task. Furthermore, you do not
- need to have package management enabled within the target machine. If
- you do, the package manager is bypassed.
- .. note::
- The ``deploy-target`` functionality is for development only. You
- should never use it to update an image that will be used in
- production.
- Some conditions could prevent a deployed application from
- behaving as expected. When both of the following conditions are met, your
- application has the potential to not behave correctly when run on the
- target:
- - You are deploying a new application to the target and the recipe you
- used to build the application had correctly defined runtime
- dependencies.
- - The target does not physically have the packages on which the
- application depends installed.
- If both of these conditions are met, your application will not behave as
- expected. The reason for this misbehavior is because the
- ``devtool deploy-target`` command does not deploy the packages (e.g.
- libraries) on which your new application depends. The assumption is that
- the packages are already on the target. Consequently, when a runtime
- call is made in the application for a dependent function (e.g. a library
- call), the function cannot be found.
- .. warning::
- Runtime dependencies can be explicitly listed in the :term:`RDEPENDS`
- variable, but may also be the result of a :term:`DEPENDS` assignment in your
- application's recipe. This is usually the case when your application depends
- on libraries for compilation: these libraries are listed as build-time
- dependencies in the :term:`DEPENDS` variable in your application's recipe.
- However these may also be runtime dependencies if they install shared objects
- on which your application will dynamically link to at runtime (e.g. shared
- libraries ending with ``.so``).
- These runtime dependencies are automatically resolved by the
- :term:`OpenEmbedded Build System` during the packaging phase. Since
- ``devtool`` ignores packaging dependencies, they will not be installed
- automatically with ``devtool deploy-target``.
- For more information on how the :term:`OpenEmbedded Build System` handles
- packaging, see the :ref:`overview-manual/concepts:Automatically Added Runtime
- Dependencies` section of the Yocto Project Overview and Concepts Manual.
- To be sure you have all the dependencies local to the target, you need
- to be sure that the packages are pre-deployed (installed) on the target
- before attempting to run your application.
- .. _devtool-removing-your-software-from-the-target-machine:
- Removing Your Software from the Target Machine
- ==============================================
- Use the ``devtool undeploy-target`` command to remove deployed build
- output from the target machine. For the ``devtool undeploy-target``
- command to work, you must have previously used the
- ":ref:`devtool deploy-target <ref-manual/devtool-reference:deploying your software on the target machine>`"
- command::
- $ devtool undeploy-target recipe target
- The target is the
- address of the target machine, which must be running an SSH server (i.e.
- ``user@hostname``).
- .. _devtool-creating-the-workspace:
- Creating the Workspace Layer in an Alternative Location
- =======================================================
- Use the ``devtool create-workspace`` command to create a new workspace
- layer in your :term:`Build Directory`. When you create a
- new workspace layer, it is populated with the ``README`` file and the
- ``conf`` directory only.
- The following example creates a new workspace layer in your current
- working and by default names the workspace layer "workspace"::
- $ devtool create-workspace
- You can create a workspace layer anywhere by supplying a pathname with
- the command. The following command creates a new workspace layer named
- "new-workspace"::
- $ devtool create-workspace /home/scottrif/new-workspace
- .. _devtool-get-the-status-of-the-recipes-in-your-workspace:
- Get the Status of the Recipes in Your Workspace
- ===============================================
- Use the ``devtool status`` command to list the recipes currently in your
- workspace. Information includes the paths to their respective external
- source trees.
- The ``devtool status`` command has no command-line options::
- $ devtool status
- Here is sample output after using
- :ref:`devtool add <ref-manual/devtool-reference:adding a new recipe to the workspace layer>`
- to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory::
- $ devtool status
- mtr:/home/scottrif/poky/build/workspace/sources/mtr (/home/scottrif/poky/build/workspace/recipes/mtr/mtr_0.86.bb)
- $
- .. _devtool-search-for-available-target-recipes:
- Search for Available Target Recipes
- ===================================
- Use the ``devtool search`` command to search for available target
- recipes. The command matches the recipe name, package name, description,
- and installed files. The command displays the recipe name as a result of
- a match.
- When you use the ``devtool search`` command, you must supply a keyword.
- The command uses the keyword when searching for a match.
- Alternatively, the ``devtool find-recipe`` command can be used to search for
- recipe files instead of recipe names. Likewise, you must supply a keyword.
- .. _devtool-get-the-configure-script-help:
- Get Information on Recipe Configuration Scripts
- ===============================================
- Use the ``devtool configure-help`` command to get help on the configuration
- script options for a given recipe. You must supply the recipe name to the
- command. For example, it shows the output of ``./configure --help`` for
- :ref:`autotools <ref-classes-autotools>`-based recipes.
- The ``configure-help`` command will also display the configuration options
- currently in use, including the ones passed through the :term:`EXTRA_OECONF`
- variable.
- .. _devtool-generate-an-ide-configuration-for-a-recipe:
- Generate an IDE Configuration for a Recipe
- ==========================================
- The ``devtool ide-sdk`` automatically creates an IDE configuration and SDK to
- work on a given recipe. Depending on the ``--mode`` parameter, different types
- of SDKs are generated:
- - ``modified`` mode: this creates an SDK and generates an IDE configuration in
- the workspace directory.
- - ``shared`` mode: this creates a cross-compiling toolchain and the
- corresponding shared sysroot directories of the supplied recipe(s).
- The ``--target`` option can be used to specify a ``username@hostname`` string
- and create a remote debugging configuration for the recipe. Similarly to
- ``devtool deploy-target``, it requires an SSH server running on the target.
- For further details on the ``devtool ide-sdk`` command, see the
- ":doc:`/sdk-manual/extensible`" chapter in the Yocto Project Application
- Development and the Extensible Software Development Kit (eSDK) manual.
|