[yocto] how to configure the build packages of a makefile based libary

S.Jaritz at esa-grimma.de S.Jaritz at esa-grimma.de
Thu Apr 28 05:09:47 PDT 2016


Hej

The makefile has an install section. I relocated it with the ${D}. By 
doing that I managed that the compiler filled the "package" directory. But 
there is still a packing issue.
Below is the log (and below of it is the libhiredis.bb).

Now my question: How to define the FILES variable for a proper packing?

#### log ######
NOTE: Executing RunQueue Tasks
WARNING: libhiredis: No generic license file exists for: COPYING in any 
provider
ERROR: QA Issue: libhiredis: Files/directories were installed but not 
shipped in any package:
  /usr/local
  /usr/local/lib
  /usr/local/include
  /usr/local/lib/libhiredis.so
  /usr/local/lib/libhiredis.so.0.13
  /usr/local/lib/libhiredis.a
  /usr/local/lib/.debug
  /usr/local/lib/pkgconfig
  /usr/local/lib/.debug/libhiredis.so.0.13
  /usr/local/lib/pkgconfig/hiredis.pc
  /usr/local/include/hiredis
  /usr/local/include/hiredis/sds.h
  /usr/local/include/hiredis/read.h
  /usr/local/include/hiredis/async.h
  /usr/local/include/hiredis/hiredis.h
  /usr/local/include/hiredis/adapters
  /usr/local/include/hiredis/adapters/glib.h
  /usr/local/include/hiredis/adapters/macosx.h
  /usr/local/include/hiredis/adapters/libev.h
  /usr/local/include/hiredis/adapters/libevent.h
  /usr/local/include/hiredis/adapters/qt.h
  /usr/local/include/hiredis/adapters/libuv.h
  /usr/local/include/hiredis/adapters/ae.h
  /usr/local/include/hiredis/adapters/ivykis.h
Please set FILES such that these items are packaged. Alternatively if they 
are unneeded, avoid installing them or delete them within do_install.
libhiredis: 24 installed and not shipped files. [installed-vs-shipped]
NOTE: Tasks Summary: Attempted 388 tasks of which 375 didn't need to be 
rerun and all succeeded.

Summary: There were 2 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
#### end of log ######

#### libhiredis ######
SUMMARY = "libhiredis"
SECTION = "sek4"
LICENSE = "COPYING"
LIC_FILES_CHKSUM = "file://$
{WORKDIR}/git/COPYING;md5=d84d659a35c666d23233e54503aaea51"

# 0.13.3
# SRCREV = "010756025e8cefd1bc66c6d4ed3b1648ef6f1f95"
SRC_URI = "git://github.com/redis/hiredis.git;rev=v0.13.3"

S = "${WORKDIR}/git/"

# we need to pass the Cxx parameter extra to the make call
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} 
-I${S}/include' 'BUILDDIR=${S}' 'DESTDIR=${D}'"

inherit autotools-brokensep

do_compile() {
        oe_runmake all 'CC=${CC}'
}

do_install() {
        oe_runmake install 'DESTDIR=${D}'
}
#### libhiredis of log ######


with kind regards

Stefan Jaritz

Entwickler

------------------------------------------------------------
ESA Elektroschaltanlagen Grimma GmbH
Broner Ring 30
04668 Grimma
Telefon: +49 3437 9211 176
Telefax: +49 3437 9211 26
E-Mail: s.jaritz at esa-grimma.de
Internet: www.esa-grimma.de


Geschäftsführer:
Dipl.-Ing. Jörg Gaitzsch
Jörg Reinker

Sitz der Gesellschaft: Grimma
Ust.-ID: DE 141784437
Amtsgericht: Leipzig, HRB 5159
Steuernummer: 238/108/00755


Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte 
Informationen. 
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich 
erhalten 
haben, informieren Sie bitte sofort den Absender und löschen Sie diese 
Nachricht. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser 
Mail 
ist nicht gestattet.

This e-mail may contain confidential and/or privileged information. If you 
are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and destroy this e-mail. Any unauthorized 
copying, disclosure or distribution of the material in this e-mail is 
strictly 
forbidden.



Von:    "Burton, Ross" <ross.burton at intel.com>
An:     S.Jaritz at esa-grimma.de
Kopie:  "yocto at yoctoproject.org" <yocto at yoctoproject.org>
Datum:  28.04.2016 12:52
Betreff:        Re: [yocto] how to configure the build packages of a 
makefile based libary




On 28 April 2016 at 10:50, <S.Jaritz at esa-grimma.de> wrote:
I like to include the hiredis library. I created a recipe and modified the 
EXTRA_OEMAKE. The compilation works (in the git directory object, "so" and 
"a" files are generated). But the generated files are not placed into 
packages. 

Any ideas? 

You need to look at the makefile to see if it has an install target, and 
if it does what it's called, and if it has a way of controlling where 
files actually go (both respecting $prefix instead of /usr, and letting 
you relocate via ${D} so it doesn't try and install to /usr on your build 
machine).  If it does all of those right then you can write a do_install() 
that just calls the right make commands.  Chances are that it does 
something wrong and it's easier to just write a do_install() that creates 
directories and copies files manually.

This is why it doesn't happen automatically unless you're using something 
like automake - there's no standard way.

Ross
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20160428/0bdd5d02/attachment.html>


More information about the yocto mailing list