Changeset View
Changeset View
Standalone View
Standalone View
head/lang/mono6.8/Makefile
# Created by: Yukihiro Nakai <nakai@FreeBSD.org> | # Created by: Yukihiro Nakai <nakai@FreeBSD.org> | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
PORTNAME= mono | PORTNAME= mono | ||||
PORTVERSION= 5.10.1.57 | PORTVERSION= 6.8.0.123 | ||||
PORTREVISION= 3 | |||||
CATEGORIES= lang | CATEGORIES= lang | ||||
MASTER_SITES= https://download.mono-project.com/sources/mono/ | MASTER_SITES= https://download.mono-project.com/sources/mono/ | ||||
DISTFILES= ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} | DISTFILES= ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} | ||||
MAINTAINER= mono@FreeBSD.org | MAINTAINER= linimon@FreeBSD.org | ||||
COMMENT= Open source implementation of .NET Development Framework | COMMENT= Open source implementation of .NET Development Framework | ||||
LICENSE= MIT | LICENSE= MIT | ||||
LICENSE_FILE= ${WRKSRC}/LICENSE | LICENSE_FILE= ${WRKSRC}/LICENSE | ||||
ONLY_FOR_ARCHS= amd64 armv6 armv7 i386 powerpc | NOT_FOR_ARCHS= riscv64 riscv64sf sparc64 | ||||
BUILD_DEPENDS= p5-XML-Parser>=0:textproc/p5-XML-Parser \ | BUILD_DEPENDS= p5-XML-Parser>=0:textproc/p5-XML-Parser \ | ||||
bash:shells/bash \ | bash:shells/bash \ | ||||
cmake>0:devel/cmake | cmake>0:devel/cmake | ||||
LIB_DEPENDS= libinotify.so:devel/libinotify | LIB_DEPENDS= libinotify.so:devel/libinotify | ||||
RUN_DEPENDS= ${PY_PILLOW} \ | RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pillow>=0:graphics/py-pillow@${PY_FLAVOR} \ | ||||
ca_root_nss>=0:security/ca_root_nss | ca_root_nss>=0:security/ca_root_nss \ | ||||
sqlite3>0:databases/sqlite3 \ | |||||
zip>=0:archivers/zip | |||||
CONFLICTS_INSTALL= czmq-3* | CONFLICTS_INSTALL= czmq-3* | ||||
OPTIONS_DEFINE= MONOLITE NLS X11 | |||||
OPTIONS_DEFAULT= MONOLITE X11 | |||||
OPTIONS_SUB= yes | |||||
MONOLITE_DESC= Use monolite to bootstrap mcs (otherwise use installed mcs) | |||||
MONOLITE_DISTFILES= monolite-linux-${MONOLITE_VERSION}-latest.tar.gz:monolite | |||||
MONOLITE_MASTER_SITES= http://download.mono-project.com/monolite/:monolite | |||||
MONOLITE_VERSION= 1051000004 | |||||
NLS_CONFIGURE_OFF= --disable-nls | |||||
NLS_USES= gettext | |||||
X11_USES= display:test | |||||
USES= autoreconf bison compiler:c11 cpe gmake iconv libtool \ | USES= autoreconf bison compiler:c11 cpe gmake iconv libtool \ | ||||
pathfix perl5 python shebangfix tar:bzip2 | pathfix perl5 python:3.6+ shebangfix tar:xz | ||||
USE_PERL5= build | USE_PERL5= build | ||||
CONFIGURE_SCRIPT= autogen.sh | |||||
GNU_CONFIGURE= yes | GNU_CONFIGURE= yes | ||||
USE_LDCONFIG= yes | USE_LDCONFIG= yes | ||||
SHEBANG_FILES= scripts/mono-heapviz mono/mini/genmdesc.py mono/tests/test_lldb.py | |||||
SHEBANG_FILES= scripts/mono-package-runtime scripts/mono-heapviz mono/mini/genmdesc.py \ | |||||
mono/tests/test_lldb.py mono/tests/gc-descriptors/gen-descriptor-tests.py \ | |||||
scripts/mono-find-provides.in scripts/mono-find-requires.in | |||||
BINARY_ALIAS= python=${PYTHON_CMD} | BINARY_ALIAS= python=${PYTHON_CMD} | ||||
CONFIGURE_ARGS= --disable-dtrace --enable-btls | CONFIGURE_ARGS_aarch64= --with-csc=mcs | ||||
CONFIGURE_ENV= ac_cv_header_sys_inotify_h=no | CONFIGURE_ARGS= ${CONFIGURE_ARGS_${ARCH}} --disable-dtrace | ||||
# Do not remove - this is needed to work around automake's lack of hinting | |||||
CONFIGURE_ENV+= ac_cv_header_sys_inotify_h=yes | |||||
MAKE_ENV= MONO_SHARED_DIR="${WRKDIR}" \ | MAKE_ENV= MONO_SHARED_DIR="${WRKDIR}" \ | ||||
INSTALL_STRIP_FLAG="${STRIP}" \ | INSTALL_STRIP_FLAG="${STRIP}" | ||||
TZ=UTC | |||||
TEST_ARGS= -k | TEST_ARGS= -k | ||||
TEST_TARGET= check | TEST_TARGET= check | ||||
PORTSCOUT= limit:^\d+\.\d+\.[1-9]\d* | PORTSCOUT= limit:^\d+\.\d+\.[1-9]\d* | ||||
LOCALBASE?= /usr/local | # XXX MCL mat says: no. Options must not change themselves depending on what is installed. | ||||
.if !exists(${LOCALBASE}/bin/mcs) | # XXX MCL just leave this out for now to try to get *something* done. | ||||
OPTIONS_SLAVE= MONOLITE | # .if !exists(${LOCALBASE}/bin/mcs) | ||||
# OPTIONS_SLAVE= MONOLITE | |||||
# .endif | |||||
# intentionally sorted alpha, then SPECTRE and MONODEV at the end | |||||
# because they have performance and security implications | |||||
OPTIONS_DEFINE= BIGARRAY MONOLITE NINJA NLS ODBC X11 SPECTRE MONODEV | |||||
OPTIONS_DEFAULT= MONOLITE NLS X11 | |||||
OPTIONS_SUB= yes | |||||
BIGARRAY_DESC= Enable allocating arrays greater than Int32.MaxValue | |||||
BIGARRAY_CONFIGURE_ENABLE= big-arrays | |||||
MONOLITE_DESC= Use monolite to bootstrap mcs (otherwise use installed mcs) | |||||
MONOLITE_DISTFILES= monolite-linux-${MONOLITE_VERSION}-latest.tar.gz:monolite | |||||
MONOLITE_MASTER_SITES= http://download.mono-project.com/monolite/:monolite | |||||
# DO NOT ALTER OR REMOVE. DANGER, CASE-SENSITIVE! | |||||
# monolite 2020-01-13 @ 1798d23b | |||||
MONOLITE_VERSION= 1798d23b-3dbc-4161-b3f4-6bb00134ee4e | |||||
MONODEV_DESC= Build for Mono development (disables crash privacy) | |||||
MONODEV_CONFIGURE_ON= --enable-icall-symbol-map --enable-icall-export --with-crash_privacy=no | |||||
NINJA_DESC= Use ninja to build wherever possible | |||||
NINJA_CONFIGURE_ON= ninja | |||||
NINJA_BUILD_DEPENDS= ninja>0:devel/ninja | |||||
NLS_DESC= NLS Localization Support | |||||
NLS_CONFIGURE_OFF= --disable-nls | |||||
NLS_USES= gettext | |||||
ODBC_DESC= System.Data: support for unixODBC | |||||
ODBC_BUILD_DEPENDS= unixODBC>0:databases/unixODBC | |||||
ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC | |||||
SPECTRE_DESC= Enable internal Mono Spectre mitigations (SEE pkg-descr) | |||||
SPECTRE_CONFIGURE_ON= --with-spectre-mitigation=yes | |||||
X11_USES= display:test | |||||
X11_CONFIGURE_WITH= x | |||||
X11_RUN_DEPENDS= pango>0:x11-toolkits/pango \ | |||||
libgdiplus>0:x11-toolkits/libgdiplus | |||||
.include <bsd.port.pre.mk> | |||||
.if defined(QEMU_EMULATING) && "${QEMU_EMULATING}" == "1" | |||||
BROKEN= fails to build under qemu: Roslyn requires more functional POSIX implementation | |||||
.endif | .endif | ||||
post-extract-MONOLITE-on: | .if ${ARCH:Mpowerpc*} | ||||
${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux | PLIST+= ${.CURDIR}/pkg-plist.powerpc | ||||
${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION} | .endif | ||||
post-patch: | post-patch: | ||||
${REINPLACE_CMD} -e 's|^#!/bin/bash|#!/usr/bin/env bash|g' \ | # Needed to force regeneration due to tarball packaging | ||||
${WRKSRC}/scripts/mono-find-provides.in \ | ${RM} ${WRKSRC}/configure ${WRKSRC}/Makefile \ | ||||
${WRKSRC}/scripts/mono-find-requires.in \ | ${WRKSRC}/mono/Makefile \ | ||||
${WRKSRC}/scripts/mono-test-install | ${WRKSRC}/mono/native/Makefile | ||||
${FIND} ${WRKSRC} -name '*.sh' | ${XARGS} ${REINPLACE_CMD} \ | |||||
-e 's|^#!/bin/bash|#!/bin/sh|g' | |||||
${SED} 's/tarball/${PORTVERSION}/' ${WRKSRC}/mono/mini/Makefile.am.in \ | |||||
> ${WRKSRC}/mono/mini/Makefile.am | |||||
${REINPLACE_CMD} -e 's|/usr/share|${PREFIX}|g' \ | |||||
${WRKSRC}/mcs/class/corlib/System/Environment.cs \ | |||||
${WRKSRC}/external/corefx/src/System.Runtime.Extensions/src/System/Environment.Unix.cs | |||||
${REINPLACE_CMD} -e 's|/usr/share/.mono|${PREFIX}/share/mono|g' \ | |||||
${WRKSRC}/man/mono-configuration-crypto.1 \ | |||||
${WRKSRC}/man/mono.1 \ | |||||
${WRKSRC}/man/mozroots.1 | |||||
post-configure: | |||||
${REINPLACE_CMD} -e 's|share\/man|man|g' \ | |||||
${WRKSRC}/mcs/jay/Makefile | |||||
post-install: | post-install: | ||||
${MKDIR} ${STAGEDIR}${PREFIX}/mono | ${MKDIR} ${STAGEDIR}${PREFIX}/mono | ||||
.include <bsd.port.mk> | .include <bsd.port.post.mk> |