pkgsrc/lang/erlang/Makefile
nia 79e25acf2c erlang: Update to 22.1.7
Potential Incompatibilities

    Mnesia: Transactions with sticky locks could with async_asym transactions be committed in the wrong order, since asym transactions are spawned on the remote nodes. To fix this bug the communication protocol between mnesia nodes had to be updated, thus mnesia will no longer be able to connect to nodes earlier than mnesia-4.14 ,first realeased in OTP-19.0.
    Stdlib: Debugging of time-outs in gen_statem has been improved. Starting a time-out is now logged in sys:log and sys:trace. Running time-outs are visible in server crash logs, and with sys:get_status. Due to this system events {start_timer, Action, State} and {insert_timout, Event, State} have been added, which may surprise tools that rely on the format of these events. New features: The EventContent of a running time-out can be updated with {TimeoutType, update, NewEventContent}. Running time-outs can be cancelled with {TimeoutType, cancel} which is more readable than using Time = infinity.{rel, Name, Vsn, RelApps, Opts}.

Highlights

Compiler:

    erlc can now automatically use a compile server to avoid starting an Erlang system for each file to be compiled in a multi-file project. See the documentation for how to enable it.

Standard libraries:

    SSL: Basic support for TLS 1.3 Client for experimental use. For more information see the Standards Compliance chapter of the User's Guide.
    crypto: The Message Authentication Codes (MAC) CMAC, HMAC and Poly1305 are unified into common functions in the New Crypto API. See the manual for CRYPTO. cipher_info/1 functions returns maps with information about the hash or cipher in the argument.
2019-11-18 20:46:01 +00:00

104 lines
2.9 KiB
Makefile

# $NetBSD: Makefile,v 1.97 2019/11/18 20:46:01 nia Exp $
DISTNAME= erlang-${DIST_VERSION_MAJOR}.${DIST_VERSION_MINOR}${!empty(DIST_VERSION_PATCH):?.:}${DIST_VERSION_PATCH}
PKGNAME= ${DISTNAME:S/OTP-/erlang-/}
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GITHUB:=erlang/}
GITHUB_PROJECT= otp
GITHUB_TAG= OTP-${PKGVERSION_NOREV}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.erlang.org/
COMMENT= Concurrent functional programming language
LICENSE= apache-2.0
EXTRACT_USING= bsdtar
WRKSRC= ${WRKDIR}/otp-${GITHUB_TAG}
GNU_CONFIGURE= yes
USE_TOOLS+= autoconf awk gmake perl:run flex
.include "../../mk/bsd.prefs.mk"
.if !empty(MACHINE_ARCH:M*armv6*) || !empty(MACHINE_ARCH:M*armv7*)
MAKE_FLAGS+= ARCH=arm
.endif
USE_GNU_CONFIGURE_HOST= ${USE_CROSS_COMPILE}
OVERRIDE_DIRDEPTH= 4
CONFIGURE_ARGS+= --with-ssl=${BUILDLINK_PREFIX.openssl}
PTHREAD_OPTS+= require native
CONFIGURE_ARGS+= --enable-threads
MAKE_ENV+= DESTDIR=${DESTDIR}
do-configure-post-hook: replace-interpreter
REPLACE_INTERPRETER+= escript
REPLACE.escript.old= .*escript
REPLACE.escript.new= ${PREFIX}/bin/escript
REPLACE_FILES.escript= \
lib/diameter/bin/diameterc \
lib/erl_docgen/priv/bin/codeline_preprocessing.escript \
lib/erl_docgen/priv/bin/xml_from_edoc.escript \
lib/reltool/examples/display_args \
lib/reltool/examples/mnesia_core_dump_viewer \
lib/snmp/bin/snmpc \
lib/snmp/src/compile/snmpc.src
SUBST_CLASSES+= target
SUBST_STAGE.target= pre-configure
SUBST_FILES.target= make/target.mk
SUBST_SED.target= -e "s|=.*config.guess)|= ${MACHINE_GNU_PLATFORM}|"
SUBST_MESSAGE.target= Fixing target name.
TEST_TARGET= tests
TEST_MAKE_FLAGS= ERL_TOP=${WRKSRC}
REPLACE_PERL+= make/make_emakefile
SMF_NAME= epmd
CONFIGURE_ARGS.DragonFly+= --disable-sctp
###
### XXX There may be others here.
###
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "OpenBSD" || ${OPSYS} == "Darwin"
CONFIGURE_ARGS+= --enable-kernel-poll
.endif
CHECK_RELRO_SKIP+= lib/erlang/lib/megaco-${VERSION.megaco}/priv/lib/megaco_flex_scanner_drv.so
CHECK_RELRO_SKIP+= lib/erlang/lib/megaco-${VERSION.megaco}/priv/lib/megaco_flex_scanner_drv_mt.so
.include "options.mk"
pre-configure:
cd ${WRKSRC} && ./otp_build autoconf
###
### Ensure this gets rebuilt.
###
pre-build:
${RUN} ${RM} -f ${WRKSRC}/lib/stdlib/ebin/dets_v9.beam
###
### Generate a list of module versions.
###
.PHONY: versions
versions: do-extract
@${ECHO} "# \$$NetBSD\$$" > ${.CURDIR}/versions.mk
@${ECHO} "# Do not edit, regenerate using 'make versions'" >> ${.CURDIR}/versions.mk
${AWK} -F: '/OTP-${PKGVERSION_NOREV} :/{print $$2}' ${WRKSRC}/otp_versions.table |\
${SED} -e 's/# //g' -e 's/-/ /g' -e 's,^ ,_VERSIONS= ,' >> ${.CURDIR}/versions.mk
post-install:
chmod -R go-w ${DESTDIR}${PREFIX}/lib/erlang/lib
.include "Makefile.versions"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/termcap.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"