blob: 487e4f132dfb1b85da41607b322b39127c32c41b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# Created by: Yukihiro Nakai <nakai@FreeBSD.org>
PORTNAME= mono
PORTVERSION= 6.8.0.123
PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= https://download.mono-project.com/sources/mono/
PKGNAMESUFFIX= 6.8
DISTFILES= ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}
MAINTAINER= mono@FreeBSD.org
COMMENT= Open source implementation of .NET Development Framework
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
NOT_FOR_ARCHS= riscv64 riscv64sf sparc64
BUILD_DEPENDS= p5-XML-Parser>=0:textproc/p5-XML-Parser \
bash:shells/bash \
cmake>0:devel/cmake
LIB_DEPENDS= libinotify.so:devel/libinotify
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pillow>=0:graphics/py-pillow@${PY_FLAVOR} \
ca_root_nss>=0:security/ca_root_nss \
sqlite3>0:databases/sqlite3 \
zip>=0:archivers/zip
CONFLICTS_BUILD= brotli
CONFLICTS_INSTALL= certmgr coin-or-disco disco mono mono[0-9]*
USES= autoreconf bison compiler:c11 cpe gmake iconv libtool \
pathfix perl5 python:3.6+ shebangfix tar:xz
USE_PERL5= build
CONFIGURE_SCRIPT= autogen.sh
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
SHEBANG_FILES= mono/mini/genmdesc.py \
mono/tests/gc-descriptors/gen-descriptor-tests.py \
mono/tests/test_lldb.py scripts/mono-find-provides.in \
scripts/mono-find-requires.in scripts/mono-heapviz \
scripts/mono-package-runtime
BINARY_ALIAS= python=${PYTHON_CMD}
CONFIGURE_ARGS_aarch64= --with-csc=mcs
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}" \
INSTALL_STRIP_FLAG="${STRIP}"
TEST_ARGS= -k
TEST_TARGET= check
PORTSCOUT= limit:^\d+\.\d+\.[1-9]\d*
# XXX MCL mat says: no. Options must not change themselves depending on what is installed.
# XXX MCL just leave this out for now to try to get *something* done.
# .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_USES= ninja:build
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.options.mk>
.if ${ARCH:Mpowerpc*}
PLIST+= ${.CURDIR}/pkg-plist.powerpc
.endif
.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
post-patch:
# Needed to force regeneration due to tarball packaging
${RM} ${WRKSRC}/configure ${WRKSRC}/Makefile \
${WRKSRC}/mono/Makefile \
${WRKSRC}/mono/native/Makefile
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/mono
.include <bsd.port.post.mk>
|