2 # Copyright (C) 2009-2020 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
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
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
23 PKG_BUILD_DEPENDS
:=erlang
/host openssl
26 PKG_CONFIG_DEPENDS
:= \
27 CONFIG_KERNEL_TRANSPARENT_HUGEPAGE
29 HOST_BUILD_DIR
:=$(BUILD_DIR_HOST
)/otp_src_
$(PKG_VERSION
)
30 PKG_BUILD_DIR
:=$(BUILD_DIR
)/otp_src_
$(PKG_VERSION
)
32 include $(INCLUDE_DIR
)/host-build.mk
33 include $(INCLUDE_DIR
)/package.mk
35 define Package
/erlang
/Default
39 TITLE
:=Erlang
/OTP programming language
40 URL
:=https
://www.erlang.org
/
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
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
55 define Package
/erlang
/description
56 $(call Package
/erlang
/Default
/description
)
58 This package contains the runtime implementation and a minimal set of
59 modules
(erts
, kernel
, sasl
& stdlib
).
63 define Package
/erlang-asn1
64 $(call Package
/erlang
/Default
)
65 TITLE
:=Abstract Syntax Notation One
(ASN
.1) support
67 DEPENDS
+= +erlang
+erlang-syntax-tools
70 define Package
/erlang-asn1
/description
71 $(call Package
/erlang
/Default
/description
)
73 This Erlang
/OTP package provides Abstract Syntax Notation One
(ASN
.1)
78 define Package
/erlang-compiler
79 $(call Package
/erlang
/Default
)
80 TITLE
:=Byte code compiler
85 define Package
/erlang-compiler
/description
86 $(call Package
/erlang
/Default
/description
)
88 This Erlang
/OTP package provides a byte code compiler for Erlang which
89 produces highly compact code.
93 define Package
/erlang-crypto
94 $(call Package
/erlang
/Default
)
95 TITLE
:=Cryptography support
97 DEPENDS
+= +erlang
+libopenssl
100 define Package
/erlang-crypto
/description
101 $(call Package
/erlang
/Default
/description
)
103 This Erlang
/OTP package provides functions for computation of message
104 digests
, and encryption and decryption functions.
108 define Package
/erlang-inets
109 $(call Package
/erlang
/Default
)
110 TITLE
:=Internet clients and servers
115 define Package
/erlang-inets
/description
116 $(call Package
/erlang
/Default
/description
)
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.
124 define Package
/erlang-mnesia
125 $(call Package
/erlang
/Default
)
126 TITLE
:=Distributed database
131 define Package
/erlang-mnesia
/description
132 $(call Package
/erlang
/Default
/description
)
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.
141 define Package
/erlang-runtime-tools
142 $(call Package
/erlang
/Default
)
143 TITLE
:=Low-profile debugging
/tracing tools
148 define Package
/erlang-runtime-tools
/description
149 $(call Package
/erlang
/Default
/description
)
151 This Erlang
/OTP package provides low footprint tracing
/debugging tools
152 suitable for inclusion in a production system.
156 define Package
/erlang-snmp
157 $(call Package
/erlang
/Default
)
158 TITLE
:=Simple Network Management Protocol
(SNMP
) support
160 DEPENDS
+= +erlang
+erlang-asn1
163 define Package
/erlang-snmp
/description
164 $(call Package
/erlang
/Default
/description
)
166 This Erlang
/OTP package provides Simple Network Management Protocol
167 (SNMP
) support including a MIB compiler and tools for creating SNMP
172 define Package
/erlang-public-key
173 $(call Package
/erlang
/Default
)
174 TITLE
:=Public Key support
176 DEPENDS
+= +erlang
+erlang-crypto
+erlang-asn1
179 define Package
/erlang-public-key
/description
180 $(call Package
/erlang
/Default
/description
)
182 This Erlang
/OTP package provides functions to handle public-key infrastructure.
186 define Package
/erlang-ssh
187 $(call Package
/erlang
/Default
)
188 TITLE
:=Secure Shell
(SSH
) support
190 DEPENDS
+= +erlang
+erlang-crypto
193 define Package
/erlang-ssh
/description
194 $(call Package
/erlang
/Default
/description
)
196 This Erlang
/OTP package provides an implementation of the Secure Shell
197 protocol
, with SSH
& SFTP support.
201 define Package
/erlang-ssl
202 $(call Package
/erlang
/Default
)
203 TITLE
:=Secure Sockets Layer
(SSL
) support
205 DEPENDS
+= +erlang
+erlang-crypto
208 define Package
/erlang-ssl
/description
209 $(call Package
/erlang
/Default
/description
)
211 This Erlang
/OTP package provides support for secure communication over
216 define Package
/erlang-syntax-tools
217 $(call Package
/erlang
/Default
)
218 TITLE
:=Abstract Erlang syntax trees handling support
223 define Package
/erlang-syntax-tools
/description
224 $(call Package
/erlang
/Default
/description
)
226 This Erlang
/OTP package provides support for handling abstract Erlang
231 define Package
/erlang-tools
232 $(call Package
/erlang
/Default
)
233 TITLE
:=Erlang tools support
238 define Package
/erlang-tools
/description
239 $(call Package
/erlang
/Default
/description
)
241 This Erlang
/OTP package provides support for misc tools.
245 define Package
/erlang-reltool
246 $(call Package
/erlang
/Default
)
247 TITLE
:=Erlang reltool support
252 define Package
/erlang-reltool
/description
253 $(call Package
/erlang
/Default
/description
)
255 This Erlang
/OTP package provides support for release management.
259 define Package
/erlang-erl-interface
260 $(call Package
/erlang
/Default
)
261 TITLE
:=Erlang erl_interface support
266 define Package
/erlang-erl-interface
/description
267 $(call Package
/erlang
/Default
/description
)
269 This Erlang
/OTP package provides support for erlang interoperability with other languages.
272 define Package
/erlang-os_mon
273 $(call Package
/erlang
/Default
)
274 TITLE
:=Erlang OS Monitoring Application
279 define Package
/erlang-os_mon
/description
280 $(call Package
/erlang
/Default
/description
)
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
288 define Package
/erlang-xmerl
289 $(call Package
/erlang
/Default
)
290 TITLE
:=Erlang XML
export
295 define Package
/erlang-xmerl
/description
296 $(call Package
/erlang
/Default
/description
)
298 This Erlang
/OTP package provides functions for exporting XML data to an external format
303 HOST_CONFIGURE_ARGS
+= \
305 --with-ssl
="$(STAGING_DIR_HOST)" \
312 --enable-dynamic-ssl-lib
314 ## Override incorrect THP detection by configure script
316 ifeq ($(CONFIG_KERNEL_TRANSPARENT_HUGEPAGE
),y
)
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)"
329 EXTRA_CFLAGS
+=-D_GNU_SOURCE
333 $(MAKE
) -C
$(PKG_BUILD_DIR
) \
335 $(MAKE
) -C
$(PKG_BUILD_DIR
) \
336 INSTALL_PREFIX
="$(PKG_INSTALL_DIR)" \
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
/ ; \
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
/ ; \
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
; \
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 ; \
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/
380 define Package
/erlang-
$(1)/install
381 $(INSTALL_DIR
) $$(1)/usr
/lib
/erlang
/lib
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
} ; \
388 $$(eval
$$(call BuildPackage
,erlang-
$(1)))
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
))