# # Copyright (C) 2023 IOPSYS # include $(TOPDIR)/rules.mk PKG_NAME:=bbfdm PKG_VERSION:=1.3.17 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/bbfdm.git PKG_SOURCE_VERSION:=d0d3480ef6dfc99d857401ca234738db16eb179f PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_MIRROR_HASH:=skip PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk define Package/libbbfdm-api SECTION:=utils CATEGORY:=Utilities SUBMENU:=TRx69 TITLE:=BBF datamodel library, provides API to extend datamodel using DotSO plugins DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c ABI_VERSION:=1.0 endef define Package/libbbfdm/default SECTION:=utils CATEGORY:=Utilities SUBMENU:=TRx69 TITLE:=Library for broadband forum data model support DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libcurl +libbbfdm-api \ +BBF_TR471:obudpst endef define Package/libbbfdm $(Package/libbbfdm/default) TITLE += (default) VARIANT:=default DEPENDS += +PACKAGE_libbbfdm-openssl:libopenssl DEFAULT_VARIANT:=1 endef define Package/libbbfdm-mbedtls $(Package/libbbfdm/default) TITLE += (mbedtls) DEPENDS += +PACKAGE_libbbfdm-mbedtls:libmbedtls VARIANT:=mbedtls CONFLICTS := libbbfdm libbbfdm-openssl libbbfdm-wolfssl endef define Package/libbbfdm-openssl $(Package/libbbfdm/default) TITLE += (openssl) DEPENDS += +PACKAGE_libbbfdm-openssl:libopenssl VARIANT:=openssl CONFLICTS := libbbfdm libbbfdm-mbedtls libbbfdm-wolfssl endef define Package/libbbfdm-wolfssl $(Package/libbbfdm/default) TITLE += (wolfssl) DEPENDS += +PACKAGE_libbbfdm-wolfssl:libwolfssl VARIANT:=wolfssl CONFLICTS := libbbfdm libbbfdm-mbedtls libbbfdm-openssl endef define Package/bbfdmd SECTION:=utils CATEGORY:=Utilities SUBMENU:=TRx69 TITLE:=Datamodel ubus backend DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libbbfdm-api +PACKAGE_libbbfdm-mbedtls:libbbfdm-mbedtls \ +PACKAGE_libbbfdm-openssl:libbbfdm-openssl +PACKAGE_libbbfdm-wolfssl:libbbfdm-wolfssl \ +PACKAGE_libbbfdm:libbbfdm endef define Package/userinterface SECTION:=utils CATEGORY:=Utilities SUBMENU:=TRx69 TITLE:=Package to add Device.UserInterface. datamodel support endef define Package/userinterface/description Package to add Device.UserInterface. datamodel support endef define Package/libbbfdm/config source "$(SOURCE)/Config_bbfdm.in" endef define Package/libbbfdm-api/description Library contains the API(UCI, UBUS, JSON, CLI and Browse) of libbbfdm endef define Package/libbbfdm/description Library contains the data model tree. It includes TR181, TR143 data models endef USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1) ifneq ($(USE_LOCAL),) define Build/Prepare $(CP) ./src/* $(PKG_BUILD_DIR)/ endef endif CMAKE_OPTIONS += \ -DBBF_TR181=ON -DBBF_WIFI_DATAELEMENTS=ON ifeq ($(CONFIG_BBF_TR143),y) CMAKE_OPTIONS += \ -DBBF_TR143=ON endif ifeq ($(CONFIG_BBF_TR471),y) CMAKE_OPTIONS += \ -DBBF_TR471=ON endif ifeq ($(CONFIG_BBF_VENDOR_EXTENSION),y) CMAKE_OPTIONS += \ -DBBF_VENDOR_EXTENSION=ON CMAKE_OPTIONS += \ -DBBF_VENDOR_LIST:String="$(CONFIG_BBF_VENDOR_LIST)" \ -DBBF_VENDOR_PREFIX:String="$(CONFIG_BBF_VENDOR_PREFIX)" \ -DBBF_MAX_OBJECT_INSTANCES:Integer=$(CONFIG_BBF_MAX_OBJECT_INSTANCES) endif ##CONFIG_BBF_VENDOR_EXTENSION ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y) CMAKE_OPTIONS += \ -DBBF_JSON_PLUGIN=ON endif ifeq ($(CONFIG_BBFDM_ENABLE_DOTSO_PLUGIN),y) CMAKE_OPTIONS += \ -DBBF_DOTSO_PLUGIN=ON endif ifeq ($(BUILD_VARIANT),default) CMAKE_OPTIONS += -DWITH_OPENSSL=ON endif ifeq ($(BUILD_VARIANT),openssl) CMAKE_OPTIONS += -DWITH_OPENSSL=ON endif ifeq ($(BUILD_VARIANT),wolfssl) CMAKE_OPTIONS += -DWITH_WOLFSSL=ON endif ifeq ($(BUILD_VARIANT),mbedtls) CMAKE_OPTIONS += -DWITH_MBEDTLS=ON endif ifeq ($(CONFIG_PACKAGE_bbfdmd),y) CMAKE_OPTIONS += \ -DBBFDMD_MAX_MSG_LEN:Integer=10485760 endif define Package/libbbfdm-api/install $(INSTALL_DIR) $(1)/lib $(CP) $(PKG_BUILD_DIR)/libbbfdm-api/libbbfdm-api.so $(1)/lib/ endef define Package/libbbfdm/default/install $(INSTALL_DIR) $(1)/lib $(INSTALL_DIR) $(1)/etc/bbfdm $(INSTALL_DIR) $(1)/etc/bbfdm/dmmap $(INSTALL_DIR) $(1)/lib/upgrade/keep.d $(CP) $(PKG_BUILD_DIR)/libbbfdm/libbbfdm.so $(1)/lib/ $(INSTALL_DATA) ./files/lib/upgrade/keep.d/bbf $(1)/lib/upgrade/keep.d/bbf ifeq ($(CONFIG_BBF_TR143),y) $(INSTALL_DIR) $(1)/usr/share/bbfdm $(INSTALL_DIR) $(1)/usr/libexec/rpcd $(INSTALL_BIN) $(PKG_BUILD_DIR)/libbbfdm/scripts/* $(1)/usr/share/bbfdm $(LN) /usr/share/bbfdm/bbf.diag $(1)/usr/libexec/rpcd/bbf.diag endif ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y) $(INSTALL_DIR) $(1)/etc/bbfdm/json endif ifeq ($(CONFIG_BBFDM_ENABLE_DOTSO_PLUGIN),y) $(INSTALL_DIR) $(1)/usr/lib/bbfdm endif endef define Package/libbbfdm/default/prerm #!/bin/sh rm -rf /etc/bbfdm/dmmap/* exit 0 endef define Package/bbfdmd/install $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/hotplug.d/iface $(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/bbfdm $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) ./files/etc/init.d/bbfdmd $(1)/etc/init.d/bbfdmd $(INSTALL_BIN) ./files/etc/hotplug.d/iface/85-bbfdm-sysctl $(1)/etc/hotplug.d/iface/85-bbfdm-sysctl $(INSTALL_CONF) ./files/etc/config/bbfdm $(1)/etc/config/bbfdm $(INSTALL_BIN) $(PKG_BUILD_DIR)/bbfdmd/ubus/bbfdmd $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/json/input.json $(1)/etc/bbfdm/ $(INSTALL_BIN) ./files/etc/bbfdm/bbfdm_services.sh $(1)/etc/bbfdm/ endef define Package/userinterface/install $(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/uci-defaults $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/lib/upgrade/keep.d $(INSTALL_DATA) ./files/etc/config/userinterface $(1)/etc/config/userinterface $(INSTALL_DATA) ./files/lib/upgrade/keep.d/userinterface $(1)/lib/upgrade/keep.d/userinterface $(INSTALL_BIN) ./files/etc/init.d/userinterface $(1)/etc/init.d/userinterface $(INSTALL_BIN) ./files/etc/uci-defaults/93-userinterface-firewall $(1)/etc/uci-defaults/93-userinterface-firewall $(INSTALL_BIN) ./files/etc/uci-defaults/94-userinterface-json $(1)/etc/uci-defaults/94-userinterface-json $(INSTALL_BIN) ./files/etc/uci-defaults/95-portmap-firewall $(1)/etc/uci-defaults/95-portmap-firewall $(INSTALL_BIN) ./files/etc/firewall.userinterface $(1)/etc/firewall.userinterface $(INSTALL_BIN) ./files/etc/firewall.portmap $(1)/etc/firewall.portmap endef Package/libbbfdm/prerm = $(Package/libbbfdm/default/prerm) Package/libbbfdm-openssl/prerm = $(Package/libbbfdm/default/prerm) Package/libbbfdm-wolfssl/prerm = $(Package/libbbfdm/default/prerm) Package/libbbfdm-mbedtls/prerm = $(Package/libbbfdm/default/prerm) Package/libbbfdm/install = $(Package/libbbfdm/default/install) Package/libbbfdm-openssl/install = $(Package/libbbfdm/default/install) Package/libbbfdm-wolfssl/install = $(Package/libbbfdm/default/install) Package/libbbfdm-mbedtls/install = $(Package/libbbfdm/default/install) define Build/InstallDev $(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/include $(INSTALL_DIR) $(1)/usr/include/libbbfdm $(INSTALL_DIR) $(1)/usr/include/libbbfdm-api $(INSTALL_DIR) $(1)/usr/include/libbbf_api $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/include/*.h $(1)/usr/include/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm/dmtree/tr181/device.h $(1)/usr/include/libbbfdm/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm/dmtree/vendor/vendor.h $(1)/usr/include/libbbfdm/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/*.h $(1)/usr/include/libbbfdm-api/ # Work around for backward compatibility $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/*.h $(1)/usr/include/libbbf_api/ $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/include/libbbfdm_api.h $(1)/usr/include/libbbf_api.h endef $(eval $(call BuildPackage,libbbfdm-api)) $(eval $(call BuildPackage,libbbfdm)) $(eval $(call BuildPackage,libbbfdm-openssl)) $(eval $(call BuildPackage,libbbfdm-wolfssl)) $(eval $(call BuildPackage,libbbfdm-mbedtls)) $(eval $(call BuildPackage,bbfdmd)) $(eval $(call BuildPackage,userinterface))