Makefile для компиляции iotivity под buildroot

Я сделал конкретный проект, используя buildroot. Я хочу, чтобы моя цель работала как шлюз ioTtivation и, следовательно, пытаюсь добавить ioTctivity-1.1.1 в качестве buildroot/ пакета. Кажется, официальная поддержка сборки iotivity есть только в Yocto, а не в buildroot. Я создал свой собственный файл iotivity.mk для buildroot следующим образом:

IOTIVITY_VERSION_MAJOR = 1.1
IOTIVITY_VERSION = $(IOTIVITY_VERSION_MAJOR).1
IOTIVITY_RELEASE = 1
IOTIVITY_SOURCE = iotivity-${IOTIVITY_VERSION}.tar.gz
IOTIVITY_SITE = http://mirrors.kernel.org/iotivity/${IOTIVITY_VERSION}

IOTIVITY_LICENSE = Apache-2.0
IOTIVITY_LICENSE_FILES = LICENSE.md

IOTIVITY_DEPENDENCIES += scons boost sqlite mbedtls gtest cjson tinycbor libcurl host-pkgconf snappy openssl libcoap

IOTIVITY_CONF_OPTS += --enable-uuid
IOTIVITY_CONF_OPTS += --enable-curl

IOTIVITY_CXXFLAGS = CXXFLAGS = "$(TARGET_CXXFLAGS) -std=c++11 -fPIC"
IOTIVITY_CONF_ENV += CXXFLAGS = "$(TARGET_CXXFLAGS) -std=c++11"

IOTIVITY_CONF_OPTS += --with-curl
IOTIVITY_CONF_OPTS += --with-pthread
IOTIVITY_CONF_OPTS += --with-sqlite3

IOTIVITY_CONF_OPTS += LIBS=-lstdc++
IOTIVITY_LDFLAGS = "$(TARGET_LDFLAGS) -lpthread"
IOTIVITY_LDFLAGS = "$(TARGET_LDFLAGS) -lrt"
IOTIVITY_CONF_ENV = "LIBS = -lrt"

IOTIVITY_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -pthread" LIBS="-pthread"

EXTRA_CXXFLAGS += -std=gnu++11

IOTIVITY_INSTALL_STAGING = YES

SCONS_OPTIONS += \
TARGET_OS=linux \
TARGET_TRANSPORT=ALL \
TARGET_ARCH=arm64 \
STAGING_DIR=$(STAGING_DIR) \
WITH_ENV=True \
BUILD_SAMPLE=ON \
RD_MODE=CLIENT \
RELEASE=True \
SECURED=1 \
LOGGING=True \
VERBOSE=True

TARGET_CONFIGURE_OPTS = $(SCONS_OPTIONS)

IOTIVITY_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS)

define IOTIVITY_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(IOTIVITY_MAKE_OPTS) -C $(@D)
endef

define IOTIVITY_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(IOTIVITY_MAKE_OPTS) -C $(@D) \
DESTDIR=$(STAGING_DIR) prefix=/usr install
endef

define IOTIVITY_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(IOTIVITY_MAKE_OPTS) -C $(@D) \
DESTDIR=$(TARGET_DIR) prefix=/usr install
endef

$(eval $(generic-package))

а также

После 2 дней работы это моя ошибка:

build/iotivity-1.1.1/out/linux/x86_64/debug/resource/csdk/connectivity/src/bt_le_adapter/linux/bluez-glue.c']

TypeError: argument of type 'NoneType' is not iterable:

File "build/iotivity-1.1.1/SConstruct", line 57: SConscript(build_dir + 'resource/SConscript')

File "/usr/local/lib/scons-2.5.0/SCons/Script/SConscript.py", line 604: return method(*args, **kw)

File "/usr/local/lib/scons-2.5.0/SCons/Script/SConscript.py", line 541: return _SConscript(self.fs, *files, **subst_kw)

File "/usr/local/lib/scons-2.5.0/SCons/Script/SConscript.py", line 250: exec _file_ in call_stack[-1].globals

File "build/iotivity-1.1.1/resource/SConscript", line 40:
SConscript('csdk/SConscript')

File "/usr/local/lib/scons-2.5.0/SCons/Script/SConscript.py", line 604: return method(*args, **kw)

File "/usr/local/lib/scons-2.5.0/SCons/Script/SConscript.py", line 541: return _SConscript(self.fs, *files, **subst_kw)

File "/usr/local/lib/scons-2.5.0/SCons/Script/SConscript.py", line 250: exec _file_ in call_stack[-1].globals

File "build/iotivity-1.1.1/resource/csdk/SConscript", line 39:
if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:

*********** Unit test Stop *************

1 ответ

Во-первых, вероятно, не стоит использовать такую ​​старую версию IoTctivity. Во-вторых, мне трудно понять, что вы пытаетесь сделать: "Либо OCF, либо buildroot не получили официальной поддержки для сборки iotivity под buildroot" - какова цель и какие команды вы используете?

Сбой сборки googletest, но недостаточно информации, чтобы увидеть, что действительно пошло не так. Скрипт iotivity scons, который управляет сборкой googletest, значительно улучшился с 1.1.

Другие вопросы по тегам