Yocto: Можно ли использовать $ {STAGING_DIR_TARGET} в Yocto Makefile? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть файл botan.h в каталоге $ {STAGING_INCDIR} / botan-2. Мне нравится использовать его в моем рецепте yocto вместе с моим Makefile, мой идеал - позволить «компиляции», упомянутой в Makefile, вместо того, чтобы полностью занимать рецепт. Прилагается мой рецепт и Makefile

recipe.bb

SUMMARY = "Makefile  Demo"
SECTION = "apps"
LICENSE = "CLOSED"
DEPENDS = "botan"

APP_NAME = "integrated_app"
localdir = "/usr/local"
bindir = "${localdir}/bin"

TARGET_CC_ARCH += "${LDFLAGS}"

SRC_URI = "file://main.cpp \
           file://Makefile \
       "

S = "${WORKDIR}"

inherit pkgconfig 

do_compile() {
    # make -f Makefile
    oe_runmake
        
}

do_install () {
    install -m 0755 -d ${D}${localdir}
    install -m 0755 -d ${D}${bindir}
    cd ${S}
    install -m 0755 ${APP_NAME} ${D}${bindir}
}

FILES_${PN}-dev = ""
FILES_${PN} = "${bindir}/*"

Makefile

obj = main.o
target = integrated_app
S = "${WORKDIR}"
INC=/home/kjlau/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/botan-app/1.0-r0/recipe-sysroot/usr/include/botan-2 

all: $(obj)
      ${CXX} ${CXXFLAGS} ${LDFLAGS} $(obj)  -o $(target) 

%.o:%.cpp
     ${CXX} ${CXXFLAGS} -I ${INC} -c $^  -o  $@  

.PHONY: clean
clean:
    rm -rf $(obj) $(target)

Хотя он может успешно компилироваться, но мне интересно, можем ли мы использовать $ { STAGING_INCDIR} / botan-2 в Makefile? Я пробовал, но это не сработало. Я не думаю, что я правильно реализую IN C, я имею в виду, что он не "достаточно распространен", например, я не могу предположить, что каждый пользователь - kjlau, верно? В любом случае, чтобы было лучше?

Спасибо

1 Ответ

1 голос
/ 14 июля 2020

Вы ищете TARGET_CXXFLAGS. Добавьте в свой рецепт следующее: TARGET_CXXFLAGS += "-I ${STAGING_INC_DIR}/botan2". Нет необходимости в S=${WORKDIR} и INCDIR в вашем файле Makefile.

В идеале вы должны добавить цель установки в Makefile, и тогда ваш рецепт будет таким простым, как:

SUMMARY = "Makefile  Demo"
SECTION = "apps"
LICENSE = "CLOSED"
DEPENDS = "botan"

TARGET_CXXFLAGS += "-I ${STAGING_INC_DIR}/botan2"

SRC_URI = "file://main.cpp \
           file://Makefile \
       "

S = "${WORKDIR}"

inherit pkgconfig

Я не уверен, но я бы сказал, что вам также не нужно наследовать pkgconfig.

...