Note that there is a selftest for this in
meta/lib/oeqa/selftest/cases/externalsrc.py, so you could check why
that seems to work.

Alex

On Fri, 26 Jan 2024 at 13:47, Robert P. J. Day <rpj...@crashcourse.ca> wrote:
>
>
>   i've been trying to put together a really basic example of a recipe
> using "externalsrc" that refers to some local source, and cannot get
> it to work. so here's what i'm trying.
>
>   as a demo, i selected a random simple OE recipe -- in this case,
> "dmidecode", whose recipe you can see here (and which seems
> conveniently simple for demonstration purposes):
>
> https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/dmidecode/dmidecode_3.5.bb?h=master
>
> so to start, since the SRC_URI is a tarball, i downloaded the tarball
> so that i have the equivalent local source here:
>
>   $ ls /home/rpjday/oe/srcs/dmidecode-3.5
>   AUTHORS       dmioem.h     Makefile     util.c
>   biosdecode.c  dmiopt.c     man          util.h
>   config.h      dmiopt.h     NEWS         version.h
>   dmidecode.c   dmioutput.c  ownership.c  vpddecode.c
>   dmidecode.h   dmioutput.h  README       vpdopt.c
>   dmioem.c      LICENSE      types.h      vpdopt.h
>   $
>
>   as my first test, i set the build to the source directory in my
> dmid_1.0.bb recipe file:
>
>   inherit externalsrc
>   EXTERNALSRC = "/home/rpjday/oe/srcs/dmidecode-3.5"
>   EXTERNALSRC_BUILD = "${EXTERNALSRC}"
>
>   do_install() {
>     oe_runmake \
>         DESTDIR="${D}" \
>         prefix="${prefix}" \
>         sbindir="${sbindir}" \
>         docdir="${docdir}/${BPN}" \
>         mandir="${mandir}" \
>         install
>
> then ran:
>
>   $ bitbake dmid
>
> sure enough, that build in the source directory, generating:
>
>   AUTHORS       dmidecode.o  dmioutput.h  ownership*   version.h
>   biosdecode*   dmioem.c     dmioutput.o  ownership.c  vpddecode*
>   biosdecode.c  dmioem.h     LICENSE      ownership.o  vpddecode.c
>   biosdecode.o  dmioem.o     Makefile     README       vpddecode.o
>   config.h      dmiopt.c     man/         types.h      vpdopt.c
>   dmidecode*    dmiopt.h     NEWS         util.c       vpdopt.h
>   dmidecode.c   dmiopt.o     oe-logs@     util.h       vpdopt.o
>   dmidecode.h   dmioutput.c  oe-workdir@  util.o
>
>   great, but i really want to build out-of-tree to preserve the
> pristine state of the source, so i followed the instructions and
> allowed EXTERNALSRC_BUILD to default to ${WORKDIR}/${BPN}-${PV}:
>
>   inherit externalsrc
>   EXTERNALSRC = "/home/rpjday/oe/srcs/dmidecode-3.5"
>   # EXTERNALSRC_BUILD = "${EXTERNALSRC}"
>
> so I did a "make clean" in the source directory to start with the
> pristine source (also deleted the "oe-" symlinks), then:
>
> $ bitbake dmid
> ... snip ...
> | NOTE: make -j 8
> DESTDIR=/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0/image
> prefix=/usr sbindir=/usr/sbin docdir=/usr/share/doc/dmid
> mandir=/usr/share/man install
> | make: *** No rule to make target 'install'.  Stop.
> | ERROR: oe_runmake failed
>
>   from "bitbake -e dmid", i can see:
>
> S="/home/rpjday/oe/srcs/dmidecode-3.5"
> WORKDIR="/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0"
> B="/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0/dmid-1.0"
>
> but there is nothing unloaded into the B directory; hence, the
> failure. in fact, the log file for the compile step is:
>
> DEBUG: Executing python function externalsrc_compile_prefunc
> NOTE: dmid: compiling from external source tree
> /home/rpjday/oe/srcs/dmidecode-3.5
> DEBUG: Python function externalsrc_compile_prefunc finished
> DEBUG: Executing python function fetcher_hashes_dummyfunc
> DEBUG: Python function fetcher_hashes_dummyfunc finished
> DEBUG: Executing shell function do_compile
> NOTE: nothing to compile
> DEBUG: Shell function do_compile finished
>
>   so ... what have i overlooked? did i grab an inappropriate sample
> recipe that does not support building out-of-tree? the build directory
> is empty, so i'm perusing the externalsrc.bbclass to see what i have
> misunderstood.
>
> rday
>
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#194357): 
https://lists.openembedded.org/g/openembedded-core/message/194357
Mute This Topic: https://lists.openembedded.org/mt/103974993/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to