include $(TOPDIR)/rules.mk
PKG_NAME:=zeromq
-PKG_VERSION:=4.1.7
-PKG_RELEASE:=2
+PKG_VERSION:=4.3.5
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/zeromq/zeromq4-1/releases/download/v$(PKG_VERSION)
-PKG_HASH:=31c383cfcd3be1dc8a66e448c403029e793687e70473b89c4cc0bd626e7da299
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://github.com/zeromq/libzmq/releases/download/v$(PKG_VERSION)
+PKG_HASH:=6653ef5910f17954861fe72332e68b03ca6e4d9c7160eb3a8de5a5a913bfab43
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
PKG_LICENSE:=GPL-3.0-or-later
PKG_LICENSE_FILES:=LICENCE.txt
PKG_CPE_ID:=cpe:/a:zeromq:libzmq
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
-PKG_REMOVE_FILES:=autogen.sh acinclude.m4 aclocal.m4
+CMAKE_BINARY_SUBDIR:=openwrt-build
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
define Package/libzmq/default
TITLE:=ZeroMQ - Message Queue engine
URL:=http://www.zeromq.org/
SECTION:=libs
CATEGORY:=Libraries
- DEPENDS:=+libuuid +libpthread +librt +libstdcpp
+ DEPENDS:=+libuuid +libstdcpp
PROVIDES:=libzmq
endef
+define Package/libzmq/default-config
+config LIBZMQ_$(2)_WITH_OPENPGM
+ depends on PACKAGE_libzmq-$(1)
+ bool "enable openpgm support for libzmq-$(1)"
+ default n
+endef
+
define Package/libzmq-nc
$(call Package/libzmq/default)
VARIANT:=nc
+ DEPENDS+=+LIBZMQ_NC_WITH_OPENPGM:openpgm
endef
define Package/libzmq-curve
$(call Package/libzmq/default)
VARIANT:=curve
TITLE+= (CurveZMQ)
- DEPENDS+=+libsodium
+ DEPENDS+=+libsodium +LIBZMQ_CURVE_WITH_OPENPGM:openpgm
endef
define Package/libzmq-nc/description
Includes CurveZMQ security by libsodium.
endef
-# add extra configure flags here
-CONFIGURE_ARGS += \
- --enable-static \
- --enable-shared \
- --with-pic \
- --with-relaxed \
- --without-documentation
+define Package/libzmq-nc/config
+ $(call Package/libzmq/default-config,nc,NC)
+endef
+
+define Package/libzmq-curve/config
+ $(call Package/libzmq/default-config,curve,CURVE)
+endef
+
+CMAKE_OPTIONS += \
+ -DA2X_EXECUTABLE=OFF \
+ -DASCIIDOC_EXECUTABLE=OFF \
+ -DBUILD_STATIC=OFF \
+ -DZMQ_HAVE_SOCK_CLOEXEC=ON \
+ -DZMQ_HAVE_SO_KEEPALIVE=ON \
+ -DZMQ_HAVE_TCP_KEEPCNT=ON \
+ -DZMQ_HAVE_TCP_KEEPIDLE=ON \
+ -DZMQ_HAVE_TCP_KEEPINTVL=ON \
+ -DZMQ_HAVE_TCP_KEEPALIVE=ON \
+ -DENABLE_CURVE=ON \
+ -DENABLE_EVENTFD=ON \
+ -DPOLLER=epoll \
+ -DRT_LIBRARY=OFF \
+ -DZMQ_BUILD_TESTS=OFF
ifeq ($(BUILD_VARIANT),curve)
- CONFIGURE_ARGS+= --with-libsodium
+ CMAKE_OPTIONS += -DWITH_LIBSODIUM=ON
else
- CONFIGURE_ARGS+= --without-libsodium
+ CMAKE_OPTIONS += -DWITH_LIBSODIUM=OFF
endif
-TARGET_CXXFLAGS += -Wno-error=cpp
+ifeq ($(CONFIG_LIBZMQ_NC_WITH_OPENPGM),y)
+ CMAKE_OPTIONS += -DWITH_OPENPGM=ON
+else ifeq ($(CONFIG_LIBZMQ_CURVE_WITH_OPENPGM),y)
+ CMAKE_OPTIONS += -DWITH_OPENPGM=ON
+else
+ CMAKE_OPTIONS += -DWITH_OPENPGM=OFF
+endif
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/zmq.h $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/zmq_utils.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libzmq.{a,so*} $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libzmq.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libzmq.pc $(1)/usr/lib/pkgconfig/
+ $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libzmq.pc
+ $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libzmq.pc
endef
define Package/libzmq-nc/install