How to create a bitbake recipe for dummies

From Openembedded.org
Revision as of 17:39, 15 September 2010 by Coolaj86 (talk | contribs) (New page: == Introduction == Currently only limited documentation is available on how to create a bitbake recipe. This article is a stub. * [http://www.gumstix.net/Setup-and-Programming/view/Build...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

Currently only limited documentation is available on how to create a bitbake recipe. This article is a stub.

Recipe Template

Every recipe should start like this (pretend the package name is CHANGME:

 DESCRIPTION = ""
 HOMEPAGE = ""
 LICENSE = ""
 DEPENDS = ""
 SRC_URI = " \
 "
 # For tarball packages (as opposed to git / svn which include the commit in the URI)
 SRC_URI[md5sum] = ""
 SRC_URI[sha256sum] = ""
 S = "${WORKDIR}/CHANGEME-${PV}"
 do_configure () {
   ./configure
 }
 do_compile () {
   oe_runmake
 }
 do_install () {
   oe_runmake install
 }
  • PV refers to the revision. I.E. PV=0.2.1 for nodejs_0.2.1.bb

Examples

wrapped with make

This example shows waf wrapped in make

 DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
 HOMEPAGE = "http://nodejs.org"
 LICENSE = "MIT"
 DEPENDS = "openssl"
 SRC_URI = " \
   http://nodejs.org/dist/node-v${PV}.tar.gz \
   file://libev-cross-cc.patch \
   file://node-cross-cc.patch \
 "
 SRC_URI[md5sum] = "c6051dd216817bf0f95bea80c42cf262"
 SRC_URI[sha256sum] = "5bb7d084b2138ce43fcb34739ed894379c450a1dd569a1c710405bc39d2861c2"
 S = "${WORKDIR}/node-v${PV}"
 do_configure () {
   ./configure --without-snapshot
 }
 do_compile () {
   make
 }
 do_install () {
   #oe_runmake install # doesn't install to correct location
   # This works
   install -d ${D}${bindir}/
   install -m 0755 ${S}/build/default/node ${D}${bindir}/
   install -m 0755 ${S}/bin/node-waf ${D}${bindir}/
   install -m 0755 ${S}/bin/node-repl ${D}${bindir}/
 }
 FILES_${PN} = "${bindir}/node ${bindir}/node-repl ${bindir}/node-waf"

make

TODO

autotools

TODO

scons

TODO

waf