87 lines
4.5 KiB
HTML
87 lines
4.5 KiB
HTML
|
<html>
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|||
|
<title>6.5.<2E>Running a Task</title>
|
|||
|
<link rel="stylesheet" type="text/css" href="../book.css">
|
|||
|
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
|||
|
<link rel="home" href="index.html" title="The Yocto Project Reference Manual">
|
|||
|
<link rel="up" href="ref-bitbake.html" title="Chapter<65>6.<2E>BitBake">
|
|||
|
<link rel="prev" href="ref-bitbake-tasklist.html" title="6.4.<2E>The Task List">
|
|||
|
<link rel="next" href="ref-bitbake-commandline.html" title="6.6.<2E>BitBake Command Line">
|
|||
|
</head>
|
|||
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" title="6.5.<2E>Running a Task">
|
|||
|
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|||
|
<a name="ref-bitbake-runtask"></a>6.5.<2E>Running a Task</h2></div></div></div>
|
|||
|
<p>
|
|||
|
Tasks can either be a shell task or a Python task.
|
|||
|
For shell tasks, BitBake writes a shell script to
|
|||
|
<code class="filename">${WORKDIR}/temp/run.do_taskname.pid</code> and then executes the script.
|
|||
|
The generated shell script contains all the exported variables, and the shell functions
|
|||
|
with all variables expanded.
|
|||
|
Output from the shell script goes to the file <code class="filename">${WORKDIR}/temp/log.do_taskname.pid</code>.
|
|||
|
Looking at the expanded shell functions in the run file and the output in the log files
|
|||
|
is a useful debugging technique.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
For Python tasks, BitBake executes the task internally and logs information to the
|
|||
|
controlling terminal.
|
|||
|
Future versions of BitBake will write the functions to files similar to the way
|
|||
|
shell tasks are handled.
|
|||
|
Logging will be handled in way similar to shell tasks as well.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Once all the tasks have been completed BitBake exits.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
When running a task, BitBake tightly controls the execution environment
|
|||
|
of the build tasks to make sure unwanted contamination from the build machine
|
|||
|
cannot influence the build.
|
|||
|
Consequently, if you do want something to get passed into the build
|
|||
|
task's environment, you must take a few steps:
|
|||
|
</p>
|
|||
|
<div class="orderedlist"><ol class="orderedlist" type="1">
|
|||
|
<li class="listitem">
|
|||
|
<p>Tell BitBake to load what you want from the environment
|
|||
|
into the data store.
|
|||
|
You can do so through the <code class="filename">BB_ENV_EXTRAWHITE</code>
|
|||
|
variable.
|
|||
|
For example, assume you want to prevent the build system from
|
|||
|
accessing your <code class="filename">$HOME/.ccache</code> directory.
|
|||
|
The following command tells BitBake to load
|
|||
|
<code class="filename">CCACHE_DIR</code> from the environment into the data
|
|||
|
store:
|
|||
|
</p>
|
|||
|
<pre class="literallayout">
|
|||
|
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR"
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
<li class="listitem">
|
|||
|
<p>Tell BitBake to export what you have loaded into the
|
|||
|
environment store to the task environment of every running task.
|
|||
|
Loading something from the environment into the data store
|
|||
|
(previous step) only makes it available in the datastore.
|
|||
|
To export it to the task environment of every running task,
|
|||
|
use a command similar to the following in your
|
|||
|
<code class="filename">local.conf</code> or distro configuration file:
|
|||
|
</p>
|
|||
|
<pre class="literallayout">
|
|||
|
export CCACHE_DIR
|
|||
|
</pre>
|
|||
|
</li>
|
|||
|
</ol></div>
|
|||
|
<p>
|
|||
|
</p>
|
|||
|
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
|||
|
<h3 class="title">Note</h3>
|
|||
|
A side effect of the previous steps is that BitBake records the variable
|
|||
|
as a dependency of the build process in things like the shared state
|
|||
|
checksums.
|
|||
|
If doing so results in unnecessary rebuilds of tasks, you can whitelist the
|
|||
|
variable so that the shared state code ignores the dependency when it creates
|
|||
|
checksums.
|
|||
|
For information on this process, see the <code class="filename">BB_HASHBASE_WHITELIST</code>
|
|||
|
example in the "<a class="link" href="checksums.html" title="3.2.2.<2E>Checksums (Signatures)">Checksums (Signatures)</a>" section.
|
|||
|
</div>
|
|||
|
</div></body>
|
|||
|
</html>
|