forked from easybuilders/easybuild-easyconfigs
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Julia-1.8.1-GCCcore-9.3.0.eb
52 lines (37 loc) · 2.33 KB
/
Julia-1.8.1-GCCcore-9.3.0.eb
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
easyblock = 'ConfigureMake'
name = 'Julia'
version = '1.8.1'
homepage = 'http://julialang.org'
description = "A high-level, high-performance dynamic language for technical computing."
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
source_urls = ['https://github.com/JuliaLang/%(namelower)s/releases/download/v%(version)s']
sources = [SOURCELOWER_TAR_GZ]
patches = ['%(name)s-%(version)s-limit-initial-OpenBLAS-threads.patch']
checksums = [
'066f4ca7a2ad39b003e2af77dbecfbfb9b0a1cb1664033f657ffdbe2f374d956', # julia-1.8.1.tar.gz
# Julia-1.8.1-limit-initial-OpenBLAS-threads.patch
'997b2be6b0e72f0894890abfc41f7ba6faa42fdb1c313cbb3347dab8d6def1a0',
]
builddependencies = [('imkl', '2020.1.217')]
# Use bfd linker so libcurl is compatible with binary packages
prebuildopts = ""
prebuildopts += "sed -i 's@https://github.com/jinfeihan57@https://github.com/p7zip-project@' deps/p7zip.mk && "
prebuildopts += "declare -A ARCH_MAP=( [sse3]=nocona [avx]=sandybridge [avx2]=haswell [avx512]=skx ) && declare -A OPENBLAS_ARCH_MAP=( [sse3]='' [avx]='OPENBLAS_TARGET_ARCH=SANDYBRIDGE' [avx2]='OPENBLAS_TARGET_ARCH=HASWELL' [avx512]='OPENBLAS_TARGET_ARCH=SKYLAKEX' ) && "
prebuildopts += "LDFLAGS=\"$LDFLAGS -fuse-ld=bfd\" "
# Specifying JULIA_CPU_TARGET allows use on non-identical CPUs. Doesn't affect JIT or linked toolchain components.
buildopts = " prefix=%(installdir)s USE_BINARYBUILDER=0 JULIA_CPU_TARGET=${ARCH_MAP[$RSNT_ARCH]} ${OPENBLAS_ARCH_MAP[$RSNT_ARCH]}"
preinstallopts = "declare -A ARCH_MAP=( [sse3]=nocona [avx]=sandybridge [avx2]=haswell [avx512]=skx ) && declare -A OPENBLAS_ARCH_MAP=( [sse3]='' [avx]='OPENBLAS_TARGET_ARCH=SANDYBRIDGE' [avx2]='OPENBLAS_TARGET_ARCH=HASWELL' [avx512]='OPENBLAS_TARGET_ARCH=SKYLAKEX' ) && "
installopts = " prefix=%(installdir)s USE_BINARYBUILDER=0 JULIA_CPU_TARGET=${ARCH_MAP[$RSNT_ARCH]} ${OPENBLAS_ARCH_MAP[$RSNT_ARCH]}"
# so that the Pardiso Julia package can find MKL
postinstallcmds = ["patchelf --set-rpath '$ORIGIN:$ORIGIN/..:'\"$MKLROOT/lib/intel64\" %(installdir)s/lib/julia/libjulia-internal.so.1.8"]
skipsteps = ['configure']
sanity_check_paths = {
'files': ['bin/%(namelower)s'],
'dirs': ['lib'],
}
# : means the default path, this way extension modules can append to it
modluafooter = '''
append_path("JULIA_DEPOT_PATH", ":")
append_path("JULIA_LOAD_PATH", ":")
'''
moduleclass = 'lang'