aboutsummaryrefslogtreecommitdiffstats
path: root/lang/julia07/Makefile
blob: b52b29203b88d11057bc6eea2da86a158a48af3e (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
# Created by: Iblis Lin <iblis@hs.ntnu.edu.tw>
# $FreeBSD$

PORTNAME=   julia
PORTVERSION=    0.7.0
DISTVERSIONSUFFIX=  -full
PORTREVISION=   1
CATEGORIES= lang math
MASTER_SITES=   https://github.com/JuliaLang/julia/releases/download/v${PORTVERSION}/
PKGNAMESUFFIX=  07

MAINTAINER= iblis@hs.ntnu.edu.tw
COMMENT=    Julia Language: A fresh approach to technical computing

LICENSE=    MIT
LICENSE_FILE=   ${WRKSRC}/LICENSE.md

ONLY_FOR_ARCHS= amd64 i386

LIB_DEPENDS=    libcurl.so:ftp/curl \
        libgit2.so:devel/libgit2 \
        libgmp.so:math/gmp \
        libmbedtls.so:security/mbedtls \
        libmpfr.so:math/mpfr \
        libopenblasp.so:math/openblas \
        libpcre2-8.so:devel/pcre2 \
        libssh2.so:security/libssh2 \
        libutf8proc.so:textproc/utf8proc
BUILD_DEPENDS=  patchelf:sysutils/patchelf \
        pcre2-config:devel/pcre2 \
        cmake:devel/cmake

USES=       gmake compiler:c++11-lib fortran python:2.7,build perl5
USE_LDCONFIG=   yes

WRKSRC= ${WRKDIR}/${PORTNAME}

ALL_TARGET= default
INSTALL_TARGET= install
TEST_TARGET=    test

PLIST_SUB=  VERSION="${PORTVERSION:R}" \
        SOVERSION="${PORTVERSION}"

CXXFLAGS+=  -stdlib=libc++ -std=c++11
MAKE_ARGS+= prefix=${PREFIX} \
        JCXXFLAGS="${CXXFLAGS}" \
        FORCE_ASSERTIONS=${FORCE_ASSERTIONS} \
        USE_GPL_LIBS=${USE_GPL_LIBS} \
        USE_SYSTEM_BLAS=1 \
        USE_SYSTEM_CURL=1 \
        USE_SYSTEM_GMP=1 \
        USE_SYSTEM_LAPACK=1 \
        USE_SYSTEM_LIBGIT2=1 \
        USE_SYSTEM_LIBSSH2=1 \
        USE_SYSTEM_LIBUV=0 \
        USE_SYSTEM_MBEDTLS=1 \
        USE_SYSTEM_MPFR=1 \
        USE_SYSTEM_PATCHELF=1 \
        USE_SYSTEM_PCRE=1 \
        USE_SYSTEM_UTF8PROC=1 \
        NO_GIT=1

OPTIONS_DEFINE= DEBUG DOCS GPL_LIBS DESKTOP NATIVE
OPTIONS_DEFAULT=    SYSLIBM
OPTIONS_GROUP=  PRIVATE
OPTIONS_SINGLE= LIBM
OPTIONS_SINGLE_LIBM=    SYSLIBM OPENLIBM
OPTIONS_SUB=    yes

LIBM_DESC=  Math library implementation

DEBUG_VARS= FORCE_ASSERTIONS=1 \
        ALL_TARGET=all
DEBUG_MAKE_ARGS=    BUNDLE_DEBUG_LIBS=1

PORTDOCS=   html
DOCS_VARS=  INSTALL_TARGET+=install-docs

GPL_LIBS_DESC=  Build with GPL lib: SUITESPARSE
GPL_LIBS_MAKE_ARGS= USE_SYSTEM_SUITESPARSE=0
GPL_LIBS_VARS=  USE_GPL_LIBS=1

DESKTOP_DESC=   Install icon, .desktop and appdata files
DESKTOP_VARS=   INSTALL_TARGET+=install-desktop \
        INSTALLS_ICONS=yes

SYSLIBM_DESC=   Build with system libm
SYSLIBM_MAKE_ARGS=  USE_SYSTEM_LIBM=1

OPENLIBM_DESC=  Build with OpenLibm (math/openlibm)
OPENLIBM_MAKE_ARGS= USE_SYSTEM_OPENLIBM=1
OPENLIBM_LIB_DEPENDS=   libopenlibm.so:math/openlibm

.include <bsd.port.options.mk>

NATIVE_DESC=        Build with native CPU JIT tuning
.if ${PORT_OPTIONS:MNATIVE}
MAKE_ARGS+= JULIA_CPU_TARGET=native
.else
.if ${ARCH} == "amd64"
MAKE_ARGS+= JULIA_CPU_TARGET=x86-64
.elif ${ARCH} == "i386"
MAKE_ARGS+= JULIA_CPU_TARGET=pentium4
.else
MAKE_ARGS+= JULIA_CPU_TARGET=generic
.endif
.endif  # .if ${PORT_OPTIONS:MNATIVE}

.if ${ARCH} == "i386"
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ui_Makefile
.endif

post-configure:
    ${CC} ${CFLAGS} -lopenblas ${LDFLAGS} -o ${WRKSRC}/check_openblas \
        ${FILESDIR}/check_openblas.c
    ${WRKSRC}/check_openblas && ( \
        echo "USE_BLAS64=1" >> ${WRKSRC}/Make.user \
    ) || ( \
        echo "USE_BLAS64=0" >> ${WRKSRC}/Make.user \
    )

.include <bsd.port.mk>