Changeset View
Changeset View
Standalone View
Standalone View
lang/julia10/Makefile
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
# Created by: Iblis Lin <iblis@hs.ntnu.edu.tw> | |||||||||||||||
# $FreeBSD$ | |||||||||||||||
PORTNAME= julia | |||||||||||||||
PORTVERSION= 1.0.5 | |||||||||||||||
DISTVERSIONSUFFIX= -full | |||||||||||||||
matUnsubmitted Not Done Inline Actions
mat: | |||||||||||||||
CATEGORIES= lang math | |||||||||||||||
MASTER_SITES= https://github.com/JuliaLang/julia/releases/download/v${PORTVERSION}/ | |||||||||||||||
PKGNAMESUFFIX= 10 | |||||||||||||||
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 \ | |||||||||||||||
libpcre2-8.so:devel/pcre2 \ | |||||||||||||||
libssh2.so:security/libssh2 \ | |||||||||||||||
libutf8proc.so:textproc/utf8proc | |||||||||||||||
EXTRACT_DEPENDS=gmake:devel/gmake | |||||||||||||||
BUILD_DEPENDS= patchelf:sysutils/patchelf \ | |||||||||||||||
pcre2-config:devel/pcre2 \ | |||||||||||||||
cmake:devel/cmake | |||||||||||||||
Not Done Inline ActionsThis is badly ordered, order is EXTRACT/BUILD/LIB. mat: This is badly ordered, order is EXTRACT/BUILD/LIB. | |||||||||||||||
USES= gmake compiler:c++11-lib fortran python:3.6+,build perl5 \ | |||||||||||||||
shebangfix | |||||||||||||||
USE_LDCONFIG= yes | |||||||||||||||
DESCR= ${.CURDIR}/../julia/pkg-descr | |||||||||||||||
SHEBANG_GLOB= *.sh | |||||||||||||||
WRKSRC= ${WRKDIR}/julia-${PORTVERSION} | |||||||||||||||
INSTALLDIR= julia/${PORTNAME}${PKGNAMESUFFIX} | |||||||||||||||
MANDIRS+= ${PREFIX}/${INSTALLDIR}/man | |||||||||||||||
ALL_TARGET= default | |||||||||||||||
INSTALL_TARGET= install | |||||||||||||||
TEST_TARGET= test | |||||||||||||||
PLIST_SUB= VERSION="${PORTVERSION:R}" \ | |||||||||||||||
JULIA="${INSTALLDIR}" | |||||||||||||||
CXXFLAGS+= -stdlib=libc++ -std=c++11 | |||||||||||||||
MAKE_ARGS+= prefix=${PREFIX}/${INSTALLDIR} \ | |||||||||||||||
JCXXFLAGS="${CXXFLAGS}" \ | |||||||||||||||
FORCE_ASSERTIONS=${FORCE_ASSERTIONS} \ | |||||||||||||||
USE_GPL_LIBS=${USE_GPL_LIBS} \ | |||||||||||||||
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= OPENLIBM | |||||||||||||||
OPTIONS_GROUP= PRIVATE | |||||||||||||||
Done Inline Actions
Could you change the OPENLIBM to SYSLIBM as default option? kargl@ suggests that switching back to system libm as default (or just removing the openlibm knob) since there are some issues on i386 platform (https://github.com/JuliaMath/openlibm/issues/205, https://github.com/JuliaMath/openlibm/issues/206). And these issues have been fixed by system libm. iblis.dif01_nctu.edu.tw: Could you change the `OPENLIBM` to `SYSLIBM` as default option?
kargl@ suggests that switching… | |||||||||||||||
OPTIONS_GROUP_PRIVATE= OPENBLAS | |||||||||||||||
OPTIONS_SINGLE= LIBM | |||||||||||||||
OPTIONS_SINGLE_LIBM= SYSLIBM OPENLIBM | |||||||||||||||
OPTIONS_SUB= yes | |||||||||||||||
PRIVATE_DESC= Build self-shipped private depends | |||||||||||||||
LIBM_DESC= Math library implementation | |||||||||||||||
DEBUG_VARS= FORCE_ASSERTIONS=1 \ | |||||||||||||||
ALL_TARGET=all | |||||||||||||||
DEBUG_MAKE_ARGS= BUNDLE_DEBUG_LIBS=1 | |||||||||||||||
DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX} | |||||||||||||||
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_USES= gnome | |||||||||||||||
DESKTOP_VARS= INSTALL_TARGET+=install-desktop \ | |||||||||||||||
Done Inline ActionsNot sure why we need this? iblis.dif01_nctu.edu.tw: Not sure why we need this? | |||||||||||||||
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 | |||||||||||||||
OPENBLAS_DESC= Private OpenBLAS v0.3.2\ | |||||||||||||||
(ports tree: v${:!${MAKE} -C ${PORTSDIR}/math/openblas -V PORTVERSION!}) | |||||||||||||||
OPENBLAS_MAKE_ARGS= USE_SYSTEM_BLAS=0 OPENBLAS_DYNAMIC_ARCH=1 | |||||||||||||||
OPENBLAS_MAKE_ARGS_OFF= USE_SYSTEM_BLAS=1 | |||||||||||||||
OPENBLAS_LIB_DEPENDS_OFF= libopenblas.so:math/openblas | |||||||||||||||
.include <bsd.port.options.mk> | |||||||||||||||
NATIVE_DESC= Build with native CPU JIT tuning | |||||||||||||||
.if ${PORT_OPTIONS:MNATIVE} | |||||||||||||||
Not Done Inline ActionsThis is at the wrong place, should be way up. mat: This is at the wrong place, should be way up. | |||||||||||||||
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} | |||||||||||||||
# OPENBLAS plist | |||||||||||||||
.if ${PORT_OPTIONS:MOPENBLAS} | |||||||||||||||
.if ${ARCH} == "amd64" | |||||||||||||||
PLIST_SUB+= OPENBLAS64="64_" | |||||||||||||||
.else | |||||||||||||||
PLIST_SUB+= OPENBLAS64="" | |||||||||||||||
.endif | |||||||||||||||
.endif # .if ${PORT_OPTIONS:MOPENBLAS} | |||||||||||||||
Not Done Inline Actions
This does not actually need to be guarded by the openblas option. mat: This does not actually need to be guarded by the openblas option. | |||||||||||||||
.if ${ARCH} == "i386" | |||||||||||||||
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ui_Makefile | |||||||||||||||
.endif | |||||||||||||||
post-extract: | |||||||||||||||
${MAKE_CMD} -C ${WRKSRC}/deps extract | |||||||||||||||
${MAKE_CMD} -C ${WRKSRC}/stdlib install | |||||||||||||||
post-patch: | |||||||||||||||
echo "override TAGGED_RELEASE_BANNER=\"FreeBSD port lang/${PORTNAME}${PKGNAMESUFFIX} build\"" >> ${WRKSRC}/Make.user | |||||||||||||||
# unset ARCH for auto-detection | |||||||||||||||
# Julia build script uses the name x86_86/x86, which are different from ports framework | |||||||||||||||
echo "ARCH=" >> ${WRKSRC}/Make.user | |||||||||||||||
post-patch-OPENBLAS-on: | |||||||||||||||
${CP} ${FILESDIR}/extra-patch-openblas-fix-arch.patch ${WRKSRC}/deps/patches/openblas-fix-arch.patch | |||||||||||||||
post-patch-OPENBLAS-off: | |||||||||||||||
echo "LIBBLAS= -lopenblas -L${LOCALBASE}/lib" >> ${WRKSRC}/Make.user | |||||||||||||||
echo "LIBBLASNAME=libopenblas" >> ${WRKSRC}/Make.user | |||||||||||||||
echo 'LIBLAPACK= $$(LIBBLAS)' >> ${WRKSRC}/Make.user | |||||||||||||||
echo 'LIBLAPACKNAME= $$(LIBBLASNAME)' >> ${WRKSRC}/Make.user | |||||||||||||||
post-configure-OPENBLAS-off: | |||||||||||||||
${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 \ | |||||||||||||||
) | |||||||||||||||
post-install: | |||||||||||||||
${RLN} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/bin/julia ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX} | |||||||||||||||
${RLN} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/man/man1/julia.1 ${STAGEDIR}${PREFIX}/man/man1/${PORTNAME}${PKGNAMESUFFIX}.1 | |||||||||||||||
# clean up for Pkg3.jl | |||||||||||||||
.for file in .codecov.yml .travis.yml appveyor.yml bors.toml .gitignore source-extracted | |||||||||||||||
${RM} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/julia/stdlib/v${PORTVERSION:R}/Pkg/${file} | |||||||||||||||
${RM} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/julia/stdlib/v${PORTVERSION:R}/Pkg/ext/TOML/${file} | |||||||||||||||
.endfor | |||||||||||||||
post-install-DEBUG-on: | |||||||||||||||
${RLN} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/bin/julia-debug ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX}-debug | |||||||||||||||
post-install-DOCS-on: | |||||||||||||||
${MV} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/doc/julia ${STAGEDIR}${DOCSDIR} | |||||||||||||||
${RMDIR} ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/doc | |||||||||||||||
post-install-DOCS-off: | |||||||||||||||
# remove empty dir | |||||||||||||||
${RM} -r ${STAGEDIR}${PREFIX}/${INSTALLDIR}/share/doc | |||||||||||||||
.include <bsd.port.mk> |