void-packages/srcpkgs/julia/template
Adam Beckmeyer a47b73335a julia: update to 1.5.0.
This update uses as many system shlibs as possible, including llvm10,
which seems to pass the included test suite more or less as well as
using the in-tree, patched llvm9. If any issues arise, it may be
necessary to drop the llvm10 dependency and set USE_SYSTEM_LLVM=0 for a
rebuild.

The linear algebra libraries are still vendored, because julia likes to
use an ILP64 ABI for BLAS while the Void openblas uses an LP64 ABI.

Closes #24097.

Co-authored-by: Adam Beckmeyer <adam_gpg@thebeckmeyers.xyz>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
2020-08-26 00:01:24 -04:00

98 lines
3.1 KiB
Bash

# Template file for 'julia'
pkgname=julia
version=1.5.0
revision=1
archs="i686* x86_64* armv7l* aarch64*"
build_style=gnu-makefile
make_build_args="prefix=/usr sysconfdir=/etc datarootdir=/usr/share
USE_BINARYBUILDER=0 USE_SYSTEM_LIBM=0 USE_SYSTEM_DSFMT=0 USE_SYSTEM_LIBUV=0
USE_SYSTEM_SUITESPARSE=0 USE_SYSTEM_BLAS=0 USE_SYSTEM_LAPACK=0 USE_SYSTEM_LLVM=1
USE_SYSTEM_LIBUNWIND=1 USE_SYSTEM_PCRE=1 USE_SYSTEM_GMP=1 USE_SYSTEM_PATCHELF=1
USE_SYSTEM_MPFR=1 USE_SYSTEM_MBEDTLS=1 USE_SYSTEM_LIBSSH2=1 USE_SYSTEM_CURL=1
USE_SYSTEM_ZLIB=1 USE_SYSTEM_P7ZIP=1 USE_SYSTEM_LIBGIT2=1 USE_SYSTEM_UTF8PROC=1
UTF8PROC_INC='${XBPS_CROSS_BASE}/usr/include/libutf8proc'"
make_install_args="$make_build_args"
make_check_args="$make_build_args"
make_check_target=testall
conf_files="/etc/julia/startup.jl"
hostmakedepends="pkg-config perl cmake python gcc-fortran patchelf which tar xz"
makedepends="p7zip pcre2-devel mpfr-devel libgit2-devel libcurl-devel
libssh2-devel mbedtls-devel libatomic-devel zlib-devel libunwind-devel
libutf8proc-devel llvm10"
# Julia provides vendored symlinks in /usr/lib/julia pointing to these libraries,
# but none of the julia executables link to them so these are not auto-detected
depends="libgit2 libcurl mpfr mbedtls libpcre2 libssh2 libquadmath p7zip"
short_desc="High-level, high-performance dynamic programming language"
maintainer="Adam Beckmeyer <adam_git@thebeckmeyers.xyz>"
license="MIT"
homepage="https://julialang.org"
distfiles="https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz"
checksum=4a6ffadc8dd04ca0b7fdef6ae203d0af38185e57b78f7c0b972c4707354a6d1b
nocross="build system is a mess"
# Targets for the vendored symlinks mentioned above
shlib_requires="libgit2.so.1.0 libcurl.so.4 libmpfr.so.6 libgmp.so.10
libmbedcrypto.so.3 libmbedtls.so.12 libmbedx509.so.0 libpcre2-8.so.0
libssh2.so.1 libquadmath.so.0"
case "$XBPS_TARGET_MACHINE" in
i686*)
export M="pentium4"
export CFLAGS="-march=pentium4"
export CXXFLAGS="-march=pentium4"
export LDFLAGS="-Wl,--no-keep-memory"
make_build_args+=" MARCH=pentium4 OPENBLAS_USE_THREAD=0"
;;
x86_64*)
export M="x86-64"
export CFLAGS="-march=x86-64"
export CXXFLAGS="-march=x86-64"
make_build_args+=" MARCH=x86-64"
;;
armv7l*)
export M="armv7-a"
export CFLAGS="-march=armv7-a"
export CXXFLAGS="-march=armv7-a"
make_build_args+=" MARCH=armv7-a"
;;
aarch64*)
export M="armv8-a"
export CFLAGS="-march=armv8-a"
export CXXFLAGS="-march=armv8-a"
make_build_args+=" MARCH=armv8-a"
;;
esac
post_extract() {
sed -i '/^install:/s| \$(BUILDROOT)/doc.*||' Makefile
}
post_install() {
vlicense LICENSE.md
# julia needlessly copies system libraries into a vendor directory
local _lib
for _lib in libgcc_s.so.1 libgfortran.so.5 libquadmath.so.0; do
rm -f "${DESTDIR}/usr/lib/julia/${_lib}"
ln -s "/usr/lib/${_lib}" "${DESTDIR}/usr/lib/julia"
done
}
julia-devel_package() {
depends="${sourcepkg}>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
}
}
julia-doc_package() {
depends="${sourcepkg}>=${version}_${revision}"
short_desc+=" - documentation files"
pkg_install() {
vmove usr/share/doc
}
}