[yocto] Newbie question: How to get dependencies into compile of custom recipe?

Neuer User auslands-kv at gmx.de
Tue Apr 22 07:48:45 PDT 2014


H Rob

Thanks for the information.

To clarify: My recipe is a very simple one. It is just one c file with
maybe 40 lines or so.

But it uses library functions from another recipe "gst-rtsp", which
again uses "gstreamer".

Both, "gstreamer" and "gst-rtsp" are compiled and working nicely, as far
as I can tell.

Now I have a simple c program file that needs to be compiled and linked
against "gst-rtsp". Hmmm.

I don't have a makefile. I don't use any autotools for this file. The bb
recipe is based on the example in the Yocto Development guide for a
simple c file.

I have to admit: I am extremely new to Yocto. I am also not a c
programmer. If I program, I typically use python or Qt5. :-)

I guess, I try the "devshell" and see what variables are set and what
pkg-config output is like.

In the end, it is probably very simple to do, but for a Newbie like
me... :-)

Am 22.04.2014 16:32, schrieb Robert Calhoun:
> 
> 
> On 4/22/14 3:57 AM, "Neuer User"
> <auslands-kv at gmx.de> wrote:
>> Sorry for this simple question. I've just started building my
>> first image with yocto and would now like to add a (very simple)
>> own recipe.
> 
> (I am not familiar with gstreamer, but it looks like a big project
> and maybe not so simple!)
> 
> The yocto build system figures out dependencies and build order, sets
> the environment, and generates shell scripts to do the actual tasks.
> The actual "work" is done by these shell scripts, not by the python
> code.
> 
> Your recipe explicitly defines some steps like do_compile(). When you
> do this, you are saying "Let me control the compilation, I know what
> I am doing!". Your do_compile() step is going to generate a
> run.do_compile script, and that has to work just as if you were
> running the script yourself.
> 
> 
> If something doesn't work, try "bitbake {pkg} -c devshell".  That
> will drop you into the environment the compiler is going to see. The
> shell scripts are in ../temp. Each script is a single step
> (do_compile etc). All of the substitutions that Richard described
> will already have been made; and you will see all the environment
> variables being set and the calls made to the compiler, linker etc.
> This directory also contains the log files from recent executions.
> 
> You can run these manually, e.g. ../temp/run.do_compile. (The files 
> without PIDs are symlinks to the latest script.) You can edit this
> script and re-run the compile and link step until it works. Once
> you've figured out what needs to be set or run, modify the recipe to
> generate that environment or command.
> 
> An important thing to understand is that each step lives in its own
> little world; an environment variable set in the do_compile is not
> present in do_install unless you put it there. Avoidance of global
> state allows the build system to run multiple tasks in parallel.
> 
> -Rob Calhoun (still figuring this stuff out myself)
> 





More information about the yocto mailing list