Ticket #53124: Portfile

File Portfile, 5.0 KB (added by dmarteau (David Marteau), 7 years ago)

Portfile 0.6.0

Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2
3PortSystem          1.0
4PortGroup           github 1.0
5PortGroup           compilers 1.0
6
7set version         0.6.0
8set version_short   0.6
9
10github.setup        JuliaLang julia ${version} v
11categories-append   lang math science
12maintainers         sean openmaintainer
13platforms           darwin
14license             MIT
15homepage            http://julialang.org
16
17compilers.choose    fc f77 f90
18compilers.setup     require_fortran -g95
19
20description         The Julia Language: A fresh approach to technical computing.
21long_description    Julia is a high-level, high-performance dynamic programming \
22                    language for technical computing, with syntax that is familiar \
23                    to users of other technical computing environments.
24
25github.tarball_from releases
26
27distfiles           ${name}-${version}-full${extract.suffix}
28
29checksums           rmd160  75885b8e5006f89413367dcbefbbec952ce240a1 \
30                    sha256  933c91cf460ba37520d19034378907c3208358741ed92bd8184cebb575633522
31
32# Force buildbot to skip this since julia builds its own blas; see #45101
33archive_sites
34
35set llvm_ver        4.0
36
37depends_lib-append  port:llvm-${llvm_ver} \
38    port:curl \
39    port:pcre2 \
40    port:gmp \
41    port:mpfr \
42    port:SuiteSparse \
43    port:fftw-3 \
44    port:fftw-3-single \
45    port:ncurses \
46    port:arpack \
47    port:libgit2 \
48    path:lib/libopenblas.dylib:OpenBLAS
49
50use_configure       no
51# use_parallel_build  no
52
53post-extract {
54    file mkdir ${worksrcpath}/usr/lib
55    ln -s ${prefix}/lib/libfftw3.dylib ${worksrcpath}/usr/lib/
56    ln -s ${prefix}/lib/libfftw3_threads.dylib ${worksrcpath}/usr/lib/
57    ln -s ${prefix}/lib/libfftw3f.dylib ${worksrcpath}/usr/lib/
58    ln -s ${prefix}/lib/libfftw3f_threads.dylib ${worksrcpath}/usr/lib/
59    ln -s ${prefix}/lib/libpcre2-8.dylib ${worksrcpath}/usr/lib/
60    ln -s ${prefix}/lib/libgmp.dylib ${worksrcpath}/usr/lib/
61    ln -s ${prefix}/lib/libmpfr.dylib ${worksrcpath}/usr/lib/
62    ln -s ${prefix}/lib/libumfpack.dylib ${worksrcpath}/usr/lib/
63    ln -s ${prefix}/lib/libcholmod.dylib ${worksrcpath}/usr/lib/
64    ln -s ${prefix}/lib/libsuitesparseconfig.dylib ${worksrcpath}/usr/lib/
65    ln -s ${prefix}/lib/libarpack.dylib ${worksrcpath}/usr/lib/
66    ln -s ${prefix}/lib/libopenblas.dylib ${worksrcpath}/usr/lib/
67    ln -s ${prefix}/lib/libgit2.dylib ${worksrcpath}/usr/lib/
68}
69
70build {}
71
72pre-destroot {
73    destroot.args-append \
74        CC=${configure.cc} \
75        CXX=${configure.cxx} \
76        FC=${configure.fc} \
77        USE_SYSTEM_LLVM=1 \
78        LLVM_CONFIG=llvm-config-mp-${llvm_ver} \
79        USE_SYSTEM_LIBUNWIND=1 \
80        USE_SYSTEM_LIBM=1 \
81        USE_SYSTEM_GMP=1 \
82        USE_SYSTEM_MPFR=1 \
83        USE_SYSTEM_ZLIB=1 \
84        USE_SYSTEM_PCRE=1 \
85        USE_SYSTEM_FFTW=1 \
86        USE_SYSTEM_ARPACK=1 \
87        USE_SYSTEM_SUITESPARSE=1 \
88        USE_SYSTEM_LIBGIT2=1 \
89        USE_SYSTEM_BLAS=1 \
90        USE_SYSTEM_LAPACK=1 \
91        USE_BLAS64=0 \
92        LIBBLAS=-lopenblas \
93        LIBBLASNAME=libopenblas \
94        LIBLAPACK=-lopenblas \
95        LIBLAPACKNAME=libopenblas
96}
97
98post-destroot {
99    # julia doesn't do destroot quite right
100    set dpw ${destroot}${worksrcpath}
101    delete ${destroot}${prefix}/bin
102    move [glob $dpw/julia-*/bin] ${destroot}${prefix}/bin
103    move [glob $dpw/julia-*/etc/julia] ${destroot}${prefix}/etc
104    move [glob $dpw/julia-*/include/julia] ${destroot}${prefix}/include
105    move [glob $dpw/julia-*/lib/julia] ${destroot}${prefix}/lib
106    move [glob $dpw/julia-*/share/julia] ${destroot}${prefix}/share
107
108    move [glob $dpw/julia-*/lib/libjulia.${version}.dylib] ${destroot}${prefix}/lib
109    move [glob $dpw/julia-*/lib/libjulia-debug.${version}.dylib] ${destroot}${prefix}/lib
110    move [glob $dpw/julia-*/lib/libjulia.${version}.dylib.dSYM] ${destroot}${prefix}/lib
111    move [glob $dpw/julia-*/lib/libjulia-debug.${version}.dylib.dSYM] ${destroot}${prefix}/lib
112
113    ln -sf libjulia.${version}.dylib       ${destroot}${prefix}/lib/libjulia.dylib
114    ln -sf libjulia_debug.${version}.dylib ${destroot}${prefix}/lib/libjulia_debug.dylib
115    ln -sf libjulia.${version}.dylib       ${destroot}${prefix}/lib/libjulia.${version_short}.dylib
116    ln -sf libjulia_debug.${version}.dylib ${destroot}${prefix}/lib/libjulia_debug.${version_short}.dylib
117
118    delete ${destroot}${prefix}/var
119
120    foreach b {julia julia-debug} {
121        system -W ${destroot}${prefix}/bin "install_name_tool -add_rpath ${prefix}/lib $b"
122    }
123}
124
125variant blas64 description {Build internal OpenBLAS with 64-bit interface} {
126    depends_lib-delete \
127        port:OpenBLAS
128
129    pre-destroot {
130        destroot.args-delete \
131            USE_SYSTEM_BLAS=1 \
132            USE_SYSTEM_LAPACK=1 \
133            USE_BLAS64=0 \
134            LIBBLAS=-lopenblas \
135            LIBBLASNAME=libopenblas \
136            LIBLAPACK=-lopenblas \
137            LIBLAPACKNAME=libopenblas
138    }
139}
140
141livecheck.regex     archive/[join ${github.tag_prefix} ""](\[^"-\]+)${extract.suffix}