2 # Copyright (C) 2009-2012 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:= http://www.erlang.org/download/ \
16 http://erlang.mirror.su.se/
17 PKG_MD5SUM:= ca63bcde0e5ae0f2df9457f97b3115a4
19 PKG_BUILD_DEPENDS:=erlang/host openssl
21 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/otp_src_$(PKG_VERSION)
22 PKG_BUILD_DIR:=$(BUILD_DIR)/otp_src_$(PKG_VERSION)
24 include $(INCLUDE_DIR)/host-build.mk
25 include $(INCLUDE_DIR)/package.mk
27 define Package/erlang/Default
31 TITLE:=Erlang/OTP programming language
32 URL:=http://www.erlang.org/
35 define Package/erlang/Default/description
36 Erlang/OTP is a general-purpose programming language and runtime
37 environment. Erlang has built-in support for concurrency, distribution
42 $(call Package/erlang/Default)
43 DEPENDS+= +libncurses +librt +zlib
44 PROVIDES:= erlang-erts=5.10.3 erlang-kernel=2.16.3 erlang-sasl=2.3.3 erlang-stdlib=1.19.3
47 define Package/erlang/description
48 $(call Package/erlang/Default/description)
50 This package contains the runtime implementation and a minimal set of
51 modules (erts, kernel, sasl & stdlib).
55 define Package/erlang-asn1
56 $(call Package/erlang/Default)
57 TITLE:=Abstract Syntax Notation One (ASN.1) support
59 DEPENDS+= +erlang +erlang-syntax-tools
62 define Package/erlang-asn1/description
63 $(call Package/erlang/Default/description)
65 This Erlang/OTP package provides Abstract Syntax Notation One (ASN.1)
70 define Package/erlang-compiler
71 $(call Package/erlang/Default)
72 TITLE:=Byte code compiler
74 DEPENDS+= +erlang +erlang-hipe
77 define Package/erlang-compiler/description
78 $(call Package/erlang/Default/description)
80 This Erlang/OTP package provides a byte code compiler for Erlang which
81 produces highly compact code.
85 define Package/erlang-crypto
86 $(call Package/erlang/Default)
87 TITLE:=Cryptography support
89 DEPENDS+= +erlang +libopenssl
92 define Package/erlang-crypto/description
93 $(call Package/erlang/Default/description)
95 This Erlang/OTP package provides functions for computation of message
96 digests, and encryption and decryption functions.
100 define Package/erlang-hipe
101 $(call Package/erlang/Default)
102 TITLE:=High Performance Erlang
107 define Package/erlang-hipe/description
108 $(call Package/erlang/Default/description)
110 This Erlang/OTP package provides HiPE (High Performance Erlang)
115 define Package/erlang-inets
116 $(call Package/erlang/Default)
117 TITLE:=Internet clients and servers
122 define Package/erlang-inets/description
123 $(call Package/erlang/Default/description)
125 This Erlang/OTP package provides a container for Internet clients and
126 servers. Currently a FTP client, a HTTP client and server, and a tftp
127 client and server have been incorporated in Inets.
131 define Package/erlang-mnesia
132 $(call Package/erlang/Default)
133 TITLE:=Distributed database
138 define Package/erlang-mnesia/description
139 $(call Package/erlang/Default/description)
141 This Erlang/OTP package provides a distributed DataBase Management
142 System (DBMS), appropriate for telecommunications applications and
143 other Erlang applications which require continuous operation and
144 exhibit soft real-time properties.
148 define Package/erlang-runtime-tools
149 $(call Package/erlang/Default)
150 TITLE:=Low-profile debugging/tracing tools
155 define Package/erlang-runtime-tools/description
156 $(call Package/erlang/Default/description)
158 This Erlang/OTP package provides low footprint tracing/debugging tools
159 suitable for inclusion in a production system.
163 define Package/erlang-snmp
164 $(call Package/erlang/Default)
165 TITLE:=Simple Network Management Protocol (SNMP) support
167 DEPENDS+= +erlang +erlang-asn1
170 define Package/erlang-snmp/description
171 $(call Package/erlang/Default/description)
173 This Erlang/OTP package provides Simple Network Management Protocol
174 (SNMP) support including a MIB compiler and tools for creating SNMP
179 define Package/erlang-ssh
180 $(call Package/erlang/Default)
181 TITLE:=Secure Shell (SSH) support
183 DEPENDS+= +erlang +erlang-crypto
186 define Package/erlang-ssh/description
187 $(call Package/erlang/Default/description)
189 This Erlang/OTP package provides an implementation of the Secure Shell
190 protocol, with SSH & SFTP support.
194 define Package/erlang-ssl
195 $(call Package/erlang/Default)
196 TITLE:=Secure Sockets Layer (SSL) support
198 DEPENDS+= +erlang +erlang-crypto
201 define Package/erlang-ssl/description
202 $(call Package/erlang/Default/description)
204 This Erlang/OTP package provides support for secure communication over
209 define Package/erlang-syntax-tools
210 $(call Package/erlang/Default)
211 TITLE:=Abstract Erlang syntax trees handling support
216 define Package/erlang-syntax-tools/description
217 $(call Package/erlang/Default/description)
219 This Erlang/OTP package provides support for handling abstract Erlang
226 HOST_CONFIGURE_ARGS += \
228 --disable-smp-support \
232 $(MAKE) -C $(HOST_BUILD_DIR) all
236 $(MAKE) -C $(HOST_BUILD_DIR) install
244 --disable-smp-support \
246 --enable-dynamic-ssl-lib
249 SHLIB_LD="$(TARGET_CC)" \
250 TARGET_ARCH="$(TARGET_ARCH)" \
251 ac_cv_func_mmap_fixed_mapped=yes \
252 ac_cv_path_WX_CONFIG_PATH=no \
253 erl_xcomp_getaddrinfo=no \
254 erl_xcomp_sysroot="$(STAGING_DIR)"
259 $(MAKE) -C $(PKG_BUILD_DIR) \
261 $(MAKE) -C $(PKG_BUILD_DIR) \
262 INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
266 define Package/erlang/install
267 $(INSTALL_DIR) $(1)/usr/bin
268 for f in epmd erl erlc escript run_erl; do \
269 $(CP) $(PKG_INSTALL_DIR)/usr/bin/$$$$f $(1)/usr/bin/ ; \
271 $(INSTALL_DIR) $(1)/usr/lib/erlang/bin
272 for f in erl erlc escript run_erl start start.boot start.script start_clean.boot start_erl start_sasl.boot to_erl; do \
273 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/bin/$$$$f $(1)/usr/lib/erlang/bin/ ; \
275 $(INSTALL_DIR) $(1)/usr/lib/erlang/lib
276 for m in erts kernel sasl stdlib; do \
277 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$m-* $(1)/usr/lib/erlang/lib/ ; \
278 rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/examples ; \
279 rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/src ; \
281 $(INSTALL_DIR) $(1)/usr/lib/erlang
282 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/erts-* $(1)/usr/lib/erlang/
283 rm -rf $(1)/usr/lib/erlang/erts-*/{doc,include,lib,man,src}
284 rm -rf $(1)/usr/lib/erlang/erts-*/bin/*.src
285 $(INSTALL_DIR) $(1)/usr/lib/erlang/releases
286 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/releases/* $(1)/usr/lib/erlang/releases/
287 $(SED) 's,%ERL_ROOT%,/usr/lib/erlang,g' \
288 $(1)/usr/lib/erlang/releases/RELEASES.src
289 mv -f $(1)/usr/lib/erlang/releases/RELEASES.src \
290 $(1)/usr/lib/erlang/releases/RELEASES
291 for f in bin/erl bin/start erts-*/bin/erl erts-*/bin/start; do \
292 $(SED) 's,^\(ROOTDIR\)=.*,\1=/usr/lib/erlang,g' \
293 $(1)/usr/lib/erlang/$$$$f ; \
297 define Build/InstallDev
298 $(INSTALL_DIR) $(1)/usr/lib
299 $(CP) $(PKG_BUILD_DIR)/lib/erl_interface/obj/*/*.a $(1)/usr/lib
300 $(INSTALL_DIR) $(1)/usr/include
301 $(CP) $(PKG_BUILD_DIR)/lib/erl_interface/include/*.h $(1)/usr/include
306 define Package/erlang-$(1)/install
307 $(INSTALL_DIR) $$(1)/usr/lib/erlang/lib
309 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$$$$$m-* $$(1)/usr/lib/erlang/lib/ ; \
310 rm -rf $$(1)/usr/lib/erlang/lib/$$$$$$$$m-*/{examples,priv/obj,src} ; \
314 $$(eval $$(call BuildPackage,erlang-$(1)))
319 $(eval $(call HostBuild))
320 $(eval $(call BuildPackage,erlang))
321 $(eval $(call BuildModule,asn1,asn1))
322 $(eval $(call BuildModule,compiler,compiler))
323 $(eval $(call BuildModule,crypto,crypto))
324 $(eval $(call BuildModule,hipe,hipe))
325 $(eval $(call BuildModule,inets,inets))
326 $(eval $(call BuildModule,mnesia,mnesia))
327 $(eval $(call BuildModule,runtime-tools,runtime_tools))
328 $(eval $(call BuildModule,snmp,snmp))
329 $(eval $(call BuildModule,ssh,ssh))
330 $(eval $(call BuildModule,ssl,ssl))
331 $(eval $(call BuildModule,syntax-tools,syntax_tools))