Branch oldpackages for 14.07
[14.07/packages.git] / lang / erlang / Makefile
1 #
2 # Copyright (C) 2009-2012 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:=R16B02
12 PKG_RELEASE:=1
13
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
18
19 PKG_BUILD_DEPENDS:=erlang/host openssl
20
21 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/otp_src_$(PKG_VERSION)
22 PKG_BUILD_DIR:=$(BUILD_DIR)/otp_src_$(PKG_VERSION)
23
24 include $(INCLUDE_DIR)/host-build.mk
25 include $(INCLUDE_DIR)/package.mk
26
27 define Package/erlang/Default
28   SUBMENU:=Erlang
29   SECTION:=lang
30   CATEGORY:=Languages
31   TITLE:=Erlang/OTP programming language
32   URL:=http://www.erlang.org/
33 endef
34
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
38  and fault tolerance.
39 endef
40
41 define Package/erlang
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
45 endef
46
47 define Package/erlang/description
48 $(call Package/erlang/Default/description)
49  .
50  This package contains the runtime implementation and a minimal set of
51  modules (erts, kernel, sasl & stdlib).
52 endef
53
54
55 define Package/erlang-asn1
56 $(call Package/erlang/Default)
57   TITLE:=Abstract Syntax Notation One (ASN.1) support
58   VERSION:=2.0.3
59   DEPENDS+= +erlang +erlang-syntax-tools
60 endef
61
62 define Package/erlang-asn1/description
63 $(call Package/erlang/Default/description)
64  .
65  This Erlang/OTP package provides Abstract Syntax Notation One (ASN.1)
66  support.
67 endef
68
69
70 define Package/erlang-compiler
71 $(call Package/erlang/Default)
72   TITLE:=Byte code compiler
73   VERSION:=4.9.3
74   DEPENDS+= +erlang +erlang-hipe
75 endef
76
77 define Package/erlang-compiler/description
78 $(call Package/erlang/Default/description)
79  .
80  This Erlang/OTP package provides a byte code compiler for Erlang which
81  produces highly compact code.
82 endef
83
84
85 define Package/erlang-crypto
86 $(call Package/erlang/Default)
87   TITLE:=Cryptography support
88   VERSION:=3.1
89   DEPENDS+= +erlang +libopenssl
90 endef
91
92 define Package/erlang-crypto/description
93 $(call Package/erlang/Default/description)
94  .
95  This Erlang/OTP package provides functions for computation of message
96  digests, and encryption and decryption functions.
97 endef
98
99
100 define Package/erlang-hipe
101 $(call Package/erlang/Default)
102   TITLE:=High Performance Erlang
103   VERSION:=3.10.2.1
104   DEPENDS+= +erlang
105 endef
106
107 define Package/erlang-hipe/description
108 $(call Package/erlang/Default/description)
109  .
110  This Erlang/OTP package provides HiPE (High Performance Erlang)
111  support.
112 endef
113
114
115 define Package/erlang-inets
116 $(call Package/erlang/Default)
117   TITLE:=Internet clients and servers
118   VERSION:=5.9.6
119   DEPENDS+= +erlang
120 endef
121
122 define Package/erlang-inets/description
123 $(call Package/erlang/Default/description)
124  .
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.
128 endef
129
130
131 define Package/erlang-mnesia
132 $(call Package/erlang/Default)
133   TITLE:=Distributed database
134   VERSION:=4.10
135   DEPENDS+= +erlang
136 endef
137
138 define Package/erlang-mnesia/description
139 $(call Package/erlang/Default/description)
140  .
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.
145 endef
146
147
148 define Package/erlang-runtime-tools
149 $(call Package/erlang/Default)
150   TITLE:=Low-profile debugging/tracing tools
151   VERSION:=1.8.12
152   DEPENDS+= +erlang
153 endef
154
155 define Package/erlang-runtime-tools/description
156 $(call Package/erlang/Default/description)
157  .
158  This Erlang/OTP package provides low footprint tracing/debugging tools
159  suitable for inclusion in a production system.
160 endef
161
162
163 define Package/erlang-snmp
164 $(call Package/erlang/Default)
165   TITLE:=Simple Network Management Protocol (SNMP) support
166   VERSION:=4.24.2
167   DEPENDS+= +erlang +erlang-asn1
168 endef
169
170 define Package/erlang-snmp/description
171 $(call Package/erlang/Default/description)
172  .
173  This Erlang/OTP package provides Simple Network Management Protocol
174  (SNMP) support including a MIB compiler and tools for creating SNMP
175  agents.
176 endef
177
178
179 define Package/erlang-ssh
180 $(call Package/erlang/Default)
181   TITLE:=Secure Shell (SSH) support
182   VERSION:=2.1.8
183   DEPENDS+= +erlang +erlang-crypto
184 endef
185
186 define Package/erlang-ssh/description
187 $(call Package/erlang/Default/description)
188  .
189  This Erlang/OTP package provides an implementation of the Secure Shell
190  protocol, with SSH & SFTP support.
191 endef
192
193
194 define Package/erlang-ssl
195 $(call Package/erlang/Default)
196   TITLE:=Secure Sockets Layer (SSL) support
197   VERSION:=5.3.1
198   DEPENDS+= +erlang +erlang-crypto
199 endef
200
201 define Package/erlang-ssl/description
202 $(call Package/erlang/Default/description)
203  .
204  This Erlang/OTP package provides support for secure communication over
205  sockets.
206 endef
207
208
209 define Package/erlang-syntax-tools
210 $(call Package/erlang/Default)
211   TITLE:=Abstract Erlang syntax trees handling support
212   VERSION:=1.6.11
213   DEPENDS+= +erlang
214 endef
215
216 define Package/erlang-syntax-tools/description
217 $(call Package/erlang/Default/description)
218  .
219  This Erlang/OTP package provides support for handling abstract Erlang
220  syntax trees.
221 endef
222
223
224 # Host
225
226 HOST_CONFIGURE_ARGS += \
227         --disable-hipe \
228         --disable-smp-support \
229         --without-javac
230
231 define Host/Compile
232         $(MAKE) -C $(HOST_BUILD_DIR) all
233 endef
234
235 define Host/Install
236         $(MAKE) -C $(HOST_BUILD_DIR) install
237 endef
238
239
240 # Target
241
242 CONFIGURE_ARGS += \
243         --disable-hipe \
244         --disable-smp-support \
245         --without-javac \
246         --enable-dynamic-ssl-lib
247
248 CONFIGURE_VARS += \
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)"
255
256 EXTRA_LDFLAGS+=-lz
257
258 define Build/Compile
259         $(MAKE) -C $(PKG_BUILD_DIR) \
260                 noboot
261         $(MAKE) -C $(PKG_BUILD_DIR) \
262                 INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
263                 install
264 endef
265
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/ ; \
270         done
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/ ; \
274         done
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 ; \
280         done
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 ; \
294         done
295 endef
296
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
302 endef
303
304 define BuildModule
305
306   define Package/erlang-$(1)/install
307         $(INSTALL_DIR) $$(1)/usr/lib/erlang/lib
308         for m in $(2); do \
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} ; \
311         done
312   endef
313
314   $$(eval $$(call BuildPackage,erlang-$(1)))
315
316 endef
317
318
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))