summaryrefslogtreecommitdiff
path: root/lang/erlang/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'lang/erlang/Makefile')
-rw-r--r--lang/erlang/Makefile98
1 files changed, 91 insertions, 7 deletions
diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile
index 6aa8e8430d0c..ba3ec7deea80 100644
--- a/lang/erlang/Makefile
+++ b/lang/erlang/Makefile
@@ -7,6 +7,7 @@
PORTNAME= erlang
PORTVERSION= 7.1.0
+PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= ftp://ftp.erlang.org/pub/download/ \
http://www.erlang.org/download/ \
@@ -41,6 +42,15 @@ USE_GMAKE= yes
USE_PERL5= yes
GNU_CONFIGURE= yes
+# UPDATED_PACKAGES is the list of updated packages which documentation must
+# be pulled in from the docs tarball. "erts" lives in the erlang root
+# directory and should never be prefixed by lib/. See below for Java related
+# packages.
+
+UPDATED_PACKAGES= erts lib/compiler lib/erl_interface \
+ lib/kernel lib/mnesia lib/sasl \
+ lib/snmp lib/stdlib
+
.if !defined(WITHOUT_JAVA)
# The Java applications that are part of the Erlang distribution are
# not strictly necessary - it is included for completeness sake. A
@@ -50,6 +60,9 @@ GNU_CONFIGURE= yes
# this is the case (that I could think of at least) was to make sure
# JAVABINDIR is added to the PATH, using the *_ENV macros.
+# The following UPDATED_PACKAGES depend on java.
+UPDATED_PACKAGES+= lib/jinterface
+
# Set JAVABINDIR to where you have javac, if different from below
JAVABINDIR?= ${LOCALBASE}/jdk1.2.2/bin
JAVAPORT?= ${JAVABINDIR}/javac:${PORTSDIR}/java/jdk12-beta
@@ -72,22 +85,57 @@ PLIST_SUB+= WITHOUT_JAVA=""
PLIST_SUB+= WITHOUT_JAVA="@comment "
.endif
-# If X11 is not used, skip gs and etk applications
+# If X11 is not used, skip gs and etk applications.
pre-build:
.if defined(WITHOUT_X11)
${ECHO} "WITHOUT_X11 defined" > ${WRKSRC}/lib/gs/SKIP
${ECHO} "WITHOUT_X11 defined" > ${WRKSRC}/lib/etk/SKIP
.endif
+# Check if javac is really in ${JAVABINDIR}.
+pre-configure:
+.if !defined(WITHOUT_JAVA)
+ if [ ! -x ${JAVABINDIR}/javac ]; then \
+ ${ECHO_MSG} ">> Error: cannot find javac in JAVABINDIR."; \
+ ${ECHO_MSG} ">> Please configure JAVABINDIR, or use the WITHOUT_JAVA option"; \
+ exit 1; \
+ fi
+.endif
+
# Install documentation. (HTML docs need to be in same dir as the
# rest, not in share/doc/erlang as it should, because of relative
# links in the documentation.
post-install:
- tar --unlink -xzpf ${DISTDIR}/${DIST_SUBDIR}/${ERLANG_MAN} \
+ @${TAR} --unlink -xzpf ${DISTDIR}/${DIST_SUBDIR}/${ERLANG_MAN} \
-C ${PREFIX}/lib/erlang
.if !defined(NOPORTDOCS)
- tar --unlink -xzpf ${DISTDIR}/${DIST_SUBDIR}/${ERLANG_DOCS} \
+ @${TAR} --unlink -xzpf ${DISTDIR}/${DIST_SUBDIR}/${ERLANG_DOCS} \
-C ${PREFIX}/lib/erlang
+ @${RM} -rf ${PREFIX}/lib/erlang/man/cat?
+
+ @for erlang_package in ${UPDATED_PACKAGES}; do \
+ epkg_pathname=${PREFIX}/lib/erlang/$${erlang_package}; \
+ epkg_dirname=`dirname $${epkg_pathname}`; \
+ epkg_basename=`basename $${epkg_pathname}`; \
+ doc_release=`ls $${epkg_dirname}/ \
+ | ${GREP} $${epkg_basename}- | ${SED} -e "2d"`; \
+ app_release=`ls $${epkg_dirname}/ \
+ | ${GREP} $${epkg_basename}- | ${SED} -e "1d"`; \
+ if [ -z "$${doc_release}" -o -z "$${app_release}" ]; then \
+ ${ECHO_MSG} ">> Error: post-install target failed to merge documentation"; \
+ exit 1; \
+ fi; \
+ ( \
+ ${ECHO_MSG} ">> Documentation merge: $${doc_release} -> $${app_release}"; \
+ ${PERL} -pi -e "s/$${doc_release}/$${app_release}/g;" \
+ ${PREFIX}/lib/erlang/doc/index.html; \
+ ${CP} -R $${epkg_dirname}/$${app_release}/* \
+ $${epkg_dirname}/$${doc_release}/; \
+ ${RM} -rf $${epkg_dirname}/$${app_release}; \
+ ${MV} $${epkg_dirname}/$${doc_release} \
+ $${epkg_dirname}/$${app_release} \
+ ); \
+ done
.endif
sslapp=`ls -d ${PREFIX}/lib/erlang/lib/ssl-* | tail -1`; \
cd $$sslapp/priv/obj && ${MAKE} && strip ../bin/ssl_esock
@@ -98,11 +146,14 @@ post-install:
# using the man format than actual system man pages. (The erl.1 and
# epmd.1 perhaps being the exception).
+NOMANCOMPRESS= yes
+
MAN1PREFIX= ${PREFIX}/lib/erlang
-MAN_MAN1= epmd.1 erl.1 erl_call.1 erlc.1 erlsrv.1 start_erl.1 werl.1
+MAN1= epmd.1 erl.1 erl_call.1 erlc.1 erlsrv.1 start_erl.1 \
+ werl.1 run_erl.1 start.1
MAN3PREFIX= ${PREFIX}/lib/erlang
-MAN_MAN3= CORBA_Environment_alloc.3 CosEventChannelAdmin.3 \
+MAN3= CORBA_Environment_alloc.3 CosEventChannelAdmin.3 \
CosEventChannelAdmin_ConsumerAdmin.3 \
CosEventChannelAdmin_EventChannel.3 \
CosEventChannelAdmin_ProxyPullConsumer.3 \
@@ -116,8 +167,41 @@ MAN_MAN3= CORBA_Environment_alloc.3 CosEventChannelAdmin.3 \
CosTransactions_Resource.3 \
CosTransactions_SubtransactionAwareResource.3 \
CosTransactions_Terminator.3 \
+ CosNaming_NamingContextExt.3 \
+ cosTime.3 CosTime_TIO.3 CosTime_TimeService.3 CosTime_UTO.3 \
+ CosTimerEvent_TimerEventHandler.3 \
+ CosTimerEvent_TimerEventService.3 \
+ cosNotificationApp.3 \
+ CosNotifyChannelAdmin_EventChannelFactory.3 \
+ CosNotifyChannelAdmin_EventChannel.3 \
+ CosNotification_QoSAdmin.3 \
+ CosNotification_AdminPropertiesAdmin.3 \
+ CosNotifyChannelAdmin_ConsumerAdmin.3 \
+ CosNotifyChannelAdmin_SupplierAdmin.3 \
+ CosNotifyComm_NotifyPublish.3 \
+ CosNotifyComm_NotifySubscribe.3 \
+ CosNotifyFilter_FilterAdmin.3 \
+ CosNotifyFilter_FilterFactory.3 \
+ CosNotifyFilter_Filter.3 \
+ CosNotifyFilter_MappingFilter.3 \
+ CosNotifyChannelAdmin_ProxyConsumer.3 \
+ CosNotifyChannelAdmin_ProxySupplier.3 \
+ CosNotifyChannelAdmin_ProxyPullConsumer.3 \
+ CosNotifyChannelAdmin_ProxyPullSupplier.3 \
+ CosNotifyChannelAdmin_ProxyPushConsumer.3 \
+ CosNotifyChannelAdmin_ProxyPushSupplier.3 \
+ CosNotifyChannelAdmin_SequenceProxyPullConsumer.3 \
+ CosNotifyChannelAdmin_SequenceProxyPullSupplier.3 \
+ CosNotifyChannelAdmin_SequenceProxyPushConsumer.3 \
+ CosNotifyChannelAdmin_SequenceProxyPushSupplier.3 \
+ CosNotifyChannelAdmin_StructuredProxyPullConsumer.3 \
+ CosNotifyChannelAdmin_StructuredProxyPullSupplier.3 \
+ CosNotifyChannelAdmin_StructuredProxyPushConsumer.3 \
+ CosNotifyChannelAdmin_StructuredProxyPushSupplier.3 \
CosTransactions_TransactionFactory.3 Module_Interface.3 \
OrberEventChannel.3 OrberEventChannel_EventChannelFactory.3 \
+ beam_lib.3 digraph_utils.3 orddict.3 sets.3 win32reg.3 \
+ comet.3 erl_com.3 \
alarm_handler.3 any.3 application.3 appmon.3 asn1ct.3 \
asn1rt.3 auth.3 c.3 calendar.3 coast.3 code.3 compile.3 \
corba.3 corba_object.3 cosTransactions.3 cpu_sup.3 crypto.3 \
@@ -154,10 +238,10 @@ MAN_MAN3= CORBA_Environment_alloc.3 CosEventChannelAdmin.3 \
xref.3 yecc.3
MAN4PREFIX= ${PREFIX}/lib/erlang
-MAN_MAN4= app.4 appup.4 config.4 rel.4 relup.4 script.4
+MAN4= app.4 appup.4 config.4 rel.4 relup.4 script.4
MAN6PREFIX= ${PREFIX}/lib/erlang
-MAN_MAN6= crypto.6 eva.6 inets.6 kernel.6 mesh.6 runtime_tools.6 \
+MAN6= crypto.6 eva.6 inets.6 kernel.6 mesh.6 runtime_tools.6 \
sasl.6 snmp.6 ssl.6
.include <bsd.port.mk>