diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2016-02-12 18:05:24 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-03 17:40:12 +0000 |
commit | c678d1a524a22c4a79b5496273ea346448589f7d (patch) | |
tree | e92683d1576cb8ea8b0b8e920d6f81ad16632d7e /documentation/dev-manual | |
parent | a09238adc7eb71183bf70c3fe732d5a392d98893 (diff) | |
download | openembedded-core-contrib-c678d1a524a22c4a79b5496273ea346448589f7d.tar.gz |
dev-manual: Updated the devtool add section.
(From yocto-docs rev: 3d6efac4a54de21f4c6bba4e3eb3a7c2fcfd33ba)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r-- | documentation/dev-manual/dev-manual-model.xml | 125 |
1 files changed, 120 insertions, 5 deletions
diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index b07b6c96c9..843b1b788d 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml @@ -1779,10 +1779,24 @@ <title>Use <filename>devtool add</filename> to Integrate New Code</title> <para> - This section describes the <filename>devtool</filename> - workflow to integrate new code. - With this workflow, you can either build and deploy - your code or rebuild an image that contains your code. + The <filename>devtool add</filename> command generates + a new recipe based on existing source code. + This command takes advantage of the + <link linkend='devtool-the-workspace-layer-structure'>workspace</link> + layer that many <filename>devtool</filename> commands + use. + The command is flexible enough to allow you to extract source + code into both the workspace or a separate local Git repository + and to use existing code that does not need to be extracted. + </para> + + <para> + Depending on your particular scenario, the arguments and options + you use with <filename>devtool add</filename> form different + combinations. + The following diagram shows common development flows + you would use with the <filename>devtool add</filename> + command: </para> <para> @@ -1791,6 +1805,106 @@ <para> <orderedlist> + <listitem><para><emphasis>Generating the New Recipe</emphasis>: + The top part of the flow shows three scenarios by which + you could use <filename>devtool add</filename> to + generate a recipe based on existing source code.</para> + + <para>In a shared development environment, it is + typical where other developers are responsible for + various areas of source code. + As a developer, you are probably interested in using + that source code as part of your development using + the Yocto Project. + All you need is access to the code, a recipe, and a + controlled area in which to do your work.</para> + + <para>Within the diagram, three possible scenarios + feed into the <filename>devtool add</filename> workflow: + <itemizedlist> + <listitem><para><emphasis>Left</emphasis>: + The left scenario represents a situation + where the source tree (srctree) exists as a + previously extracted Git structure outside of + the <filename>devtool</filename> workspace. + </para> + + <para>The following command names the recipe + and identifies where the existing source tree + is located: + <literallayout class='monospaced'> + $ devtool add <replaceable>recipe srctree</replaceable> + </literallayout> + <note> + If a recipe exists that is associated with + source code, <filename>devtool</filename> + can leverage off that if it knows about the + layer in which the recipe resides. + Be sure to update your + <filename>conf/bblayers.conf</filename> file + to include the layers you want + <filename>devtool</filename> to know about + when looking for an existing recipe. + </note> + The command examines the source code and creates + a recipe for it placing the recipe into the + workspace.</para> + + <para>Because the extracted source code already exists, + <filename>devtool</filename> does not try to + relocate it into the workspace - just the new + (or a modified copy of) the recipe is placed in + the workspace.</para> + + <para>Aside from a recipe folder, the command + also creates an append folder and places an initial + <filename>*.bbappend</filename> within. + </para></listitem> + <listitem><para><emphasis>Middle</emphasis>: + The middle scenario represents a situation where + the source code does not exist locally. + In this case, the code is in an upstream Git + repository and needs to be extracted to some + local area. + Furthermore, the first positional argument + <replaceable>srctree</replaceable> in this case + identifies where the + <filename>devtool add</filename> command + will locate the extracted code outside of the + workspace: + <literallayout class='monospaced'> + $ devtool add <replaceable>srctree fetchuri</replaceable> + </literallayout> + In summary, the source code is pulled from + <replaceable>fetchuri</replaceable> and extracted + into the location defined by + <replaceable>srctree</replaceable> as a local + Git repository.</para> + + <para>Within workspace, <filename>devtool</filename> + creates both the recipe and an append file + for the recipe. + </para></listitem> + <listitem><para><emphasis>Right</emphasis>: + The right scenario represents another situation + where the source code does not exist locally + and again needs to be extracted. + However, in this situation, you want to extract the + source into the workspace. + Thus, everything you need will be located in the + workspace: + <literallayout class='monospaced'> + $ devtool add <replaceable>recipe fetchuri</replaceable> + </literallayout> + With this command, <filename>devtool</filename> + creates a recipe and an append file in the + workspace as well as extracts the upstream + source files into a local Git repository also + within the <filename>sources</filename> folder. + </para></listitem> + </itemizedlist> + </para></listitem> +<!-- <listitem><para><emphasis>Add a New Recipe</emphasis>: The <filename>devtool add</filename> command automatically generates the needed Metadata that allows the OpenEmbedded @@ -1845,7 +1959,7 @@ to fetch source from a remote URL, the command turns the source directory into a Git repository if one does not already exist. - You can disable this behavior by using the "--no-git" + You can disable this behavior by using the "‐‐no-git" option. The <filename>devtool add</filename> command does this in order to support using @@ -1866,6 +1980,7 @@ recipe. </tip> </para></listitem> +--> <listitem><para><emphasis>Edit the Recipe</emphasis>: At this point, you can use <filename>devtool edit-recipe</filename> to open up the editor as defined by the |