summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-common-tasks.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/dev-manual/dev-manual-common-tasks.xml')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml97
1 files changed, 97 insertions, 0 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 76f50345e3..0d16dbec15 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -6025,6 +6025,103 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
6025 </section> 6025 </section>
6026 </section> 6026 </section>
6027 6027
6028 <section id='working-with-source-files'>
6029 <title>Working with Source Files</title>
6030
6031 <para>
6032 The OpenEmbedded build system works with source files located
6033 through the
6034 <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
6035 variable.
6036 When you build something using BitBake, a big part of the operation
6037 is locating and downloading all the source tarballs.
6038 For images, downloading all the source for various packages can
6039 take a significant amount of time.
6040 </para>
6041
6042 <para>
6043 This section presents information for working with source
6044 files that can lead to more efficient use of resources and
6045 time.
6046 </para>
6047
6048 <section id='setting-up-effective-mirrors'>
6049 <title>Setting up Effective Mirrors</title>
6050
6051 <para>
6052 As mentioned, a good deal that goes into a Yocto Project
6053 build is simply downloading all of the source tarballs.
6054 Maybe you have been working with another build system
6055 (OpenEmbedded or Angstrom) for which you have built up a
6056 sizable directory of source tarballs.
6057 Or, perhaps someone else has such a directory for which you
6058 have read access.
6059 If so, you can save time by adding statements to your
6060 configuration file so that the build process checks local
6061 directories first for existing tarballs before checking the
6062 Internet.
6063 </para>
6064
6065 <para>
6066 Here is an efficient way to set it up in your
6067 <filename>local.conf</filename> file:
6068 <literallayout class='monospaced'>
6069 SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/"
6070 INHERIT += "own-mirrors"
6071 BB_GENERATE_MIRROR_TARBALLS = "1"
6072 # BB_NO_NETWORK = "1"
6073 </literallayout>
6074 </para>
6075
6076 <para>
6077 In the previous example, the
6078 <ulink url='&YOCTO_DOCS_REF_URL;#var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></ulink>
6079 variable causes the OpenEmbedded build system to generate
6080 tarballs of the Git repositories and store them in the
6081 <ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'><filename>DL_DIR</filename></ulink>
6082 directory.
6083 Due to performance reasons, generating and storing these
6084 tarballs is not the build system's default behavior.
6085 </para>
6086
6087 <para>
6088 You can also use the
6089 <ulink url='&YOCTO_DOCS_REF_URL;#var-PREMIRRORS'><filename>PREMIRRORS</filename></ulink>
6090 variable.
6091 For an example, see the variable's glossary entry in the
6092 Yocto Project Reference Manual.
6093 </para>
6094 </section>
6095
6096 <section id='getting-source-files-and-suppressing-the-build'>
6097 <title>Getting Source Files and Suppressing the Build</title>
6098
6099 <para>
6100 Another technique you can use to ready yourself for a
6101 successive string of build operations, is to pre-fetch
6102 all the source files without actually starting a build.
6103 This technique lets you work through any download issues
6104 and ultimately gathers all the source files into your
6105 download directory
6106 <ulink url='&YOCTO_DOCS_REF_URL;#structure-build-downloads'><filename>build/downloads</filename></ulink>,
6107 which is located with
6108 <ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'><filename>DL_DIR</filename></ulink>.
6109 </para>
6110
6111 <para>
6112 Use the following BitBake command form to fetch all the
6113 necessary sources without starting the build:
6114 <literallayout class='monospaced'>
6115 $ bitbake -c fetchall &lt;target&gt;
6116 </literallayout>
6117 This variation of the BitBake command guarantees that you
6118 have all the sources for that BitBake target should you
6119 disconnect from the Internet and want to do the build
6120 later offline.
6121 </para>
6122 </section>
6123 </section>
6124
6028 <section id="building-software-from-an-external-source"> 6125 <section id="building-software-from-an-external-source">
6029 <title>Building Software from an External Source</title> 6126 <title>Building Software from an External Source</title>
6030 6127