pbr: bugfix: filter only static routes for new tables
[feed/packages.git] / lang / erlang / Makefile
1 #
2 # Copyright (C) 2009-2020 OpenWrt.org
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:=erlang
11 PKG_VERSION:=27.0.1
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://github.com/erlang/otp/releases/download/OTP-$(PKG_VERSION)
16 PKG_HASH:=26d894e2f0dda9d13560af08ea589afc01569df6b5486e565beb5accb99c9cf4
17
18 PKG_LICENSE:=Apache-2.0
19 PKG_LICENSE_FILES:=LICENSE.txt
20 PKG_MAINTAINER:=Arnaud Sautaux <arnaud.sautaux@infoteam.ch>
21 PKG_CPE_ID:=cpe:/a:erlang:erlang
22
23 PKG_BUILD_DEPENDS:=erlang/host openssl
24 PKG_ASLR_PIE:=0
25
26 PKG_CONFIG_DEPENDS:= \
27 CONFIG_KERNEL_TRANSPARENT_HUGEPAGE
28
29 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/otp_src_$(PKG_VERSION)
30 PKG_BUILD_DIR:=$(BUILD_DIR)/otp_src_$(PKG_VERSION)
31
32 include $(INCLUDE_DIR)/host-build.mk
33 include $(INCLUDE_DIR)/package.mk
34
35 define Package/erlang/Default
36 SUBMENU:=Erlang
37 SECTION:=lang
38 CATEGORY:=Languages
39 TITLE:=Erlang/OTP programming language
40 URL:=https://www.erlang.org/
41 endef
42
43 define Package/erlang/Default/description
44 Erlang/OTP is a general-purpose programming language and runtime
45 environment. Erlang has built-in support for concurrency, distribution
46 and fault tolerance.
47 endef
48
49 define Package/erlang
50 $(call Package/erlang/Default)
51 DEPENDS+= +libncurses +librt +zlib +libstdcpp
52 PROVIDES:= erlang-erts=15.0.1 erlang-kernel=10.0.1 erlang-sasl=4.2.2 erlang-stdlib=6.0.1
53 endef
54
55 define Package/erlang/description
56 $(call Package/erlang/Default/description)
57 .
58 This package contains the runtime implementation and a minimal set of
59 modules (erts, kernel, sasl & stdlib).
60 endef
61
62
63 define Package/erlang-asn1
64 $(call Package/erlang/Default)
65 TITLE:=Abstract Syntax Notation One (ASN.1) support
66 VERSION:=5.3
67 DEPENDS+= +erlang +erlang-syntax-tools
68 endef
69
70 define Package/erlang-asn1/description
71 $(call Package/erlang/Default/description)
72 .
73 This Erlang/OTP package provides Abstract Syntax Notation One (ASN.1)
74 support.
75 endef
76
77
78 define Package/erlang-compiler
79 $(call Package/erlang/Default)
80 TITLE:=Byte code compiler
81 VERSION:=8.5.1
82 DEPENDS+= +erlang
83 endef
84
85 define Package/erlang-compiler/description
86 $(call Package/erlang/Default/description)
87 .
88 This Erlang/OTP package provides a byte code compiler for Erlang which
89 produces highly compact code.
90 endef
91
92
93 define Package/erlang-crypto
94 $(call Package/erlang/Default)
95 TITLE:=Cryptography support
96 VERSION:=5.5
97 DEPENDS+= +erlang +libopenssl
98 endef
99
100 define Package/erlang-crypto/description
101 $(call Package/erlang/Default/description)
102 .
103 This Erlang/OTP package provides functions for computation of message
104 digests, and encryption and decryption functions.
105 endef
106
107
108 define Package/erlang-inets
109 $(call Package/erlang/Default)
110 TITLE:=Internet clients and servers
111 VERSION:=9.2
112 DEPENDS+= +erlang
113 endef
114
115 define Package/erlang-inets/description
116 $(call Package/erlang/Default/description)
117 .
118 This Erlang/OTP package provides a container for Internet clients and
119 servers. Currently a FTP client, a HTTP client and server, and a tftp
120 client and server have been incorporated in Inets.
121 endef
122
123
124 define Package/erlang-mnesia
125 $(call Package/erlang/Default)
126 TITLE:=Distributed database
127 VERSION:=4.23.2
128 DEPENDS+= +erlang
129 endef
130
131 define Package/erlang-mnesia/description
132 $(call Package/erlang/Default/description)
133 .
134 This Erlang/OTP package provides a distributed DataBase Management
135 System (DBMS), appropriate for telecommunications applications and
136 other Erlang applications which require continuous operation and
137 exhibit soft real-time properties.
138 endef
139
140
141 define Package/erlang-runtime-tools
142 $(call Package/erlang/Default)
143 TITLE:=Low-profile debugging/tracing tools
144 VERSION:=2.1
145 DEPENDS+= +erlang
146 endef
147
148 define Package/erlang-runtime-tools/description
149 $(call Package/erlang/Default/description)
150 .
151 This Erlang/OTP package provides low footprint tracing/debugging tools
152 suitable for inclusion in a production system.
153 endef
154
155
156 define Package/erlang-snmp
157 $(call Package/erlang/Default)
158 TITLE:=Simple Network Management Protocol (SNMP) support
159 VERSION:=5.16
160 DEPENDS+= +erlang +erlang-asn1
161 endef
162
163 define Package/erlang-snmp/description
164 $(call Package/erlang/Default/description)
165 .
166 This Erlang/OTP package provides Simple Network Management Protocol
167 (SNMP) support including a MIB compiler and tools for creating SNMP
168 agents.
169 endef
170
171
172 define Package/erlang-public-key
173 $(call Package/erlang/Default)
174 TITLE:=Public Key support
175 VERSION:=1.16.1
176 DEPENDS+= +erlang +erlang-crypto +erlang-asn1
177 endef
178
179 define Package/erlang-public-key/description
180 $(call Package/erlang/Default/description)
181 .
182 This Erlang/OTP package provides functions to handle public-key infrastructure.
183 endef
184
185
186 define Package/erlang-ssh
187 $(call Package/erlang/Default)
188 TITLE:=Secure Shell (SSH) support
189 VERSION:=5.2.1
190 DEPENDS+= +erlang +erlang-crypto
191 endef
192
193 define Package/erlang-ssh/description
194 $(call Package/erlang/Default/description)
195 .
196 This Erlang/OTP package provides an implementation of the Secure Shell
197 protocol, with SSH & SFTP support.
198 endef
199
200
201 define Package/erlang-ssl
202 $(call Package/erlang/Default)
203 TITLE:=Secure Sockets Layer (SSL) support
204 VERSION:=11.2.1
205 DEPENDS+= +erlang +erlang-crypto
206 endef
207
208 define Package/erlang-ssl/description
209 $(call Package/erlang/Default/description)
210 .
211 This Erlang/OTP package provides support for secure communication over
212 sockets.
213 endef
214
215
216 define Package/erlang-syntax-tools
217 $(call Package/erlang/Default)
218 TITLE:=Abstract Erlang syntax trees handling support
219 VERSION:=3.2
220 DEPENDS+= +erlang
221 endef
222
223 define Package/erlang-syntax-tools/description
224 $(call Package/erlang/Default/description)
225 .
226 This Erlang/OTP package provides support for handling abstract Erlang
227 syntax trees.
228 endef
229
230
231 define Package/erlang-tools
232 $(call Package/erlang/Default)
233 TITLE:=Erlang tools support
234 VERSION:=4.0
235 DEPENDS+= +erlang
236 endef
237
238 define Package/erlang-tools/description
239 $(call Package/erlang/Default/description)
240 .
241 This Erlang/OTP package provides support for misc tools.
242 endef
243
244
245 define Package/erlang-reltool
246 $(call Package/erlang/Default)
247 TITLE:=Erlang reltool support
248 VERSION:=1.0.1
249 DEPENDS+= +erlang
250 endef
251
252 define Package/erlang-reltool/description
253 $(call Package/erlang/Default/description)
254 .
255 This Erlang/OTP package provides support for release management.
256 endef
257
258
259 define Package/erlang-erl-interface
260 $(call Package/erlang/Default)
261 TITLE:=Erlang erl_interface support
262 VERSION:=5.5.2
263 DEPENDS+= +erlang
264 endef
265
266 define Package/erlang-erl-interface/description
267 $(call Package/erlang/Default/description)
268 .
269 This Erlang/OTP package provides support for erlang interoperability with other languages.
270 endef
271
272 define Package/erlang-os_mon
273 $(call Package/erlang/Default)
274 TITLE:=Erlang OS Monitoring Application
275 VERSION:=2.10
276 DEPENDS+= +erlang
277 endef
278
279 define Package/erlang-os_mon/description
280 $(call Package/erlang/Default/description)
281 .
282 This Erlang/OTP package provides the following services:
283 cpu_sup CPU load and utilization supervision
284 disksup Disk supervision
285 memsup Memory supervision
286 endef
287
288 define Package/erlang-xmerl
289 $(call Package/erlang/Default)
290 TITLE:=Erlang XML export
291 VERSION:=2.0
292 DEPENDS+= +erlang
293 endef
294
295 define Package/erlang-xmerl/description
296 $(call Package/erlang/Default/description)
297 .
298 This Erlang/OTP package provides functions for exporting XML data to an external format
299 endef
300
301 # Host
302
303 HOST_CONFIGURE_ARGS += \
304 --without-wx \
305 --with-ssl="$(STAGING_DIR_HOST)" \
306 --without-javac
307
308 # Target
309
310 CONFIGURE_ARGS += \
311 --without-javac \
312 --enable-dynamic-ssl-lib
313
314 ## Override incorrect THP detection by configure script
315 ERTS_THP=no
316 ifeq ($(CONFIG_KERNEL_TRANSPARENT_HUGEPAGE),y)
317 ERTS_THP=yes
318 endif
319
320 CONFIGURE_VARS += \
321 SHLIB_LD="$(TARGET_CC)" \
322 TARGET_ARCH="$(TARGET_ARCH)" \
323 erts_cv_linux_thp=$(ERTS_THP) \
324 ac_cv_func_mmap_fixed_mapped=yes \
325 ac_cv_path_WX_CONFIG_PATH=no \
326 erl_xcomp_getaddrinfo=no \
327 erl_xcomp_sysroot="$(STAGING_DIR)"
328
329 EXTRA_CFLAGS+=-D_GNU_SOURCE
330 EXTRA_LDFLAGS+=-lz
331
332 define Build/Compile
333 $(MAKE) -C $(PKG_BUILD_DIR) \
334 noboot
335 $(MAKE) -C $(PKG_BUILD_DIR) \
336 INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
337 install
338 endef
339
340 define Package/erlang/install
341 $(INSTALL_DIR) $(1)/usr/bin
342 for f in epmd erl erlc escript run_erl; do \
343 $(CP) $(PKG_INSTALL_DIR)/usr/bin/$$$$f $(1)/usr/bin/ ; \
344 done
345 $(INSTALL_DIR) $(1)/usr/lib/erlang/bin
346 for f in epmd erl erlc escript run_erl start start.boot start.script start_clean.boot start_erl start_sasl.boot no_dot_erlang.boot to_erl; do \
347 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/bin/$$$$f $(1)/usr/lib/erlang/bin/ ; \
348 done
349 $(INSTALL_DIR) $(1)/usr/lib/erlang/lib
350 for m in erts kernel sasl stdlib; do \
351 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$m-* $(1)/usr/lib/erlang/lib/ ; \
352 rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/examples ; \
353 rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/src ; \
354 done
355 $(INSTALL_DIR) $(1)/usr/lib/erlang
356 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/erts-* $(1)/usr/lib/erlang/
357 rm -rf $(1)/usr/lib/erlang/erts-*/{doc,include,lib,man,src}
358 rm -rf $(1)/usr/lib/erlang/erts-*/bin/*.src
359 $(INSTALL_DIR) $(1)/usr/lib/erlang/releases
360 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/releases/* $(1)/usr/lib/erlang/releases/
361 $(SED) 's,%ERL_ROOT%,/usr/lib/erlang,g' \
362 $(1)/usr/lib/erlang/releases/RELEASES.src
363 mv -f $(1)/usr/lib/erlang/releases/RELEASES.src \
364 $(1)/usr/lib/erlang/releases/RELEASES
365 for f in bin/erl bin/start erts-*/bin/erl erts-*/bin/start; do \
366 $(SED) 's,^\(ROOTDIR\)=.*,\1=/usr/lib/erlang,g' \
367 $(1)/usr/lib/erlang/$$$$f ; \
368 done
369 endef
370
371 define Build/InstallDev
372 $(INSTALL_DIR) $(1)/usr/lib
373 $(CP) $(PKG_BUILD_DIR)/lib/erl_interface/obj/*/*.a $(1)/usr/lib/
374 $(INSTALL_DIR) $(1)/usr/include
375 $(CP) $(PKG_BUILD_DIR)/lib/erl_interface/include/*.h $(1)/usr/include/
376 endef
377
378 define BuildModule
379
380 define Package/erlang-$(1)/install
381 $(INSTALL_DIR) $$(1)/usr/lib/erlang/lib
382 for m in $(2); do \
383 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$$$$$m-* $$(1)/usr/lib/erlang/lib/ ; \
384 rm -rf $$(1)/usr/lib/erlang/lib/$$$$$$$$m-*/{examples,priv/obj,src} ; \
385 done
386 endef
387
388 $$(eval $$(call BuildPackage,erlang-$(1)))
389
390 endef
391
392
393 $(eval $(call HostBuild))
394 $(eval $(call BuildPackage,erlang))
395 $(eval $(call BuildModule,asn1,asn1))
396 $(eval $(call BuildModule,compiler,compiler))
397 $(eval $(call BuildModule,crypto,crypto))
398 $(eval $(call BuildModule,inets,inets))
399 $(eval $(call BuildModule,mnesia,mnesia))
400 $(eval $(call BuildModule,runtime-tools,runtime_tools))
401 $(eval $(call BuildModule,snmp,snmp))
402 $(eval $(call BuildModule,public-key,public_key))
403 $(eval $(call BuildModule,ssh,ssh))
404 $(eval $(call BuildModule,ssl,ssl))
405 $(eval $(call BuildModule,syntax-tools,syntax_tools))
406 $(eval $(call BuildModule,tools,tools))
407 $(eval $(call BuildModule,reltool,reltool))
408 $(eval $(call BuildModule,erl-interface,erl_interface))
409 $(eval $(call BuildModule,os_mon,os_mon))
410 $(eval $(call BuildModule,xmerl,xmerl))