Merge branch 'org.openembedded.dev' of git://git.openembedded.org/openembedded into...
[openembedded.git] / docs / usermanual / chapters / introduction.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <chapter id="chapter_introduction">
3   <title>Introduction</title>
4
5   <section id="intro_overview">
6     <title>Overview</title>
7
8     <para>Like any build tool (make, ant, jam), the OpenEmbedded build tool
9     BitBake controls how to build things and the build dependencies. But
10     unlike single project tools like <command>make</command> it is not based
11     on one makefile or a closed set of inter-dependent makefiles, but collects
12     and manages an open set of largely independent build descriptions (package
13     recipes) and builds them in proper order.</para>
14
15     <para>To be more precise: <ulink
16     url="http://www.openembedded.org"><application>OpenEmbedded</application></ulink>
17     is a set of metadata used to cross-compile, package and install software
18     packages. <application>OpenEmbedded</application> is being used to build
19     and maintain a number of embedded Linux distributions, including
20     OpenZaurus, &Aring;ngstr&ouml;m, Familiar and SlugOS.</para>
21
22     <para>The primary use-case of <application>OpenEmbedded</application> are:
23     <itemizedlist>
24         <listitem>
25           <para>Handle cross-compilation.</para>
26         </listitem>
27
28         <listitem>
29           <para>Handle inter-package dependencies</para>
30         </listitem>
31
32         <listitem>
33           <para>Must be able to emit packages (tar, rpm, ipk)</para>
34         </listitem>
35
36         <listitem>
37           <para>Must be able to create images and feeds from packages</para>
38         </listitem>
39
40         <listitem>
41           <para>Must be highly configurable to support many machines,
42           distribution and architectures.</para>
43         </listitem>
44
45         <listitem>
46           <para>Writing of metadata must be easy and reusable</para>
47         </listitem>
48       </itemizedlist></para>
49
50     <para>Together with <ulink
51     url="http://bitbake.berlios.de/manual"><application>BitBake</application></ulink>,
52     OpenEmbedded satisfies all these and many more. Flexibility and power have
53     always been the priorities.</para>
54   </section>
55
56   <section id="intro_history">
57     <title>History</title>
58
59     <para>OpenEmbedded was invented and founded by the creators of the
60     OpenZaurus project. At this time the project had pushed
61     <emphasis>buildroot</emphasis> to its limits. It supported the creation of
62     <emphasis>ipk</emphasis> packages, feeds and images and had support for
63     more than one machine. But it was impossible to use different patches,
64     files for different architectures, machines or distributions. To overcome
65     this shortcoming OpenEmbedded was created.</para>
66
67     <para>After a few months other projects started using OpenEmbedded and
68     contributing back. On 7 December 2004 Chris Larson split the project into
69     two parts: BitBake, a generic task executor and OpenEmbedded, the metadata
70     for BitBake.</para>
71   </section>
72 </chapter>