[yocto] The simplest possible recipe

Sean Liming sean.liming at annabooks.com
Tue Jun 25 08:38:54 PDT 2013


> -----Original Message-----
> From: yocto-bounces at yoctoproject.org [mailto:yocto-
> bounces at yoctoproject.org] On Behalf Of Paul D. DeRocco
> Sent: Monday, June 24, 2013 5:18 PM
> To: yocto at yoctoproject.org
> Subject: [yocto] The simplest possible recipe
> 
> That would be to copy a single file, provided in the files subdirectory of
the
> recipe, into a particular place in the target tree. Is there any bbclass
that
> automates this? Or do I just write a recipe with a do_install function
that
> executes the "install" command?
> 
> My only guide is 5.3.1 in the Development Manual, which performs a simple
> compilation, but I'm very hazy about how recipes are interpreted, so I'd
like it
> if someone can tell me if I've gotten the following stuff right or not.
> 
> SRC_URI tells bitbake what files must be gotten from somewhere and copied
> somewhere else in order to carry out the build process. And according to
the
> Ref Manual, the "file://" prefix tells it to fetch a local file by
searching some
> directories including the "files" subdirectory next to the .bb file.
> And apparently, there is a "subdir" option (whose syntax is unexplained)
> which may be used to tell bitbake to put it somewhere specific relative to
> ${WORKDIR}.
> 
> Is the default value of the "subdir" option the S variable? Is that the
purpose
> of S, to tell bitbake where to put things that it fetches? The Ref Manual
says
> that S defaults to ${WORKDIR}/${PN}/${PV}, but then the sample compile
> recipe sets S to ${WORKDIR}. Is that what one does when one doesn't need
> to have a bunch of versioned subdirectories under ${WORKDIR}? (I'm not
> sure why one would ever want that, or why that would be the default.)
> 
> So if I want to install a file somewhere, do I even need a do_install
task, or
> can I just set S equal to the desired target location, like
"${etcdir}/foo" and be
> done with it? Or is that a no-no, and should I always use do_install?
> 
> --
> 
> Ciao,               Paul D. DeRocco
> Paul                mailto:pderocco at ix.netcom.com
> 
> 
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto


>From my book, I demonstrated two ways to create a receipt with and without
Autotools. Without Autotools:

DESCRIPTION = "Hello World C file recipe"
SECTION = "base"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = 
    file://${WORKDIR}/COPYRIGHT;md5=349c872e0066155e1818b786938876a4"
PR = "r0"

SRC_URI = "file://helloyp.c \
          file://COPYRIGHT \ "

do_compile () {
         ${CC} ${WORKDIR}/helloyp.c -o ${WORKDIR}/helloyp
}

do_install () {

       install -d ${D}${bindir}
       install -m 0755 ${WORKDIR}/helloyp ${D}${bindir}/
}


The following is the recipe is with autotools:


DESCRIPTION = "Hello World Application with Autotools"
SECTION = "examples"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM =
"file://${WORKDIR}/COPYING;md5=92bf9743cf0f1e6d9306478e118e432f"

PR = "r0"

SRC_URI = "file:///home/sean/workspace/helloyp-${PV}.tar.gz"
inherit autotools gettext

SRC_URI[md5sum] = "934bd36a4a3b1e7912fdff3ae764c7b6"
SRC_URI[sha256sum] =
"09810190e0cf9ebf141ad780b994fce8198098fbeca418ec51df59eb51747182"


The application was placed in the /usr/bin folder. From there it could be
moved or link to someplace else.


Regards,

Sean Liming
Owner

Tel: 714-970-7523 / Cell: 858-774-3176





More information about the yocto mailing list