aboutsummaryrefslogtreecommitdiffstats
path: root/lang/mono/Makefile
blob: 276a19ae95c6399d28430c6e1e0a7a17fb2a9953 (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
# Created by: Yukihiro Nakai <nakai@FreeBSD.org>
# $FreeBSD$

PORTNAME=   mono
PORTVERSION=    5.10.1.47
PORTREVISION=   1
CATEGORIES= lang
MASTER_SITES=   https://download.mono-project.com/sources/mono/:mono
DISTFILES=  ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}:mono

MAINTAINER= mono@FreeBSD.org
COMMENT=    Open source implementation of .NET Development Framework

LICENSE=    MIT
LICENSE_FILE=   ${WRKSRC}/LICENSE

ONLY_FOR_ARCHS=     amd64 armv6 armv7 i386 powerpc

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

CONFLICTS_INSTALL=  czmq-3*

OPTIONS_DEFINE=     MONOLITE X11
OPTIONS_DEFAULT=    MONOLITE X11

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

X11_USES=   display:test

USES=   autoreconf bison compiler:c11 cpe gettext gmake iconv libtool \
    pathfix perl5 python shebangfix tar:bzip2
USE_PERL5=  build
GNU_CONFIGURE=  yes
USE_LDCONFIG=   yes
SHEBANG_FILES=  scripts/mono-heapviz mono/mini/genmdesc.py mono/tests/test_lldb.py
BINARY_ALIAS=   python=${PYTHON_CMD}

CONFIGURE_ARGS= --disable-dtrace
CONFIGURE_ENV=  ac_cv_header_sys_inotify_h=no

MAKE_ENV=   MONO_SHARED_DIR="${WRKDIR}" \
        INSTALL_STRIP_FLAG="${STRIP}" \
        TZ=UTC

TEST_ARGS=  -k
TEST_TARGET=    check

PORTSCOUT=  limit:^\d+\.\d+\.[1-9]\d*

LOCALBASE?= /usr/local
.if !exists(${LOCALBASE}/bin/mcs)
OPTIONS_SLAVE=  MONOLITE
.endif

post-extract-MONOLITE-on:
    ${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux
    ${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION}

post-patch:
    ${REINPLACE_CMD} -e 's|^#!/bin/bash|#!/usr/bin/env bash|g' \
        ${WRKSRC}/scripts/mono-find-provides.in \
        ${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:
    ${REINPLACE_CMD} -e 's|share\/man|man|g' \
        ${WRKSRC}/mcs/jay/Makefile

post-install:
    ${MKDIR} ${STAGEDIR}${PREFIX}/mono

.include <bsd.port.mk>