(no commit message)
[bitbake.git] / doc / DEVEL
1 OpenEmbedded Developer Documentation
2 --
3
4 How to add the build of a package to OpenEmbedded
5 (henceforth known as "OE") in a few easy steps!
6
7 First, you'll want to create the .oe.
8         vi content/packagename-version.oe
9         :wq
10
11 Next, we need to add some content.  First, define the
12 "SRC_URI" variable to point to the upstream source tarball.
13         SRC_URI:=${GNU_MIRROR}/ncurses/ncurses-5.3.tar.gz
14
15 Then, we need to tell the system what will be extracted by
16 that tarball:
17         S=${WORKDIR}/${P}
18
19 (Note: "P" defaults to ${PN}-${PV}, which is package name,
20 and package version, respectively.)
21
22 Finally, we need to make some decisions on how to build this.
23 Take a look at the sources.  If you see a 'configure.in', 
24 or 'configure.ac', this is an autoconf/automake based buildsystem.
25 In this case, you're nearly done!
26
27 Simply tell the buildsystem that:
28         inherit autotools
29
30 And attempt a build!
31         oebuild content/packagename-version.oe
32
33 If the build either is not autotools based, or deviates from it in
34 any way, you can override any of the steps.  For example:
35
36         do_compile () {
37                 touch blahblah
38                 oe_runmake all
39         }
40
41 or
42
43         do_install () {
44                 oe_runmake 'PREFIX=${D}' install
45         }
46
47 And so on.  See $OEDIR/bin/classes/base.oeclass for an idea
48 as to what tasks exist by default, and what their default behaviors are.
49 The system will automatically assume that your .oe inherits base, in addition
50 to whatever oeclasses you inherit manually.