aboutsummaryrefslogtreecommitdiffstats
path: root/lang/rust/Makefile
blob: bdeddf9b0bedd0a519387fe6157a775e6f6d2750 (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
# New ports collection makefile for: rust
# Date created: 2012-01-21
# Whom: Jyun-Yan You <jyyou@cs.nctu.edu.tw>
#
# $FreeBSD$
#

PORTNAME=   rust
PORTVERSION=    0.2
CATEGORIES= lang
MASTER_SITES=   http://dl.rust-lang.org/dist/:src \
        http://dl.rust-lang.org/stage0-snapshots/:boot
DISTFILES=  ${RUST_SOURCE}:src \
        ${RUST_BOOT}:boot
EXTRACT_ONLY=   ${RUST_SOURCE}

MAINTAINER= jyyou@cs.nctu.edu.tw
COMMENT=    A language with a focus on memory safety and concurrency

RUST_SOURCE=    ${DISTNAME}${EXTRACT_SUFX}
RUST_BOOT=  rust-stage0-${RUST_BOOT_SIG}.tar.bz2
RUST_BOOT_SIG=  2012-03-27-eec6383-freebsd-x86_64-595f06a3c7a073917fa3274d2aafa6328c50754b
RUST_TARGET=    x86_64-unknown-freebsd

ONLY_FOR_ARCHS= amd64
HAS_CONFIGURE=  yes
USE_LDCONFIG=   yes
USE_GMAKE=  yes
USE_PERL5_BUILD=    yes
USE_PYTHON_BUILD=   2.6-2.7

MAN1=   rustc.1

OPTIONS_DEFINE=     CARGO
CARGO_DESC=     Build with package manager
OPTIONS_DEFAULT=    CARGO

.include <bsd.port.pre.mk>

.if ${OSVERSION} >= 900044
LIB_DEPENDS+=   unwind:${PORTSDIR}/devel/libunwind
CC=     clang
CXX=        clang++
CONFIGURE_ARGS+=    --enable-clang
.else
USE_GCC=    4.6+
.endif

.if ${PORT_OPTIONS:MCARGO}
RUN_DEPENDS+=   curl:${PORTSDIR}/ftp/curl \
        git:${PORTSDIR}/devel/git \
        gpg:${PORTSDIR}/security/gnupg
PLIST_SUB+= CARGO=""
.else
PLIST_SUB+= CARGO="@comment "
.endif

LIB_DEPENDS+=   execinfo:${PORTSDIR}/devel/libexecinfo

MAKE_ARGS+=     CC=${CC} CXX=${CXX} ARCH=x86_64
CONFIGURE_ARGS+=    --disable-valgrind --disable-docs

post-extract:
    ${MKDIR} ${WRKSRC}/${RUST_TARGET} && \
    cd ${WRKSRC}/${RUST_TARGET} && \
    ${TAR} -xf ${DISTDIR}/${RUST_BOOT} && \
    ${MV} rust-stage0 stage0

post-patch:
    ${REINPLACE_CMD} \
        -e '/probe_need CFG_CURL/d' \
        ${WRKSRC}/configure
    ${REINPLACE_CMD} \
        -e 's|subprocess.call(\["curl"|subprocess.call(["fetch"|' \
        ${WRKSRC}/src/etc/snapshot.py
    ${REINPLACE_CMD} \
        -e 's|$$(PREFIX_ROOT)/share/man|${MANPREFIX}/man|' \
        ${WRKSRC}/mk/install.mk
    ${REINPLACE_CMD} \
        -e '/get-snapshot.py $$(CFG_HOST_TRIPLE)/d' \
        ${WRKSRC}/mk/stage0.mk
.if empty(PORT_OPTIONS:MCARGO)
    ${REINPLACE_CMD} \
        -e '/$$(Q)$$(call INSTALL,$$(HB3),$$(PHB),cargo$$(X))/d' \
        ${WRKSRC}/mk/install.mk
.endif

.include <bsd.port.post.mk>