mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
170 lines
4.4 KiB
Makefile
Executable file
170 lines
4.4 KiB
Makefile
Executable file
#
|
|
# Copyright (c) 2023 Genexis B.V. All rights reserved.
|
|
# This Software and its content are protected by the Dutch Copyright Act
|
|
# ('Auteurswet'). All and any copying and distribution of the software
|
|
# and its content without authorization by Genexis B.V. is
|
|
# prohibited. The prohibition includes every form of reproduction and
|
|
# distribution.
|
|
#
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=dm-framework
|
|
PKG_VERSION:=1.0.0
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_URL:=https://dev.iopsys.eu/lcm/dm-framework.git
|
|
PKG_SOURCE_VERSION:=ba2ec403f08cc0d5401a1610517f17490c94a978
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
|
PKG_MIRROR_HASH:=skip
|
|
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
|
|
|
# Build directories for each component
|
|
DMAPI_BUILD_DIR:=$(PKG_BUILD_DIR)/dm-api-build
|
|
DMAGENT_BUILD_DIR:=$(PKG_BUILD_DIR)/dm-agent-build
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include ../bbfdm/bbfdm.mk
|
|
|
|
#
|
|
# DM-API Package Definition
|
|
#
|
|
define Package/dm-api
|
|
CATEGORY:=Genexis
|
|
TITLE:=dm-api
|
|
DEPENDS:=+libsqlite3 \
|
|
+libjson-c +libstdcpp +quickjs \
|
|
+libubus +libubox +libuci
|
|
URL:=http://www.genexis.eu
|
|
PKG_LICENSE:=GENEXIS
|
|
PKG_LICENSE_URL:=
|
|
endef
|
|
|
|
define Package/dm-api/description
|
|
This package contains api for the dm-framework
|
|
endef
|
|
|
|
#
|
|
# DM-Agent Package Definition
|
|
#
|
|
define Package/dm-agent
|
|
DEPENDS:=+dm-api +libubox +libubus +ubus
|
|
CATEGORY:=Genexis
|
|
TITLE:=dm-framework agent
|
|
URL:=http://www.genexis.eu
|
|
PKG_LICENSE:=GENEXIS
|
|
PKG_LICENSE_URL:=
|
|
endef
|
|
|
|
define Package/dm-agent/description
|
|
This package contains dm-framework agent.
|
|
endef
|
|
|
|
#
|
|
# Build Preparation
|
|
#
|
|
define Build/Prepare
|
|
$(call Build/Prepare/Default)
|
|
|
|
# Prepare dm-api
|
|
mkdir -p $(DMAPI_BUILD_DIR)
|
|
$(CP) -rf $(PKG_BUILD_DIR)/dm-api/* $(DMAPI_BUILD_DIR)/
|
|
|
|
# Prepare dm-agent
|
|
mkdir -p $(DMAGENT_BUILD_DIR)
|
|
$(CP) -rf $(PKG_BUILD_DIR)/dm-agent/* $(DMAGENT_BUILD_DIR)/
|
|
endef
|
|
|
|
TARGET_CFLAGS += $(FPIC)
|
|
|
|
#
|
|
# Build Compilation
|
|
#
|
|
define Build/Compile
|
|
# Build dm-api
|
|
$(MAKE) -C $(DMAPI_BUILD_DIR)\
|
|
PROJECT_ROOT="$(DMAPI_BUILD_DIR)" \
|
|
CROSS_COMPILE="$(TARGET_CROSS)" \
|
|
ARCH="$(LINUX_KARCH)" \
|
|
EXTRA_CFLAGS="$(TARGET_CFLAGS) -I$(DMAPI_BUILD_DIR)" \
|
|
all
|
|
|
|
# Build dm-agent (depends on dm-api)
|
|
$(MAKE) -C $(DMAGENT_BUILD_DIR)\
|
|
PROJECT_ROOT="$(DMAGENT_BUILD_DIR)" \
|
|
CROSS_COMPILE="$(TARGET_CROSS)" \
|
|
ARCH="$(LINUX_KARCH)" \
|
|
EXTRA_CFLAGS="$(TARGET_CFLAGS) -I$(DMAGENT_BUILD_DIR)" \
|
|
all
|
|
endef
|
|
|
|
#
|
|
# Development Installation (headers and libraries)
|
|
#
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
|
|
# DM-API development files - headers are now in dm-api/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/include/dm_types.h $(1)/usr/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/include/dm_node.h $(1)/usr/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/core/dm_api.h $(1)/usr/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/core/dm_linker.h $(1)/usr/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/core/dbmgr.h $(1)/usr/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/include/dm_log.h $(1)/usr/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/utils/dm_list.h $(1)/usr/include/
|
|
$(CP) $(DMAPI_BUILD_DIR)/libdmapi.so $(1)/usr/lib/
|
|
|
|
# Install json2code.js script and package.json to staging for other packages to use
|
|
$(INSTALL_DIR) $(1)/usr/lib/dm-framework/scripts
|
|
$(CP) $(PKG_BUILD_DIR)/scripts/json2code.js $(1)/usr/lib/dm-framework/scripts/
|
|
$(CP) $(PKG_BUILD_DIR)/scripts/package.json $(1)/usr/lib/dm-framework/scripts/
|
|
endef
|
|
|
|
#
|
|
# Package Installation - DM-API
|
|
#
|
|
define Package/dm-api/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(INSTALL_DIR) $(1)/sbin/
|
|
$(INSTALL_DIR) $(1)/etc/bbfdm/dmf
|
|
|
|
$(INSTALL_BIN) $(DMAPI_BUILD_DIR)/libdmapi.so $(1)/usr/lib/
|
|
$(CP) $(DMAPI_BUILD_DIR)/quickjs/uci.js $(1)/etc/bbfdm/dmf/
|
|
$(CP) $(DMAPI_BUILD_DIR)/quickjs/utils.js $(1)/etc/bbfdm/dmf/
|
|
endef
|
|
|
|
#
|
|
# Package Installation - DM-Agent
|
|
#
|
|
define Package/dm-agent/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(BBFDM_REGISTER_SERVICES) ./dmf_service.json $(1) $(PKG_NAME)
|
|
$(INSTALL_BIN) $(DMAGENT_BUILD_DIR)/dm-agent $(1)/usr/sbin
|
|
endef
|
|
|
|
define Package/dm-framework
|
|
CATEGORY:=Genexis
|
|
TITLE:=DM Framework Meta Package
|
|
DEPENDS:=+dm-api +dm-agent
|
|
URL:=http://www.genexis.eu
|
|
PKG_LICENSE:=GENEXIS
|
|
endef
|
|
|
|
define Package/dm-framework/description
|
|
This is a meta package that pulls in dm-api and dm-agent.
|
|
endef
|
|
|
|
define Package/dm-framework/install
|
|
true
|
|
endef
|
|
|
|
# Register all three packages
|
|
$(eval $(call BuildPackage,dm-api))
|
|
$(eval $(call BuildPackage,dm-agent))
|
|
$(eval $(call BuildPackage,dm-framework))
|