Difference between revisions of "How to create a bitbake recipe for dummies"

From Openembedded.org
Jump to: navigation, search
(Recipe Template)
(cat+)
Line 88: Line 88:
  
 
=== waf ===
 
=== waf ===
 +
 +
[[Category:FAQ]]
 +
[[Category:Dev]]

Revision as of 06:49, 16 September 2010

Contents

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 = " \
 "
 # SRC_URI could also point to a git repository, eg:
 # SRC_URI = " git://host:port/path/to/repo.git;branch=win;protocol=ssh;user=username"
 
 # any .patch files included here will be auto-magically applied, increasing the -p level until it sticks.
 # SRC_URI = "file://omap_ctrl_readl.patch"
 
 PR = "r0"  # Package Revision, Update this whenever you change the recipe.
 
 # 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

Personal tools
Namespaces

Variants
Actions
Navigation
Categories
OE services
Toolbox