b193a049259444cbd21cfedd9f05d4d72937bd92
[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-go \
49 --without-openipmi \
50 --with-cplusplus \
51 --disable-doc
52
53 CONFIGURE_VARS += \
54 ac_cv_lib_avahi_client_avahi_client_new=$(if $(CONFIG_GENSIO_AVAHI),yes,no) \
55 ac_cv_lib_pam_pam_start=$(if $(CONFIG_GENSIO_SSHD),yes,no)
56
57 ifneq ($(CONFIG_PACKAGE_python3-gensio),)
58 CONFIGURE_ARGS += \
59 --with-swig \
60 --with-python \
61 --with-pythoninstall=$(PYTHON3_PKG_DIR)
62
63 CONFIGURE_VARS += \
64 PYTHON_LIBS="$(shell $(STAGING_DIR)/host/bin/$(PYTHON3)-config --ldflags) -l${PYTHON3}" \
65 PYTHON_CPPFLAGS="$(shell $(STAGING_DIR)/host/bin/$(PYTHON3)-config --includes)" \
66 PYTHON="$(STAGING_DIR_HOSTPKG)/bin/$(PYTHON3)"
67 else
68 CONFIGURE_ARGS += \
69 --without-python \
70 --without-swig
71 endif
72
73 define Package/gensio/Default
74 TITLE:=Abstract stream I/O
75 URL:=https://github.com/cminyard/gensio
76 endef
77
78 define Package/gensio/Default/description
79 This project (pronounced gen'-see-oh) is used to abstract stream I/O
80 like serial port, TCP, telnet, UDP, SSL, IPMI SOL etc and offers a
81 framework for giving a consistent view of various stream (and packet)
82 I/O types. You create a gensio object (or a gensio), and you can use
83 that gensio without having to know too much about what is going on
84 underneath. You can stack gensio on top of another one to add protocol
85 funcionality. For instance, you can create a TCP gensio, stack SSL on
86 top of that, and stack Telnet on top of that. It supports a number of
87 network I/O and serial ports. Gensio can be used for sending and
88 receiving ports, and it also supports establishing encrypted and
89 authenticated connections.
90 endef
91
92 define Package/libgensio
93 $(call Package/gensio/Default)
94 TITLE+= (runtime files)
95 SECTION:=libs
96 CATEGORY:=Libraries
97 ABI_VERSION:=0
98 MENU:=1
99 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
100 endef
101
102 define Package/libgensio/description
103 $(call Package/gensio/Default/description)
104 .
105 This package contains the runtime libraries.
106 endef
107
108 define Package/libgensio/config
109 source "$(SOURCE)/Config.in"
110 endef
111
112 define Package/gensio-bin
113 $(call Package/gensio/Default)
114 TITLE+= (command-line tools)
115 SECTION:=net
116 CATEGORY:=Network
117 MENU:=1
118 DEPENDS:=+libgensio
119 endef
120
121 define Package/gensio-bin/description
122 $(call Package/gensio/Default/description)
123 .
124 This package contains the command-line tools.
125 endef
126
127 define Package/gensio-bin/config
128 source "$(SOURCE)/Config-bin.in"
129 endef
130
131 define Package/python3-gensio
132 $(call Package/gensio/Default)
133 TITLE+= (Python bindings)
134 SECTION:=lang
135 CATEGORY:=Languages
136 SUBMENU:=Python
137 DEPENDS:=+PACKAGE_python3-gensio:python3-light +libgensiocpp
138 endef
139
140 define Package/python3-gensio/description
141 $(call Package/gensio/Default/description)
142 .
143 This package contains the Python3-bindings for libgensio.
144 endef
145
146 define Package/libgensiocpp
147 $(call Package/gensio/Default)
148 TITLE+= (C++ - bindings)
149 SECTION:=libs
150 CATEGORY:=Libraries
151 ABI_VERSION:=0
152 DEPENDS:=+libgensio +PACKAGE_libgensiocpp:libstdcpp
153 endef
154
155 define Package/libgensiocpp/description
156 $(call Package/gensio/Default/description)
157 .
158 This package contains the C++ runtime files.
159 endef
160
161 define Build/InstallDev
162 $(INSTALL_DIR) $(1)/usr/include/gensio/
163 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/gensio/* $(1)/usr/include/gensio/
164 $(INSTALL_DIR) $(1)/usr/lib/
165 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} $(1)/usr/lib/
166 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
167 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
168 ifneq ($(CONFIG_PACKAGE_python3-gensio),)
169 $(INSTALL_DIR) $(1)/$(PYTHON3_PKG_DIR)
170 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.{so*,a,la} $(1)/$(PYTHON3_PKG_DIR)
171 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.py* $(1)/$(PYTHON3_PKG_DIR)
172 endif
173 endef
174
175 define Package/libgensio/install
176 $(INSTALL_DIR) $(1)/usr/lib
177 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensio.so.* $(1)/usr/lib/
178 ifeq ($(CONFIG_GENSIO_GLIB),y)
179 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensioglib.so.* $(1)/usr/lib/
180 endif
181 endef
182
183 define Package/gensio-bin/install
184 $(INSTALL_DIR) $(1)/usr/bin
185 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
186 ifeq ($(CONFIG_GENSIO_SSHD),y)
187 $(INSTALL_DIR) $(1)/usr/sbin
188 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
189 endif
190 endef
191
192 define Package/python3-gensio/install
193 $(INSTALL_DIR) $(1)/$(PYTHON3_PKG_DIR)
194 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.so* $(1)/$(PYTHON3_PKG_DIR)
195 $(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/*.py* $(1)/$(PYTHON3_PKG_DIR)
196
197 $(INSTALL_DIR) $(1)/usr/lib
198 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensio_python_swig.so.* $(1)/usr/lib/
199 endef
200
201 define Package/libgensiocpp/install
202 $(INSTALL_DIR) $(1)/usr/lib
203 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgensiocpp.so.* $(1)/usr/lib/
204 endef
205
206 $(eval $(call BuildPackage,libgensio))
207 $(eval $(call BuildPackage,gensio-bin))
208 $(eval $(call BuildPackage,python3-gensio))
209 $(eval $(call BuildPackage,libgensiocpp))