gensio: move package into Python submenu
[feed/packages.git] / net / gensio / Makefile
1 #
2 # Copyright (C) 2022 Nita Vesa (werecatf@outlook.com)
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=gensio
11 PKG_VERSION:=2.4.2
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=@SF/ser2net
16 PKG_HASH:=2593c1e7beaec3a0a4acbf60f94bbf64b99883d86f172a3b584eba5f67441b4b
17
18 PKG_LICENSE:=GPL-2.0-or-later
19 PKG_LICENSE_FILES:=COPYING
20 PKG_MAINTAINER:=Nita Vesa <werecatf@outlook.com>
21
22 PKG_FIXUP:=autoreconf
23 PKG_INSTALL:=1
24 PYTHON3_PKG_BUILD:=0
25
26 PKG_CONFIG_DEPENDS:= \
27 CONFIG_GENSIO_SSL \
28 CONFIG_GENSIO_WRAP \
29 CONFIG_GENSIO_SCTP \
30 CONFIG_GENSIO_PTHREADS \
31 CONFIG_GENSIO_AVAHI \
32 CONFIG_GENSIO_GLIB \
33 CONFIG_GENSIO_TCL \
34 CONFIG_GENSIO_SSHD
35
36 PKG_BUILD_DEPENDS:=PACKAGE_python3-gensio:swig/host
37
38 include $(INCLUDE_DIR)/package.mk
39 include ../../lang/python/python3-package.mk
40
41 CONFIGURE_ARGS += \
42 --$(if $(CONFIG_GENSIO_SSL),with,without)-openssl \
43 --$(if $(CONFIG_GENSIO_SCTP),with,without)-sctp \
44 --$(if $(CONFIG_GENSIO_WRAP),with,without)-tcp-wrappers \
45 --$(if $(CONFIG_GENSIO_PTHREADS),with,without)-pthreads \
46 --$(if $(CONFIG_GENSIO_GLIB),with,without)-glib \
47 --$(if $(CONFIG_GENSIO_TCL),with,without)-tcl \
48 --without-openipmi \
49 --with-cplusplus \
50 --disable-doc
51
52 CONFIGURE_VARS += \
53 ac_cv_lib_avahi_client_avahi_client_new=$(if $(CONFIG_GENSIO_AVAHI),yes,no) \
54 ac_cv_lib_pam_pam_start=$(if $(CONFIG_GENSIO_SSHD),yes,no)
55
56 ifneq ($(CONFIG_PACKAGE_python3-gensio),)
57 CONFIGURE_ARGS += \
58 --with-swig \
59 --with-python \
60 --with-pythoninstall=$(PYTHON3_PKG_DIR)
61
62 CONFIGURE_VARS += \
63 PYTHON_LIBS="$(shell $(STAGING_DIR)/host/bin/$(PYTHON3)-config --ldflags) -l${PYTHON3}" \
64 PYTHON_CPPFLAGS="$(shell $(STAGING_DIR)/host/bin/$(PYTHON3)-config --includes)" \
65 PYTHON="$(STAGING_DIR_HOSTPKG)/bin/$(PYTHON3)"
66 else
67 CONFIGURE_ARGS += \
68 --without-python \
69 --without-swig
70 endif
71
72 define Package/gensio/Default
73 TITLE:=Abstract stream I/O
74 URL:=https://github.com/cminyard/gensio
75 endef
76
77 define Package/gensio/Default/description
78 This project (pronounced gen'-see-oh) is used to abstract stream I/O
79 like serial port, TCP, telnet, UDP, SSL, IPMI SOL etc and offers a
80 framework for giving a consistent view of various stream (and packet)
81 I/O types. You create a gensio object (or a gensio), and you can use
82 that gensio without having to know too much about what is going on
83 underneath. You can stack gensio on top of another one to add protocol
84 funcionality. For instance, you can create a TCP gensio, stack SSL on
85 top of that, and stack Telnet on top of that. It supports a number of
86 network I/O and serial ports. Gensio can be used for sending and
87 receiving ports, and it also supports establishing encrypted and
88 authenticated connections.
89 endef
90
91 define Package/libgensio
92 $(call Package/gensio/Default)
93 TITLE+= (runtime files)
94 SECTION:=libs
95 CATEGORY:=Libraries
96 ABI_VERSION:=0
97 MENU:=1
98 DEPENDS:=+GENSIO_SSL:libopenssl +GENSIO_WRAP:libwrap +(IPV6&&GENSIO_SCTP):libsctp +GENSIO_PTHREADS:libpthread +GENSIO_AVAHI:libavahi-client +GENSIO_TCL:tcl +GENSIO_GLIB:glib2 +GENSIO_SSHD:libpam
99 endef
100
101 define Package/libgensio/description
102 $(call Package/gensio/Default/description)
103 .
104 This package contains the runtime libraries.
105 endef
106
107 define Package/libgensio/config
108 source "$(SOURCE)/Config.in"
109 endef
110
111 define Package/gensio-bin
112 $(call Package/gensio/Default)
113 TITLE+= (command-line tools)
114 SECTION:=net
115 CATEGORY:=Network
116 MENU:=1
117 DEPENDS:=+libgensio
118 endef
119
120 define Package/gensio-bin/description
121 $(call Package/gensio/Default/description)
122 .
123 This package contains the command-line tools.
124 endef
125
126 define Package/gensio-bin/config
127 source "$(SOURCE)/Config-bin.in"
128 endef
129
130 define Package/python3-gensio
131 $(call Package/gensio/Default)
132 TITLE+= (Python bindings)
133 SECTION:=lang
134 CATEGORY:=Languages
135 SUBMENU:=Python
136 DEPENDS:=+PACKAGE_python3-gensio:python3-light +libgensiocpp
137 endef
138
139 define Package/python3-gensio/description
140 $(call Package/gensio/Default/description)
141 .
142 This package contains the Python3-bindings for libgensio.
143 endef
144
145 define Package/libgensiocpp
146 $(call Package/gensio/Default)
147 TITLE+= (C++ - bindings)
148 SECTION:=libs
149 CATEGORY:=Libraries
150 ABI_VERSION:=0
151 DEPENDS:=+libgensio +PACKAGE_libgensiocpp:libstdcpp
152 endef
153
154 define Package/libgensiocpp/description
155 $(call Package/gensio/Default/description)
156 .
157 This package contains the C++ runtime files.
158 endef
159
160 define Build/InstallDev
161 $(INSTALL_DIR) $(1)/usr/include/gensio/
162 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/gensio/* $(1)/usr/include/gensio/
163 $(INSTALL_DIR) $(1)/usr/lib/
164 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} $(1)/usr/lib/
165 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
166 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
167 ifneq ($(CONFIG_PACKAGE_python3-gensio),)
168 $(INSTALL_DIR) $(1)/$(PYTHON3_PKG_DIR)
169 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.{so*,a,la} $(1)/$(PYTHON3_PKG_DIR)
170 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.py* $(1)/$(PYTHON3_PKG_DIR)
171 endif
172 endef
173
174 define Package/libgensio/install
175 $(INSTALL_DIR) $(1)/usr/lib
176 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensio.so.* $(1)/usr/lib/
177 ifeq ($(CONFIG_GENSIO_GLIB),y)
178 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensioglib.so.* $(1)/usr/lib/
179 endif
180 endef
181
182 define Package/gensio-bin/install
183 $(INSTALL_DIR) $(1)/usr/bin
184 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
185 ifeq ($(CONFIG_GENSIO_SSHD),y)
186 $(INSTALL_DIR) $(1)/usr/sbin
187 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
188 endif
189 endef
190
191 define Package/python3-gensio/install
192 $(INSTALL_DIR) $(1)/$(PYTHON3_PKG_DIR)
193 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.so* $(1)/$(PYTHON3_PKG_DIR)
194 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.py* $(1)/$(PYTHON3_PKG_DIR)
195
196 $(INSTALL_DIR) $(1)/usr/lib
197 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensio_python_swig.so.* $(1)/usr/lib/
198 endef
199
200 define Package/libgensiocpp/install
201 $(INSTALL_DIR) $(1)/usr/lib
202 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensiocpp.so.* $(1)/usr/lib/
203 endef
204
205 $(eval $(call BuildPackage,libgensio))
206 $(eval $(call BuildPackage,gensio-bin))
207 $(eval $(call BuildPackage,python3-gensio))
208 $(eval $(call BuildPackage,libgensiocpp))