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 | |
| parent | a09238adc7eb71183bf70c3fe732d5a392d98893 (diff) | |
| download | poky-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>
| -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 @@ | |||
| 1779 | <title>Use <filename>devtool add</filename> to Integrate New Code</title> | 1779 | <title>Use <filename>devtool add</filename> to Integrate New Code</title> |
| 1780 | 1780 | ||
| 1781 | <para> | 1781 | <para> |
| 1782 | This section describes the <filename>devtool</filename> | 1782 | The <filename>devtool add</filename> command generates |
| 1783 | workflow to integrate new code. | 1783 | a new recipe based on existing source code. |
| 1784 | With this workflow, you can either build and deploy | 1784 | This command takes advantage of the |
| 1785 | your code or rebuild an image that contains your code. | 1785 | <link linkend='devtool-the-workspace-layer-structure'>workspace</link> |
| 1786 | layer that many <filename>devtool</filename> commands | ||
| 1787 | use. | ||
| 1788 | The command is flexible enough to allow you to extract source | ||
| 1789 | code into both the workspace or a separate local Git repository | ||
| 1790 | and to use existing code that does not need to be extracted. | ||
| 1791 | </para> | ||
| 1792 | |||
| 1793 | <para> | ||
| 1794 | Depending on your particular scenario, the arguments and options | ||
| 1795 | you use with <filename>devtool add</filename> form different | ||
| 1796 | combinations. | ||
| 1797 | The following diagram shows common development flows | ||
| 1798 | you would use with the <filename>devtool add</filename> | ||
| 1799 | command: | ||
| 1786 | </para> | 1800 | </para> |
| 1787 | 1801 | ||
| 1788 | <para> | 1802 | <para> |
| @@ -1791,6 +1805,106 @@ | |||
| 1791 | 1805 | ||
| 1792 | <para> | 1806 | <para> |
| 1793 | <orderedlist> | 1807 | <orderedlist> |
| 1808 | <listitem><para><emphasis>Generating the New Recipe</emphasis>: | ||
| 1809 | The top part of the flow shows three scenarios by which | ||
| 1810 | you could use <filename>devtool add</filename> to | ||
| 1811 | generate a recipe based on existing source code.</para> | ||
| 1812 | |||
| 1813 | <para>In a shared development environment, it is | ||
| 1814 | typical where other developers are responsible for | ||
| 1815 | various areas of source code. | ||
| 1816 | As a developer, you are probably interested in using | ||
| 1817 | that source code as part of your development using | ||
| 1818 | the Yocto Project. | ||
| 1819 | All you need is access to the code, a recipe, and a | ||
| 1820 | controlled area in which to do your work.</para> | ||
| 1821 | |||
| 1822 | <para>Within the diagram, three possible scenarios | ||
| 1823 | feed into the <filename>devtool add</filename> workflow: | ||
| 1824 | <itemizedlist> | ||
| 1825 | <listitem><para><emphasis>Left</emphasis>: | ||
| 1826 | The left scenario represents a situation | ||
| 1827 | where the source tree (srctree) exists as a | ||
| 1828 | previously extracted Git structure outside of | ||
| 1829 | the <filename>devtool</filename> workspace. | ||
| 1830 | </para> | ||
| 1831 | |||
| 1832 | <para>The following command names the recipe | ||
| 1833 | and identifies where the existing source tree | ||
| 1834 | is located: | ||
| 1835 | <literallayout class='monospaced'> | ||
| 1836 | $ devtool add <replaceable>recipe srctree</replaceable> | ||
| 1837 | </literallayout> | ||
| 1838 | <note> | ||
| 1839 | If a recipe exists that is associated with | ||
| 1840 | source code, <filename>devtool</filename> | ||
| 1841 | can leverage off that if it knows about the | ||
| 1842 | layer in which the recipe resides. | ||
| 1843 | Be sure to update your | ||
| 1844 | <filename>conf/bblayers.conf</filename> file | ||
| 1845 | to include the layers you want | ||
| 1846 | <filename>devtool</filename> to know about | ||
| 1847 | when looking for an existing recipe. | ||
| 1848 | </note> | ||
| 1849 | The command examines the source code and creates | ||
| 1850 | a recipe for it placing the recipe into the | ||
| 1851 | workspace.</para> | ||
| 1852 | |||
| 1853 | <para>Because the extracted source code already exists, | ||
| 1854 | <filename>devtool</filename> does not try to | ||
| 1855 | relocate it into the workspace - just the new | ||
| 1856 | (or a modified copy of) the recipe is placed in | ||
| 1857 | the workspace.</para> | ||
| 1858 | |||
| 1859 | <para>Aside from a recipe folder, the command | ||
| 1860 | also creates an append folder and places an initial | ||
| 1861 | <filename>*.bbappend</filename> within. | ||
| 1862 | </para></listitem> | ||
| 1863 | <listitem><para><emphasis>Middle</emphasis>: | ||
| 1864 | The middle scenario represents a situation where | ||
| 1865 | the source code does not exist locally. | ||
| 1866 | In this case, the code is in an upstream Git | ||
| 1867 | repository and needs to be extracted to some | ||
| 1868 | local area. | ||
| 1869 | Furthermore, the first positional argument | ||
| 1870 | <replaceable>srctree</replaceable> in this case | ||
| 1871 | identifies where the | ||
| 1872 | <filename>devtool add</filename> command | ||
| 1873 | will locate the extracted code outside of the | ||
| 1874 | workspace: | ||
| 1875 | <literallayout class='monospaced'> | ||
| 1876 | $ devtool add <replaceable>srctree fetchuri</replaceable> | ||
| 1877 | </literallayout> | ||
| 1878 | In summary, the source code is pulled from | ||
| 1879 | <replaceable>fetchuri</replaceable> and extracted | ||
| 1880 | into the location defined by | ||
| 1881 | <replaceable>srctree</replaceable> as a local | ||
| 1882 | Git repository.</para> | ||
| 1883 | |||
| 1884 | <para>Within workspace, <filename>devtool</filename> | ||
| 1885 | creates both the recipe and an append file | ||
| 1886 | for the recipe. | ||
| 1887 | </para></listitem> | ||
| 1888 | <listitem><para><emphasis>Right</emphasis>: | ||
| 1889 | The right scenario represents another situation | ||
| 1890 | where the source code does not exist locally | ||
| 1891 | and again needs to be extracted. | ||
| 1892 | However, in this situation, you want to extract the | ||
| 1893 | source into the workspace. | ||
| 1894 | Thus, everything you need will be located in the | ||
| 1895 | workspace: | ||
| 1896 | <literallayout class='monospaced'> | ||
| 1897 | $ devtool add <replaceable>recipe fetchuri</replaceable> | ||
| 1898 | </literallayout> | ||
| 1899 | With this command, <filename>devtool</filename> | ||
| 1900 | creates a recipe and an append file in the | ||
| 1901 | workspace as well as extracts the upstream | ||
| 1902 | source files into a local Git repository also | ||
| 1903 | within the <filename>sources</filename> folder. | ||
| 1904 | </para></listitem> | ||
| 1905 | </itemizedlist> | ||
| 1906 | </para></listitem> | ||
| 1907 | <!-- | ||
| 1794 | <listitem><para><emphasis>Add a New Recipe</emphasis>: | 1908 | <listitem><para><emphasis>Add a New Recipe</emphasis>: |
| 1795 | The <filename>devtool add</filename> command automatically | 1909 | The <filename>devtool add</filename> command automatically |
| 1796 | generates the needed Metadata that allows the OpenEmbedded | 1910 | generates the needed Metadata that allows the OpenEmbedded |
| @@ -1845,7 +1959,7 @@ | |||
| 1845 | to fetch source from a remote URL, the command turns | 1959 | to fetch source from a remote URL, the command turns |
| 1846 | the source directory into a Git repository if one does | 1960 | the source directory into a Git repository if one does |
| 1847 | not already exist. | 1961 | not already exist. |
| 1848 | You can disable this behavior by using the "--no-git" | 1962 | You can disable this behavior by using the "‐‐no-git" |
| 1849 | option. | 1963 | option. |
| 1850 | The <filename>devtool add</filename> command does this in | 1964 | The <filename>devtool add</filename> command does this in |
| 1851 | order to support using | 1965 | order to support using |
| @@ -1866,6 +1980,7 @@ | |||
| 1866 | recipe. | 1980 | recipe. |
| 1867 | </tip> | 1981 | </tip> |
| 1868 | </para></listitem> | 1982 | </para></listitem> |
| 1983 | --> | ||
| 1869 | <listitem><para><emphasis>Edit the Recipe</emphasis>: | 1984 | <listitem><para><emphasis>Edit the Recipe</emphasis>: |
| 1870 | At this point, you can use <filename>devtool edit-recipe</filename> | 1985 | At this point, you can use <filename>devtool edit-recipe</filename> |
| 1871 | to open up the editor as defined by the | 1986 | to open up the editor as defined by the |
