From ae48be8e2157bc7c352b3b6d30c026fafdae4867 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Sun, 11 Sep 2022 14:31:33 +0200 Subject: [PATCH] iperf3: add shared libiperf library and link iperf3 dynamically Add library for creating own functions with iperf3 functionality. Example: https://github.com/esnet/iperf/blob/master/examples/mis.c This library is needed by python3-iperf3. Build iperf3 binary with dynamically linked libiperf3. However, still build iperf3-ssl as static binary due to a lack of shipping two libiperf versions. Signed-off-by: Nick Hainke --- net/iperf3/Makefile | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/net/iperf3/Makefile b/net/iperf3/Makefile index de17f81c2e..db3b6e4326 100644 --- a/net/iperf3/Makefile +++ b/net/iperf3/Makefile @@ -32,6 +32,7 @@ define Package/iperf3/default CATEGORY:=Network TITLE:=Internet Protocol bandwidth measuring tool URL:=https://github.com/esnet/iperf + DEPENDS:=+libiperf3 endef define Package/iperf3 @@ -43,14 +44,20 @@ define Package/iperf3-ssl $(call Package/iperf3/default) TITLE+= with iperf_auth support VARIANT:=ssl - DEPENDS:= +libopenssl + DEPENDS+=+libopenssl +endef + +define Package/libiperf3 + SECTION:=libs + CATEGORY:=Libraries + TITLE:=Internet Protocol bandwidth measuring library + URL:=https://github.com/esnet/iperf endef TARGET_CFLAGS += -D_GNU_SOURCE -CONFIGURE_ARGS += --disable-shared ifeq ($(BUILD_VARIANT),ssl) - CONFIGURE_ARGS += --with-openssl="$(STAGING_DIR)/usr" + CONFIGURE_ARGS += --with-openssl="$(STAGING_DIR)/usr" --disable-shared else CONFIGURE_ARGS += --without-openssl endif @@ -63,6 +70,17 @@ define Package/iperf3/description characteristics. endef +define Package/libiperf3/description + Libiperf is a library providing an API for iperf3 functionality. +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libiperf.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/ +endef + # autoreconf fails if the README file isn't present define Build/Prepare $(call Build/Prepare/Default) @@ -79,5 +97,11 @@ define Package/iperf3-ssl/install $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iperf3 $(1)/usr/bin/ endef +define Package/iperf3/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libiperf.so.* $(1)/usr/lib +endef + $(eval $(call BuildPackage,iperf3)) $(eval $(call BuildPackage,iperf3-ssl)) +$(eval $(call BuildPackage,libiperf3)) -- 2.30.2