Changeset View
Changeset View
Standalone View
Standalone View
lang/mono/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 | # BRANCH: 2020-02 | ||||
PORTREVISION= 3 | PORTVERSION= 6.8.0.105 | ||||
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= mono@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 | .if defined(QEMU_EMULATING) && "${QEMU_EMULATING}" == "1" | ||||
BROKEN= fails to build under qemu: Roslyn requires more functional POSIX implementation | |||||
.endif | |||||
ONLY_FOR_ARCHS= aarch64 amd64 powerpc64 | |||||
mikael: Just list the available arch:
ONLY_FOR_ARCHS= aach64 amd64 powerpc64 (maybe i386) | |||||
# Do not permit ccache use due to observed poor invalidation behavior | |||||
NO_CCACHE= yes | |||||
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 | |||||
Not Done Inline Actionsextra space at EOL? mikael: extra space at EOL? | |||||
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 --disable-boehm | ||||
# 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 | |||||
.if !exists(${LOCALBASE}/bin/mcs) | .if !exists(${LOCALBASE}/bin/mcs) | ||||
OPTIONS_SLAVE= MONOLITE | OPTIONS_SLAVE= MONOLITE | ||||
.endif | .endif | ||||
post-extract-MONOLITE-on: | MONOLITE_DESC= Use monolite to bootstrap mcs (otherwise use installed mcs) | ||||
${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux | MONOLITE_DISTFILES= monolite-linux-${MONOLITE_VERSION}-latest.tar.gz:monolite | ||||
${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION} | MONOLITE_MASTER_SITES= http://download.mono-project.com/monolite/:monolite | ||||
# 2020-01-13 @ 1798d23b | |||||
MONOLITE_VERSION= 1798d23b-3dbc-4161-b3f4-6bb00134ee4e | |||||
post-patch: | OPTIONS_DEFINE= MONOLITE BIGARRAY NINJA NLS ODBC SPECTRE X11 MONODEV | ||||
${REINPLACE_CMD} -e 's|^#!/bin/bash|#!/usr/bin/env bash|g' \ | OPTIONS_DEFAULT= MONOLITE NLS X11 | ||||
${WRKSRC}/scripts/mono-find-provides.in \ | OPTIONS_SUB= yes | ||||
${WRKSRC}/scripts/mono-find-requires.in \ | |||||
${WRKSRC}/scripts/mono-test-install | |||||
${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: | .include <bsd.port.options.mk> | ||||
${REINPLACE_CMD} -e 's|share\/man|man|g' \ | |||||
${WRKSRC}/mcs/jay/Makefile | |||||
BIGARRAY_DESC= Enable allocating arrays greater than Int32.MaxValue | |||||
BIGARRAY_CONFIGURE_ENABLE= big-arrays | |||||
MONODEV_DESC= Build for Mono development (disables crash privacy) | |||||
.if ${PORT_OPTIONS:MMONODEV} | |||||
CONFIGURE_ARGS+=--enable-icall-symbol-map --enable-icall-export --with-crash_privacy=no | |||||
.endif | |||||
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 | |||||
.if ${PORT_OPTIONS:MSPECTRE} | |||||
CONFIGURE_ARGS+=--with-spectre-mitigation=yes | |||||
.endif | |||||
X11_USES= display:test | |||||
X11_CONFIGURE_WITH= x | |||||
X11_RUN_DEPENDS= pango>0:x11-toolkits/pango \ | |||||
libgdiplus>0:x11-toolkits/libgdiplus | |||||
post-patch: | |||||
# Needed to force regeneration due to tarball packaging | |||||
${RM} ${WRKSRC}/configure ${WRKSRC}/Makefile \ | |||||
${WRKSRC}/mono/Makefile \ | |||||
${WRKSRC}/mono/native/Makefile \ | |||||
post-install: | post-install: | ||||
${MKDIR} ${STAGEDIR}${PREFIX}/mono | ${MKDIR} ${STAGEDIR}${PREFIX}/mono | ||||
.include <bsd.port.mk> | .include <bsd.port.pre.mk> | ||||
.if ${ARCH} == "powerpc64" || ${ARCH} == "powerpc" | |||||
PLIST+= ${.CURDIR}/pkg-plist.powerpc | |||||
.endif | |||||
.include <bsd.port.post.mk> |
Just list the available arch:
ONLY_FOR_ARCHS= aach64 amd64 powerpc64 (maybe i386)