diff options
Diffstat (limited to 'bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst')
-rw-r--r-- | bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst | 195 |
1 files changed, 94 insertions, 101 deletions
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst index e3fd321588..654196ca24 100644 --- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst +++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.rst | |||
@@ -18,28 +18,32 @@ it. | |||
18 | Obtaining BitBake | 18 | Obtaining BitBake |
19 | ================= | 19 | ================= |
20 | 20 | ||
21 | See the :ref:`bitbake-user-manual/bitbake-user-manual-hello:obtaining bitbake` section for | 21 | See the :ref:`bitbake-user-manual/bitbake-user-manual-intro:obtaining bitbake` section for |
22 | information on how to obtain BitBake. Once you have the source code on | 22 | information on how to obtain BitBake. Once you have the source code on |
23 | your machine, the BitBake directory appears as follows: :: | 23 | your machine, the BitBake directory appears as follows:: |
24 | 24 | ||
25 | $ ls -al | 25 | $ ls -al |
26 | total 100 | 26 | total 108 |
27 | drwxrwxr-x. 9 wmat wmat 4096 Jan 31 13:44 . | 27 | drwxr-xr-x 9 fawkh 10000 4096 feb 24 12:10 . |
28 | drwxrwxr-x. 3 wmat wmat 4096 Feb 4 10:45 .. | 28 | drwx------ 36 fawkh 10000 4096 mar 2 17:00 .. |
29 | -rw-rw-r--. 1 wmat wmat 365 Nov 26 04:55 AUTHORS | 29 | -rw-r--r-- 1 fawkh 10000 365 feb 24 12:10 AUTHORS |
30 | drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 bin | 30 | drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 bin |
31 | drwxrwxr-x. 4 wmat wmat 4096 Jan 31 13:44 build | 31 | -rw-r--r-- 1 fawkh 10000 16501 feb 24 12:10 ChangeLog |
32 | -rw-rw-r--. 1 wmat wmat 16501 Nov 26 04:55 ChangeLog | 32 | drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 classes |
33 | drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 classes | 33 | drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 conf |
34 | drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 conf | 34 | drwxr-xr-x 5 fawkh 10000 4096 feb 24 12:10 contrib |
35 | drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 contrib | 35 | drwxr-xr-x 6 fawkh 10000 4096 feb 24 12:10 doc |
36 | -rw-rw-r--. 1 wmat wmat 17987 Nov 26 04:55 COPYING | 36 | drwxr-xr-x 8 fawkh 10000 4096 mar 2 16:26 .git |
37 | drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 doc | 37 | -rw-r--r-- 1 fawkh 10000 31 feb 24 12:10 .gitattributes |
38 | -rw-rw-r--. 1 wmat wmat 69 Nov 26 04:55 .gitignore | 38 | -rw-r--r-- 1 fawkh 10000 392 feb 24 12:10 .gitignore |
39 | -rw-rw-r--. 1 wmat wmat 849 Nov 26 04:55 HEADER | 39 | drwxr-xr-x 13 fawkh 10000 4096 feb 24 12:11 lib |
40 | drwxrwxr-x. 5 wmat wmat 4096 Jan 31 13:44 lib | 40 | -rw-r--r-- 1 fawkh 10000 1224 feb 24 12:10 LICENSE |
41 | -rw-rw-r--. 1 wmat wmat 195 Nov 26 04:55 MANIFEST.in | 41 | -rw-r--r-- 1 fawkh 10000 15394 feb 24 12:10 LICENSE.GPL-2.0-only |
42 | -rw-rw-r--. 1 wmat wmat 2887 Nov 26 04:55 TODO | 42 | -rw-r--r-- 1 fawkh 10000 1286 feb 24 12:10 LICENSE.MIT |
43 | -rw-r--r-- 1 fawkh 10000 229 feb 24 12:10 MANIFEST.in | ||
44 | -rw-r--r-- 1 fawkh 10000 2413 feb 24 12:10 README | ||
45 | -rw-r--r-- 1 fawkh 10000 43 feb 24 12:10 toaster-requirements.txt | ||
46 | -rw-r--r-- 1 fawkh 10000 2887 feb 24 12:10 TODO | ||
43 | 47 | ||
44 | At this point, you should have BitBake cloned to a directory that | 48 | At this point, you should have BitBake cloned to a directory that |
45 | matches the previous listing except for dates and user names. | 49 | matches the previous listing except for dates and user names. |
@@ -49,10 +53,10 @@ Setting Up the BitBake Environment | |||
49 | 53 | ||
50 | First, you need to be sure that you can run BitBake. Set your working | 54 | First, you need to be sure that you can run BitBake. Set your working |
51 | directory to where your local BitBake files are and run the following | 55 | directory to where your local BitBake files are and run the following |
52 | command: :: | 56 | command:: |
53 | 57 | ||
54 | $ ./bin/bitbake --version | 58 | $ ./bin/bitbake --version |
55 | BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0 | 59 | BitBake Build Tool Core version 2.3.1 |
56 | 60 | ||
57 | The console output tells you what version | 61 | The console output tells you what version |
58 | you are running. | 62 | you are running. |
@@ -61,14 +65,14 @@ The recommended method to run BitBake is from a directory of your | |||
61 | choice. To be able to run BitBake from any directory, you need to add | 65 | choice. To be able to run BitBake from any directory, you need to add |
62 | the executable binary to your binary to your shell's environment | 66 | the executable binary to your binary to your shell's environment |
63 | ``PATH`` variable. First, look at your current ``PATH`` variable by | 67 | ``PATH`` variable. First, look at your current ``PATH`` variable by |
64 | entering the following: :: | 68 | entering the following:: |
65 | 69 | ||
66 | $ echo $PATH | 70 | $ echo $PATH |
67 | 71 | ||
68 | Next, add the directory location | 72 | Next, add the directory location |
69 | for the BitBake binary to the ``PATH``. Here is an example that adds the | 73 | for the BitBake binary to the ``PATH``. Here is an example that adds the |
70 | ``/home/scott-lenovo/bitbake/bin`` directory to the front of the | 74 | ``/home/scott-lenovo/bitbake/bin`` directory to the front of the |
71 | ``PATH`` variable: :: | 75 | ``PATH`` variable:: |
72 | 76 | ||
73 | $ export PATH=/home/scott-lenovo/bitbake/bin:$PATH | 77 | $ export PATH=/home/scott-lenovo/bitbake/bin:$PATH |
74 | 78 | ||
@@ -99,7 +103,7 @@ discussion mailing list about the BitBake build tool. | |||
99 | 103 | ||
100 | This example was inspired by and drew heavily from | 104 | This example was inspired by and drew heavily from |
101 | `Mailing List post - The BitBake equivalent of "Hello, World!" | 105 | `Mailing List post - The BitBake equivalent of "Hello, World!" |
102 | <http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html>`_. | 106 | <https://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html>`_. |
103 | 107 | ||
104 | As stated earlier, the goal of this example is to eventually compile | 108 | As stated earlier, the goal of this example is to eventually compile |
105 | "Hello World". However, it is unknown what BitBake needs and what you | 109 | "Hello World". However, it is unknown what BitBake needs and what you |
@@ -116,7 +120,7 @@ Following is the complete "Hello World" example. | |||
116 | 120 | ||
117 | #. **Create a Project Directory:** First, set up a directory for the | 121 | #. **Create a Project Directory:** First, set up a directory for the |
118 | "Hello World" project. Here is how you can do so in your home | 122 | "Hello World" project. Here is how you can do so in your home |
119 | directory: :: | 123 | directory:: |
120 | 124 | ||
121 | $ mkdir ~/hello | 125 | $ mkdir ~/hello |
122 | $ cd ~/hello | 126 | $ cd ~/hello |
@@ -127,41 +131,26 @@ Following is the complete "Hello World" example. | |||
127 | directory is a good way to isolate your project. | 131 | directory is a good way to isolate your project. |
128 | 132 | ||
129 | #. **Run BitBake:** At this point, you have nothing but a project | 133 | #. **Run BitBake:** At this point, you have nothing but a project |
130 | directory. Run the ``bitbake`` command and see what it does: :: | 134 | directory. Run the ``bitbake`` command and see what it does:: |
131 | 135 | ||
132 | $ bitbake | 136 | $ bitbake |
133 | The BBPATH variable is not set and bitbake did not | 137 | ERROR: The BBPATH variable is not set and bitbake did not find a conf/bblayers.conf file in the expected location. |
134 | find a conf/bblayers.conf file in the expected location. | ||
135 | Maybe you accidentally invoked bitbake from the wrong directory? | 138 | Maybe you accidentally invoked bitbake from the wrong directory? |
136 | DEBUG: Removed the following variables from the environment: | ||
137 | GNOME_DESKTOP_SESSION_ID, XDG_CURRENT_DESKTOP, | ||
138 | GNOME_KEYRING_CONTROL, DISPLAY, SSH_AGENT_PID, LANG, no_proxy, | ||
139 | XDG_SESSION_PATH, XAUTHORITY, SESSION_MANAGER, SHLVL, | ||
140 | MANDATORY_PATH, COMPIZ_CONFIG_PROFILE, WINDOWID, EDITOR, | ||
141 | GPG_AGENT_INFO, SSH_AUTH_SOCK, GDMSESSION, GNOME_KEYRING_PID, | ||
142 | XDG_SEAT_PATH, XDG_CONFIG_DIRS, LESSOPEN, DBUS_SESSION_BUS_ADDRESS, | ||
143 | _, XDG_SESSION_COOKIE, DESKTOP_SESSION, LESSCLOSE, DEFAULTS_PATH, | ||
144 | UBUNTU_MENUPROXY, OLDPWD, XDG_DATA_DIRS, COLORTERM, LS_COLORS | ||
145 | |||
146 | The majority of this output is specific to environment variables that | ||
147 | are not directly relevant to BitBake. However, the very first | ||
148 | message regarding the ``BBPATH`` variable and the | ||
149 | ``conf/bblayers.conf`` file is relevant. | ||
150 | 139 | ||
151 | When you run BitBake, it begins looking for metadata files. The | 140 | When you run BitBake, it begins looking for metadata files. The |
152 | :term:`BBPATH` variable is what tells BitBake where | 141 | :term:`BBPATH` variable is what tells BitBake where |
153 | to look for those files. ``BBPATH`` is not set and you need to set | 142 | to look for those files. :term:`BBPATH` is not set and you need to set |
154 | it. Without ``BBPATH``, BitBake cannot find any configuration files | 143 | it. Without :term:`BBPATH`, BitBake cannot find any configuration files |
155 | (``.conf``) or recipe files (``.bb``) at all. BitBake also cannot | 144 | (``.conf``) or recipe files (``.bb``) at all. BitBake also cannot |
156 | find the ``bitbake.conf`` file. | 145 | find the ``bitbake.conf`` file. |
157 | 146 | ||
158 | #. **Setting BBPATH:** For this example, you can set ``BBPATH`` in | 147 | #. **Setting BBPATH:** For this example, you can set :term:`BBPATH` in |
159 | the same manner that you set ``PATH`` earlier in the appendix. You | 148 | the same manner that you set ``PATH`` earlier in the appendix. You |
160 | should realize, though, that it is much more flexible to set the | 149 | should realize, though, that it is much more flexible to set the |
161 | ``BBPATH`` variable up in a configuration file for each project. | 150 | :term:`BBPATH` variable up in a configuration file for each project. |
162 | 151 | ||
163 | From your shell, enter the following commands to set and export the | 152 | From your shell, enter the following commands to set and export the |
164 | ``BBPATH`` variable: :: | 153 | :term:`BBPATH` variable:: |
165 | 154 | ||
166 | $ BBPATH="projectdirectory" | 155 | $ BBPATH="projectdirectory" |
167 | $ export BBPATH | 156 | $ export BBPATH |
@@ -175,24 +164,18 @@ Following is the complete "Hello World" example. | |||
175 | ("~") character as BitBake does not expand that character as the | 164 | ("~") character as BitBake does not expand that character as the |
176 | shell would. | 165 | shell would. |
177 | 166 | ||
178 | #. **Run BitBake:** Now that you have ``BBPATH`` defined, run the | 167 | #. **Run BitBake:** Now that you have :term:`BBPATH` defined, run the |
179 | ``bitbake`` command again: :: | 168 | ``bitbake`` command again:: |
180 | 169 | ||
181 | $ bitbake | 170 | $ bitbake |
182 | ERROR: Traceback (most recent call last): | 171 | ERROR: Unable to parse /home/scott-lenovo/bitbake/lib/bb/parse/__init__.py |
183 | File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped | 172 | Traceback (most recent call last): |
184 | return func(fn, *args) | 173 | File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 127, in resolve_file(fn='conf/bitbake.conf', d=<bb.data_smart.DataSmart object at 0x7f22919a3df0>): |
185 | File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 173, in parse_config_file | 174 | if not newfn: |
186 | return bb.parse.handle(fn, data, include) | 175 | > raise IOError(errno.ENOENT, "file %s not found in %s" % (fn, bbpath)) |
187 | File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 99, in handle | 176 | fn = newfn |
188 | return h['handle'](fn, data, include) | 177 | FileNotFoundError: [Errno 2] file conf/bitbake.conf not found in <projectdirectory> |
189 | File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 120, in handle | 178 | |
190 | abs_fn = resolve_file(fn, data) | ||
191 | File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 117, in resolve_file | ||
192 | raise IOError("file %s not found in %s" % (fn, bbpath)) | ||
193 | IOError: file conf/bitbake.conf not found in /home/scott-lenovo/hello | ||
194 | |||
195 | ERROR: Unable to parse conf/bitbake.conf: file conf/bitbake.conf not found in /home/scott-lenovo/hello | ||
196 | 179 | ||
197 | This sample output shows that BitBake could not find the | 180 | This sample output shows that BitBake could not find the |
198 | ``conf/bitbake.conf`` file in the project directory. This file is | 181 | ``conf/bitbake.conf`` file in the project directory. This file is |
@@ -205,18 +188,18 @@ Following is the complete "Hello World" example. | |||
205 | recipe files. For this example, you need to create the file in your | 188 | recipe files. For this example, you need to create the file in your |
206 | project directory and define some key BitBake variables. For more | 189 | project directory and define some key BitBake variables. For more |
207 | information on the ``bitbake.conf`` file, see | 190 | information on the ``bitbake.conf`` file, see |
208 | http://git.openembedded.org/bitbake/tree/conf/bitbake.conf. | 191 | https://git.openembedded.org/bitbake/tree/conf/bitbake.conf. |
209 | 192 | ||
210 | Use the following commands to create the ``conf`` directory in the | 193 | Use the following commands to create the ``conf`` directory in the |
211 | project directory: :: | 194 | project directory:: |
212 | 195 | ||
213 | $ mkdir conf | 196 | $ mkdir conf |
214 | 197 | ||
215 | From within the ``conf`` directory, | 198 | From within the ``conf`` directory, |
216 | use some editor to create the ``bitbake.conf`` so that it contains | 199 | use some editor to create the ``bitbake.conf`` so that it contains |
217 | the following: :: | 200 | the following:: |
218 | 201 | ||
219 | PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}" | 202 | PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}" |
220 | 203 | ||
221 | TMPDIR = "${TOPDIR}/tmp" | 204 | TMPDIR = "${TOPDIR}/tmp" |
222 | CACHE = "${TMPDIR}/cache" | 205 | CACHE = "${TMPDIR}/cache" |
@@ -226,12 +209,12 @@ Following is the complete "Hello World" example. | |||
226 | 209 | ||
227 | .. note:: | 210 | .. note:: |
228 | 211 | ||
229 | Without a value for PN , the variables STAMP , T , and B , prevent more | 212 | Without a value for :term:`PN`, the variables :term:`STAMP`, :term:`T`, and :term:`B`, prevent more |
230 | than one recipe from working. You can fix this by either setting PN to | 213 | than one recipe from working. You can fix this by either setting :term:`PN` to |
231 | have a value similar to what OpenEmbedded and BitBake use in the default | 214 | have a value similar to what OpenEmbedded and BitBake use in the default |
232 | bitbake.conf file (see previous example). Or, by manually updating each | 215 | ``bitbake.conf`` file (see previous example). Or, by manually updating each |
233 | recipe to set PN . You will also need to include PN as part of the STAMP | 216 | recipe to set :term:`PN`. You will also need to include :term:`PN` as part of the :term:`STAMP`, |
234 | , T , and B variable definitions in the local.conf file. | 217 | :term:`T`, and :term:`B` variable definitions in the ``local.conf`` file. |
235 | 218 | ||
236 | The ``TMPDIR`` variable establishes a directory that BitBake uses | 219 | The ``TMPDIR`` variable establishes a directory that BitBake uses |
237 | for build output and intermediate files other than the cached | 220 | for build output and intermediate files other than the cached |
@@ -251,21 +234,17 @@ Following is the complete "Hello World" example. | |||
251 | glossary. | 234 | glossary. |
252 | 235 | ||
253 | #. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file | 236 | #. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file |
254 | exists, you can run the ``bitbake`` command again: :: | 237 | exists, you can run the ``bitbake`` command again:: |
255 | 238 | ||
256 | $ bitbake | 239 | $ bitbake |
257 | ERROR: Traceback (most recent call last): | 240 | ERROR: Unable to parse /home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py |
258 | File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped | 241 | Traceback (most recent call last): |
259 | return func(fn, *args) | 242 | File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 67, in inherit(files=['base'], fn='configuration INHERITs', lineno=0, d=<bb.data_smart.DataSmart object at 0x7fab6815edf0>): |
260 | File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 177, in _inherit | 243 | if not os.path.exists(file): |
261 | bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data) | 244 | > raise ParseError("Could not inherit file %s" % (file), fn, lineno) |
262 | File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 92, in inherit | 245 | |
263 | include(fn, file, lineno, d, "inherit") | 246 | bb.parse.ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass |
264 | File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 100, in include | 247 | |
265 | raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno) | ||
266 | ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass | ||
267 | |||
268 | ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass | ||
269 | 248 | ||
270 | In the sample output, | 249 | In the sample output, |
271 | BitBake could not find the ``classes/base.bbclass`` file. You need | 250 | BitBake could not find the ``classes/base.bbclass`` file. You need |
@@ -278,20 +257,23 @@ Following is the complete "Hello World" example. | |||
278 | in the ``classes`` directory of the project (i.e ``hello/classes`` | 257 | in the ``classes`` directory of the project (i.e ``hello/classes`` |
279 | in this example). | 258 | in this example). |
280 | 259 | ||
281 | Create the ``classes`` directory as follows: :: | 260 | Create the ``classes`` directory as follows:: |
282 | 261 | ||
283 | $ cd $HOME/hello | 262 | $ cd $HOME/hello |
284 | $ mkdir classes | 263 | $ mkdir classes |
285 | 264 | ||
286 | Move to the ``classes`` directory and then create the | 265 | Move to the ``classes`` directory and then create the |
287 | ``base.bbclass`` file by inserting this single line: addtask build | 266 | ``base.bbclass`` file by inserting this single line:: |
267 | |||
268 | addtask build | ||
269 | |||
288 | The minimal task that BitBake runs is the ``do_build`` task. This is | 270 | The minimal task that BitBake runs is the ``do_build`` task. This is |
289 | all the example needs in order to build the project. Of course, the | 271 | all the example needs in order to build the project. Of course, the |
290 | ``base.bbclass`` can have much more depending on which build | 272 | ``base.bbclass`` can have much more depending on which build |
291 | environments BitBake is supporting. | 273 | environments BitBake is supporting. |
292 | 274 | ||
293 | #. **Run BitBake:** After making sure that the ``classes/base.bbclass`` | 275 | #. **Run BitBake:** After making sure that the ``classes/base.bbclass`` |
294 | file exists, you can run the ``bitbake`` command again: :: | 276 | file exists, you can run the ``bitbake`` command again:: |
295 | 277 | ||
296 | $ bitbake | 278 | $ bitbake |
297 | Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information. | 279 | Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information. |
@@ -314,7 +296,7 @@ Following is the complete "Hello World" example. | |||
314 | Minimally, you need a recipe file and a layer configuration file in | 296 | Minimally, you need a recipe file and a layer configuration file in |
315 | your layer. The configuration file needs to be in the ``conf`` | 297 | your layer. The configuration file needs to be in the ``conf`` |
316 | directory inside the layer. Use these commands to set up the layer | 298 | directory inside the layer. Use these commands to set up the layer |
317 | and the ``conf`` directory: :: | 299 | and the ``conf`` directory:: |
318 | 300 | ||
319 | $ cd $HOME | 301 | $ cd $HOME |
320 | $ mkdir mylayer | 302 | $ mkdir mylayer |
@@ -322,20 +304,29 @@ Following is the complete "Hello World" example. | |||
322 | $ mkdir conf | 304 | $ mkdir conf |
323 | 305 | ||
324 | Move to the ``conf`` directory and create a ``layer.conf`` file that has the | 306 | Move to the ``conf`` directory and create a ``layer.conf`` file that has the |
325 | following: :: | 307 | following:: |
326 | 308 | ||
327 | BBPATH .= ":${LAYERDIR}" | 309 | BBPATH .= ":${LAYERDIR}" |
328 | BBFILES += "${LAYERDIR}/\*.bb" | 310 | BBFILES += "${LAYERDIR}/*.bb" |
329 | BBFILE_COLLECTIONS += "mylayer" | 311 | BBFILE_COLLECTIONS += "mylayer" |
330 | `BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/" | 312 | BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/" |
313 | LAYERSERIES_CORENAMES = "hello_world_example" | ||
314 | LAYERSERIES_COMPAT_mylayer = "hello_world_example" | ||
331 | 315 | ||
332 | For information on these variables, click on :term:`BBFILES`, | 316 | For information on these variables, click on :term:`BBFILES`, |
333 | :term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS` or :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>` | 317 | :term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS`, :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>` |
334 | to go to the definitions in the glossary. | 318 | or :term:`LAYERSERIES_COMPAT` to go to the definitions in the glossary. |
319 | |||
320 | .. note:: | ||
321 | |||
322 | We are setting both ``LAYERSERIES_CORENAMES`` and :term:`LAYERSERIES_COMPAT` in this particular case, because we | ||
323 | are using bitbake without OpenEmbedded. | ||
324 | You should usually just use :term:`LAYERSERIES_COMPAT` to specify the OE-Core versions for which your layer | ||
325 | is compatible, and add the meta-openembedded layer to your project. | ||
335 | 326 | ||
336 | You need to create the recipe file next. Inside your layer at the | 327 | You need to create the recipe file next. Inside your layer at the |
337 | top-level, use an editor and create a recipe file named | 328 | top-level, use an editor and create a recipe file named |
338 | ``printhello.bb`` that has the following: :: | 329 | ``printhello.bb`` that has the following:: |
339 | 330 | ||
340 | DESCRIPTION = "Prints Hello World" | 331 | DESCRIPTION = "Prints Hello World" |
341 | PN = 'printhello' | 332 | PN = 'printhello' |
@@ -356,7 +347,7 @@ Following is the complete "Hello World" example. | |||
356 | follow the links to the glossary. | 347 | follow the links to the glossary. |
357 | 348 | ||
358 | #. **Run BitBake With a Target:** Now that a BitBake target exists, run | 349 | #. **Run BitBake With a Target:** Now that a BitBake target exists, run |
359 | the command and provide that target: :: | 350 | the command and provide that target:: |
360 | 351 | ||
361 | $ cd $HOME/hello | 352 | $ cd $HOME/hello |
362 | $ bitbake printhello | 353 | $ bitbake printhello |
@@ -376,7 +367,7 @@ Following is the complete "Hello World" example. | |||
376 | ``hello/conf`` for this example). | 367 | ``hello/conf`` for this example). |
377 | 368 | ||
378 | Set your working directory to the ``hello/conf`` directory and then | 369 | Set your working directory to the ``hello/conf`` directory and then |
379 | create the ``bblayers.conf`` file so that it contains the following: :: | 370 | create the ``bblayers.conf`` file so that it contains the following:: |
380 | 371 | ||
381 | BBLAYERS ?= " \ | 372 | BBLAYERS ?= " \ |
382 | /home/<you>/mylayer \ | 373 | /home/<you>/mylayer \ |
@@ -386,15 +377,17 @@ Following is the complete "Hello World" example. | |||
386 | 377 | ||
387 | #. **Run BitBake With a Target:** Now that you have supplied the | 378 | #. **Run BitBake With a Target:** Now that you have supplied the |
388 | ``bblayers.conf`` file, run the ``bitbake`` command and provide the | 379 | ``bblayers.conf`` file, run the ``bitbake`` command and provide the |
389 | target: :: | 380 | target:: |
390 | 381 | ||
391 | $ bitbake printhello | 382 | $ bitbake printhello |
383 | Loading cache: 100% | | ||
384 | Loaded 0 entries from dependency cache. | ||
392 | Parsing recipes: 100% |##################################################################################| | 385 | Parsing recipes: 100% |##################################################################################| |
393 | Time: 00:00:00 | ||
394 | Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors. | 386 | Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors. |
395 | NOTE: Resolving any missing task queue dependencies | 387 | NOTE: Resolving any missing task queue dependencies |
396 | NOTE: Preparing RunQueue | 388 | Initialising tasks: 100% |###############################################################################| |
397 | NOTE: Executing RunQueue Tasks | 389 | NOTE: No setscene tasks |
390 | NOTE: Executing Tasks | ||
398 | ******************** | 391 | ******************** |
399 | * * | 392 | * * |
400 | * Hello, World! * | 393 | * Hello, World! * |