The best would probably be to improve the Makefile to install the files to standard paths such as /usr instead of /usr/local. /usr/local is usually used for not packaged files and therefore not handled by the default FILES package splitting rules of Yocto.
Ideally there would be a PREFIX variable in the Makefile which defaults to /usr/local and gets over written by bitbake to /usr. Then also the FILES line should no longer be needed. Another approach would be to replace the Makefile by e.g. meson or cmake which both do all these details right by default. As a workaround extending the FILES line would work as well. But using locations like lib or usr in FILES is not a good idea. It probably adds too many files like debug stuff to the package. To see the variables for you recipe you might want to use bitbake -e. To see how bitbake spits the packages you might look into the packages-splitted folder in the $WORKDIR of your recipe. Regards Adrian Iurascu Teodor <iurascu_...@hotmail.com> schrieb am Sa., 21. Okt. 2023, 09:05: > Hello! > I am new to the Yocto Project and I have been trying to make a recipe to > include the IOBB library in my SDK for the BeagleBone Black board. I have > used devtool to create a recipe based on a fork of the library. > > > Library makefile: > > > LIB_PATH = ./BBBio_lib/ > DEMO_PATH = ./Demo/ > TOOLKIT_PATH = ./Toolkit/ > LAB_PATH = ./Lab/ > > > LIBRARIES = iobb > > all > : libiobb.a LED ADT7301 SEVEN_SCAN SMOTOR LED_GPIO DEBOUNCING 4x4keypad > ADC ADC_VOICE GPIO_STATUS EP_STATUS ADC_CALC lcd3-test test-outputs > pb-test-outputs test-inputs pb-test-inputs > > libiobb.a : ${LIB_PATH}BBBiolib.c ${LIB_PATH}BBBiolib.h BBBiolib_PWMSS.o > BBBiolib_McSPI.o BBBiolib_ADCTSC.o i2cfunc.o > gcc -c ${LIB_PATH}BBBiolib.c -o ${LIB_PATH}BBBiolib.o > > ar -rs ${LIB_PATH}libiobb.a ${LIB_PATH}BBBiolib.o > ${LIB_PATH}BBBiolib_PWMSS.o ${LIB_PATH}BBBiolib_McSPI.o > ${LIB_PATH}BBBiolib_ADCTSC.o ${LIB_PATH}i2cfunc.o > cp ${LIB_PATH}libiobb.a ./ > cp ${LIB_PATH}BBBiolib.h ./iobb.h > cp ${LIB_PATH}BBBiolib_ADCTSC.h ./ > cp ${LIB_PATH}BBBiolib_McSPI.h ./ > cp ${LIB_PATH}BBBiolib_PWMSS.h ./ > cp ${LIB_PATH}i2cfunc.h ./ > > BBBiolib_PWMSS.o : ${LIB_PATH}BBBiolib_PWMSS.c ${LIB_PATH}BBBiolib_PWMSS.h > gcc -c ${LIB_PATH}BBBiolib_PWMSS.c -o ${LIB_PATH}BBBiolib_PWMSS.o -W > > BBBiolib_McSPI.o : ${LIB_PATH}BBBiolib_McSPI.c ${LIB_PATH}BBBiolib_PWMSS.h > gcc -c ${LIB_PATH}BBBiolib_McSPI.c -o ${LIB_PATH}BBBiolib_McSPI.o -W > > BBBiolib_ADCTSC.o : ${LIB_PATH}BBBiolib_ADCTSC.c ${LIB_PATH}BBBiolib_ADCTSC.h > gcc -c ${LIB_PATH}BBBiolib_ADCTSC.c -o ${LIB_PATH}BBBiolib_ADCTSC.o -W > > i2cfunc.o : ${LIB_PATH}i2cfunc.c ${LIB_PATH}i2cfunc.h > gcc -c ${LIB_PATH}i2cfunc.c -o ${LIB_PATH}i2cfunc.o > > install : > ifndef locatie > $(info locatie is [${locatie}]) > rm -f /usr/local/include/BBBiolib.h > cp ${LIB_PATH}libiobb.a /usr/local/lib > cp ${LIB_PATH}BBBiolib.h /usr/local/include/iobb.h > cp ${LIB_PATH}BBBiolib_ADCTSC.h /usr/local/include > cp ${LIB_PATH}BBBiolib_McSPI.h /usr/local/include > cp ${LIB_PATH}BBBiolib_PWMSS.h /usr/local/include > cp ${LIB_PATH}i2cfunc.h /usr/local/include > ln -s /usr/local/include/iobb.h /usr/local/include/BBBiolib.h > else > $(info locatie is [${locatie}]) > rm -f $(locatie)/usr/local/include/BBBiolib.h > mkdir -p $(locatie)/usr/local/lib > mkdir -p $(locatie)/usr/local/include > cp ${LIB_PATH}libiobb.a $(locatie)/usr/local/lib > cp ${LIB_PATH}BBBiolib.h $(locatie)/usr/local/include/iobb.h > cp ${LIB_PATH}BBBiolib_ADCTSC.h $(locatie)/usr/local/include > cp ${LIB_PATH}BBBiolib_McSPI.h $(locatie)/usr/local/include > cp ${LIB_PATH}BBBiolib_PWMSS.h $(locatie)/usr/local/include > cp ${LIB_PATH}i2cfunc.h $(locatie)/usr/local/include > cp $(locatie)/usr/local/include/iobb.h > $(locatie)/usr/local/include/BBBiolib.h > endif > > > recipe file: > > LICENSE = "Unknown" > LIC_FILES_CHKSUM = "file://LICENSE;md5=7db6c9cd5c53a0a05ffa2f383b2408dc" > > SRC_URI = "git://github.com/TeoThatsMe/iobb;protocol=https;branch=master" > > # Modify these as desired > PV = "1.0+git${SRCPV}" > SRCREV = "1a7bdf1767f730b0d6058117e42c4ec77047b4ab" > > S = "${WORKDIR}/git" > FILES:${PN} += "${base_libdir}" > > # NOTE: the following library dependencies are unknown, ignoring: iobb fftw3 > # (this is based on recipes that have previously been built and > packaged) > > # NOTE: this is a Makefile-only piece of software, so we cannot generate much > of the > # recipe automatically - you will need to examine the Makefile yourself and > ensure > # that the appropriate arguments are passed in. > > do_configure () { > # Specify any needed configure commands here > : > } > > do_compile () { > # You will almost certainly need to add additional arguments here > oe_runmake > } > > do_install () { > # This is a guess; additional arguments may be required > oe_runmake install locatie=${D} > } > > > I have modified the makefile with the locatie variable so that the install > script installs it in the ${D} directory and not on my machine. > Even though I am setting > > FILES:${PN} += "${base_libdir}" > > I am still getting this error. > > > > > Do I have to set the FILES variable to something esle or am I doing > something wrong before the packaging phase? > Thank you! > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#61443): https://lists.yoctoproject.org/g/yocto/message/61443 Mute This Topic: https://lists.yoctoproject.org/mt/102097263/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-