# # Copyright (C) 2019 Banglang Huang # Copyright (C) 2019 Rosy Song # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=kea PKG_VERSION:=1.5.0 PKG_RELEASE:=2 PKG_MAINTAINER:=BangLang Huang, Rosy Song PKG_BUILD_DEPENDS:=boost log4cplus kea/host HOST_BUILD_DEPENDS:=boost boost/host log4cplus/host PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://ftp.isc.org/isc/kea/$(PKG_VERSION)/ PKG_HASH:=edce4fab68ca7af607cf7f5bc86596e04fe0ef4b8e88906e339cdefcf21daaec PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 PKG_LICENSE:=MPL-2.0 PKG_FIXUP:=autoreconf include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/host-build.mk HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST) define Package/kea/Default SECTION:=net CATEGORY:=Network SUBMENU:=IP Addresses and Names TITLE:=ISC Kea URL:=https://www.isc.org/kea endef define Package/kea/description Kea is an open source DHCPv4/DHCPv6 server being developed by Internet Systems Consortium. Kea is a high-performance, extensible DHCP server engine that is designed to be easily modified and extended with hooks libraries. It provides DHCPv4 and DHCPv6 servers, a dynamic DNS update module, a portable DHCP library, libdhcp++, control agent that provides management REST interface, and a DHCP benchmarking tool, perfdhcp. endef define Package/kea-libs $(call Package/kea/Default) TITLE+= Libraries DEPENDS:=+libopenssl +log4cplus \ +boost +boost-python3 +boost-system endef define Package/kea-dhcp4 $(call Package/kea/Default) TITLE+= DHCP Server v4 DEPENDS:=+kea-libs endef define Package/kea-dhcp6 $(call Package/kea/Default) TITLE+= DHCP Server v6 DEPENDS:=@IPV6 +kea-libs endef define Package/kea-dhcp-ddns $(call Package/kea/Default) TITLE+= DHCP - DDNS DEPENDS:=+kea-libs endef define Package/kea-admin $(call Package/kea/Default) TITLE+= Admin DEPENDS:= +kea-libs +python3 endef define Package/kea-ctrl $(call Package/kea/Default) TITLE+= Control DEPENDS:= +kea-dhcp4 +IPV6:kea-dhcp6 \ +kea-dhcp-ddns endef define Package/kea-lfc $(call Package/kea/Default) TITLE+= lfc DEPENDS:=+kea-libs endef define Package/kea-perfdhcp $(call Package/kea/Default) TITLE+= perfdhcp DEPENDS:=+kea-libs endef CONFIGURE_ARGS += \ --with-log4cplus="$(STAGING_DIR)/usr" \ --with-openssl="$(STAGING_DIR)/usr" \ $(if $(CONFIG_PACKAGE_kea-perfdhcp),--enable-perfdhcp,) CONFIGURE_VARS += \ cross_compiling="yes" HOST_CONFIGURE_ARGS += \ --enable-static-link \ --enable-boost-headers-only \ --with-log4cplus="$(STAGING_DIR_HOSTPKG)" \ --with-boost-include="$(STAGING_DIR)/usr/include" \ --without-pic HOST_LDFLAGS += \ -Wl,--gc-sections,--as-needed TARGET_CXXFLAGS += \ $(FPIC) \ -fdata-sections \ -ffunction-sections TARGET_LDFLAGS += \ -Wl,--gc-sections,--as-needed # Only compile the kea-msg-compiler which we need for # package compilation define Host/Compile +$(HOST_MAKE_VARS) \ $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/src/lib/exceptions $(HOST_MAKE_FLAGS) +$(HOST_MAKE_VARS) \ $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/src/lib/util $(HOST_MAKE_FLAGS) +$(HOST_MAKE_VARS) \ $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/src/lib/log $(HOST_MAKE_FLAGS) endef define Host/Install $(INSTALL_BIN) $(HOST_BUILD_DIR)/src/lib/log/compiler/kea-msg-compiler \ $(STAGING_DIR_HOSTPKG)/bin/ endef define Build/Compile $(INSTALL_DIR) $(PKG_BUILD_DIR)/src/lib/log/compiler $(INSTALL_BIN) $(STAGING_DIR_HOSTPKG)/bin/kea-msg-compiler \ $(PKG_BUILD_DIR)/src/lib/log/compiler/ $(call Build/Compile/Default) endef define Package/kea-libs/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/ endef define Package/kea-dhcp4/install $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/kea $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-dhcp4 $(1)/usr/sbin/kea-dhcp4 $(CP) $(PKG_INSTALL_DIR)/etc/kea/kea-dhcp4.conf $(1)/etc/kea/ endef define Package/kea-dhcp6/install $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/kea $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-dhcp6 $(1)/usr/sbin/kea-dhcp6 $(CP) $(PKG_INSTALL_DIR)/etc/kea/kea-dhcp6.conf $(1)/etc/kea/ endef define Package/kea-dhcp-ddns/install $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/kea $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-dhcp-ddns $(1)/usr/sbin/kea-dhcp-ddns $(CP) $(PKG_INSTALL_DIR)/etc/kea/kea-dhcp-ddns.conf $(1)/etc/kea/ endef define Package/kea-admin/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-admin $(1)/usr/sbin/kea-admin endef define Package/kea-ctrl/install $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/kea $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/keactrl $(1)/usr/sbin/keactrl $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-ctrl-agent $(1)/usr/sbin/kea-ctrl-agent $(CP) $(PKG_INSTALL_DIR)/etc/kea/keactrl.conf $(1)/etc/kea/ $(CP) $(PKG_INSTALL_DIR)/etc/kea/kea-ctrl-agent.conf $(1)/etc/kea/ $(CP) $(PKG_INSTALL_DIR)/etc/kea/kea-netconf.conf $(1)/etc/kea/ endef define Package/kea-lfc/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-lfc $(1)/usr/sbin/kea-lfc endef define Package/kea-perfdhcp/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/perfdhcp $(1)/usr/sbin/perfdhcp endef $(eval $(call HostBuild)) $(eval $(call BuildPackage,kea-libs)) $(eval $(call BuildPackage,kea-dhcp4)) $(eval $(call BuildPackage,kea-dhcp6)) $(eval $(call BuildPackage,kea-dhcp-ddns)) $(eval $(call BuildPackage,kea-admin)) $(eval $(call BuildPackage,kea-ctrl)) $(eval $(call BuildPackage,kea-lfc)) $(eval $(call BuildPackage,kea-perfdhcp))