Update lang/erlang-java to version 18.3.3
[dports.git] / lang / erlang-runtime17 / Makefile
1 # Created by: ruslan@shevchenko.kiev.ua
2 # $FreeBSD$
3
4 PORTNAME=       erlang
5 PORTVERSION=    17.5.6.9
6 PORTREVISION=   2
7 CATEGORIES=     lang parallel java
8 MASTER_SITES=   http://www.erlang.org/download/:erlangorg               \
9                 http://erlang.stacken.kth.se/download/:erlangorg        \
10                 http://www.csd.uu.se/ftp/mirror/erlang/download/:erlangorg
11 PKGNAMESUFFIX=  -runtime17
12 DISTNAME=       otp_src_${ERL_RELEASE}
13 DISTFILES=      ${DISTNAME}${EXTRACT_SUFX}:erlangorg    \
14                 ${ERLANG_MAN}:erlangorg
15 DIST_SUBDIR=    erlang
16 EXTRACT_ONLY=   ${DISTNAME}${EXTRACT_SUFX}
17
18 PATCH_SITES=    http://olgeni.olgeni.com/~olgeni/distfiles/ \
19                 LOCAL/olgeni
20 PATCHFILES=     patch-otp-17.5.1 patch-otp-17.5.2 patch-otp-17.5.3 \
21                 patch-otp-17.5.4 patch-otp-17.5.5 patch-otp-17.5.6 \
22                 patch-otp-17.5.6.1 patch-otp-17.5.6.2 patch-otp-17.5.6.3 \
23                 patch-otp-17.5.6.4 patch-otp-17.5.6.5 patch-otp-17.5.6.6 \
24                 patch-otp-17.5.6.7 patch-otp-17.5.6.8 patch-otp-17.5.6.9
25
26 MAINTAINER=     olgeni@FreeBSD.org
27 COMMENT=        Functional programming language from Ericsson
28
29 WRKSRC=         ${WRKDIR}/otp_src_${ERL_RELEASE}
30
31 ERLANG_LIB=     ${PORTNAME}${PORTVERSION:C/\..*//}
32
33 SUB_FILES=      pkg-message
34 SUB_LIST=       ERLANG_LIB=${ERLANG_LIB}
35
36 MAKE_JOBS_UNSAFE=yes
37
38 OPTIONS_DEFINE= DOCS DTRACE GCC GS HIPE JAVA KQUEUE ODBC OPENSSL SCTP SMP THREADS WX DIRTY
39
40 DIRTY_DESC=     Enable Dirty schedulers (experimental)
41 DTRACE_DESC=    Enable DTrace support
42 GS_DESC=        Enable GS application (deprecated)
43 HIPE_DESC=      Build native HiPE compiler
44 KQUEUE_DESC=    Enable Kernel Poll (kqueue) support
45 SCTP_DESC=      Enable SCTP support
46 SMP_DESC=       Enable SMP support
47 WX_DESC=        Enable WX application
48
49 OPTIONS_DEFAULT=KQUEUE OPENSSL SCTP SMP THREADS
50 OPTIONS_EXCLUDE_DragonFly=      HIPE SCTP
51
52 ERL_RELEASE=    17.5
53
54 USES=           gmake ncurses perl5
55 USE_PERL5=      build
56 GNU_CONFIGURE=  yes
57 LDFLAGS+=       -L${LOCALBASE}/lib
58
59 .include <bsd.port.options.mk>
60
61 .if ${PORT_OPTIONS:MDOCS}
62 DISTFILES+=     ${ERLANG_DOCS}:erlangorg
63 .endif
64
65 # See http://wiki.freebsd.org/DTrace to learn how to enable DTrace
66 # on your system. You will need to configure STRIP, WITH_CTF and
67 # CFLAGS in your make.conf before building.
68
69 # If you run Erlang and get a message resembling "WARNING: number of
70 # probes fixed does not match the number of defined probes (54 != 132,
71 # respectively)" you probably misconfigured DTrace in some way.
72
73 .if ${OSVERSION} < 1000000
74 .if ${ARCH} == "x86_64" && ${PORT_OPTIONS:MDTRACE} && ! ${PORT_OPTIONS:MGCC}
75 IGNORE=         support for DTrace on amd64 requires GCC option
76 .endif
77 .endif
78
79 .if ${PORT_OPTIONS:MGCC}
80 USE_GCC?=       yes
81 .endif
82
83 .if ${PORT_OPTIONS:MDTRACE}
84 CONFIGURE_ARGS+=--with-dynamic-trace=dtrace
85 .else
86 CONFIGURE_ARGS+=--without-dynamic-trace
87 .endif
88
89 .if ${PORT_OPTIONS:MOPENSSL}
90 USE_OPENSSL=    yes
91 CONFIGURE_ARGS+=--with-ssl=${OPENSSLBASE}
92 .else
93 CONFIGURE_ARGS+=--without-ssl
94 .endif
95
96 .if ${PORT_OPTIONS:MJAVA}
97 USE_JAVA=       yes
98 CONFIGURE_ARGS+=--with-javac
99 CONFIGURE_ENV+= ac_cv_prog_JAVAC="${JAVAC}"
100 .else
101 CONFIGURE_ARGS+=--without-javac
102 .endif
103
104 .if ${PORT_OPTIONS:MHIPE}
105 CONFIGURE_ARGS+=--enable-hipe
106 .else
107 CONFIGURE_ARGS+=--disable-hipe
108 .endif
109
110 .if ${PORT_OPTIONS:MKQUEUE}
111 CONFIGURE_ARGS+=--enable-kernel-poll
112 .else
113 CONFIGURE_ARGS+=--disable-kernel-poll
114 .endif
115
116 .if ${PORT_OPTIONS:MGS}
117 USES+=          tk:run
118 .endif
119
120 .if ${PORT_OPTIONS:MWX}
121 USE_WX=         2.8+
122 WX_COMPS=       wx contrib
123 WX_UNICODE=     yes
124 CONFIGURE_ARGS+=--with-wx-config=${WX_CONFIG}
125 .endif
126
127 .if ${PORT_OPTIONS:MODBC}
128 CONFIGURE_ARGS+=--with-odbc
129 LIB_DEPENDS+=   libodbc.so:databases/unixODBC
130 .else
131 CONFIGURE_ARGS+=--without-odbc
132 .endif
133
134 ERLANG_MAN=     otp_doc_man_${ERL_RELEASE}.tar.gz
135 ERLANG_DOCS=    otp_doc_html_${ERL_RELEASE}.tar.gz
136
137 .if ${PORT_OPTIONS:MTHREADS}
138 CONFIGURE_ARGS+=--enable-threads
139 .else
140 CONFIGURE_ARGS+=--disable-threads
141 .endif
142
143 .if ${PORT_OPTIONS:MSCTP}
144 CONFIGURE_ARGS+=--enable-sctp
145 .else
146 CONFIGURE_ARGS+=--disable-sctp
147 .endif
148
149 # enabling --enable-smp-support crashes the OS when
150 # net_kernel:start([node_name, shortnames]) invoked repeatedly
151 # TODO verify if it still applies
152
153 .if ${PORT_OPTIONS:MSMP}
154 CONFIGURE_ARGS+=--enable-smp-support
155 .else
156 CONFIGURE_ARGS+=--disable-smp-support
157 .endif
158
159 .if ${PORT_OPTIONS:MDIRTY}
160 CONFIGURE_ARGS+=--enable-dirty-schedulers
161 .endif
162
163 .if ${ARCH} == i386
164 MAKE_ARGS+=     ARCH=x86
165 .endif
166
167 .if ${ARCH} == armv6
168 MAKE_ARGS+=     ARCH=arm
169 .endif
170
171 # The man-pages are put (in spite of FreeBSD's port convention) in a private
172 # subdir. This is to avoid cluttering up the man page name space. Also the
173 # Erlang man pages are more of internal documentation using the man format than
174 # actual system man pages. (erl.1 and epmd.1 perhaps being the exception).
175
176 # Install documentation. (HTML docs need to be in same dir as the
177 # rest, not in share/doc/erlang as it should, because of relative
178 # links in the documentation.
179
180 pre-configure:
181 .if ${PORT_OPTIONS:MDTRACE}
182         @if ! /sbin/kldstat | ${GREP} dtraceall >/dev/null 2>&1; then \
183                 ${ECHO_CMD}; \
184                 ${ECHO_CMD} "DTRACE option requires kernel module \"dtraceall\" to be loaded."; \
185                 ${ECHO_CMD}; \
186                 exit 1; \
187         fi
188 .endif
189 .if ! ${PORT_OPTIONS:MWX}
190         echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP
191 .endif
192
193 post-configure:
194 .if ${PORT_OPTIONS:MODBC}
195         ${RM} ${WRKSRC}/lib/odbc/SKIP
196 .endif
197
198 post-install:
199         for SECTION in 1 3 4 6 7; do \
200                 ${TAR} --unlink -xzpf ${DISTDIR}/${DIST_SUBDIR}/${ERLANG_MAN} \
201                         -C ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB} \
202                         "man/man$${SECTION}/*.$${SECTION}" || ${TRUE}; \
203         done
204         ${RM} -rf ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/man/cat?
205 .if ${PORT_OPTIONS:MDOCS}
206         ${TAR} --unlink -xzpf ${DISTDIR}/${DIST_SUBDIR}/${ERLANG_DOCS} \
207                 -C ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}
208
209         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/erts-6.4/* \
210                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/erts-6.4.1.6
211         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/erts-6.4
212
213         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/inets-5.10.6/* \
214                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/inets-5.10.9
215         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/inets-5.10.6
216
217         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/ssh-3.2/* \
218                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/ssh-3.2.4
219         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/ssh-3.2
220
221         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/common_test-1.10/* \
222                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/common_test-1.10.1
223         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/common_test-1.10
224
225         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/diameter-1.9/* \
226                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/diameter-1.9.2.4
227         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/diameter-1.9
228
229         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/debugger-4.0.3/* \
230                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/debugger-4.0.3.1
231         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/debugger-4.0.3
232
233         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/snmp-5.1.1/* \
234                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/snmp-5.1.2
235         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/snmp-5.1.1
236
237         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/test_server-3.8/* \
238                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/test_server-3.8.1
239         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/test_server-3.8
240
241         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/ssl-6.0/* \
242                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/ssl-6.0.1.2
243         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/ssl-6.0
244
245         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/runtime_tools-1.8.16/* \
246                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/runtime_tools-1.8.16.1
247         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/runtime_tools-1.8.16
248
249         ${MV} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/kernel-3.2/* \
250                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/kernel-3.2.0.1
251         ${RMDIR} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/kernel-3.2
252
253         ${INSTALL_DATA} ${WRKSRC}/lib/dialyzer/doc/*.txt \
254                 ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/lib/dialyzer-*/doc/
255 .endif
256 .if ! ${PORT_OPTIONS:MGS}
257         ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/gs-*
258 .endif
259 .if ! ${PORT_OPTIONS:MJAVA}
260         ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-*
261 .endif
262 .if ! ${PORT_OPTIONS:MODBC}
263         ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-*
264 .endif
265 .if ! ${PORT_OPTIONS:MOPENSSL}
266         ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-*
267         ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-*
268         ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-*
269 .endif
270 .if ! ${PORT_OPTIONS:MWX}
271         ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-*
272 .endif
273         ${FIND} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/* -type d -empty -delete
274
275         @cd ${STAGEDIR}${PREFIX}; ${FIND} lib/${ERLANG_LIB}/* -type f -o -type l \
276                 | ${SORT} \
277                 >> ${TMPPLIST}
278
279 .include <bsd.port.mk>