1
1
using BinaryProvider
2
2
3
- if Sys. isapple ()
4
- run (` brew update` )
5
- run (` brew install gcc@8 fftw mpfr` )
6
- const libfasttransforms = joinpath (dirname (@__DIR__ ), " deps" , " libfasttransforms.dylib" )
7
- GCC = BinaryProvider. detect_compiler_abi (). gcc_version
8
- println (" Building with " , GCC, " ." )
9
- const release = " https://github.com/MikaelSlevinsky/FastTransforms/releases/download/v0.2.7/libfasttransforms.v0.2.7"
10
- if GCC == :gcc4
11
- download (release* " .gcc-4.9.dylib" , libfasttransforms)
12
- elseif GCC == :gcc5
13
- download (release* " .gcc-5.dylib" , libfasttransforms)
14
- elseif GCC == :gcc6
15
- download (release* " .gcc-6.dylib" , libfasttransforms)
16
- elseif GCC == :gcc7
17
- download (release* " .gcc-7.dylib" , libfasttransforms)
18
- elseif GCC == :gcc8
19
- download (release* " .gcc-8.dylib" , libfasttransforms)
20
- elseif GCC == :gcc9
21
- download (release* " .gcc-9.dylib" , libfasttransforms)
3
+ if arch (platform_key_abi ()) != :x86_64
4
+ @warn " FastTransforms has only been tested on x86_64 architectures."
5
+ end
6
+
7
+ ft_build_from_source = get (ENV , " FT_BUILD_FROM_SOURCE" , " false" )
8
+
9
+ if ft_build_from_source == " true"
10
+ println (" Building from source." )
11
+ if Sys. isapple ()
12
+ script = raw """
13
+ brew update
14
+ brew install gcc@8 fftw mpfr
15
+ rm -rf FastTransforms
16
+ git clone -b v0.2.7 https://github.com/MikaelSlevinsky/FastTransforms.git FastTransforms
17
+ cd FastTransforms
18
+ make lib CC=gcc-8 FT_USE_APPLEBLAS=1
19
+ cd ..
20
+ ln -sf FastTransforms/libfasttransforms.dylib libfasttransforms.dylib
21
+ """
22
+ run (` /bin/bash -c $(script) ` )
23
+ elseif Sys. islinux ()
24
+ script = raw """
25
+ sudo apt-get update
26
+ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
27
+ sudo apt-get install gcc-8 libblas-dev libopenblas-base libfftw3-dev libmpfr-dev
28
+ rm -rf FastTransforms
29
+ git clone -b v0.2.7 https://github.com/MikaelSlevinsky/FastTransforms.git FastTransforms
30
+ cd FastTransforms
31
+ make lib CC=gcc-8
32
+ cd ..
33
+ ln -sf FastTransforms/libfasttransforms.so libfasttransforms.so
34
+ """
35
+ run (` /bin/bash -c $(script) ` )
22
36
else
23
- @warn " Please ensure you have a version of gcc from gcc-4.9 to gcc-9. "
37
+ @warn " FastTransforms could not be built from source with the current build.jl script. Have you considered filing an issue? https://github.com/JuliaApproximation/FastTransforms.jl/issues "
24
38
end
25
- elseif Sys. islinux ()
26
- run (` sudo add-apt-repository ppa:ubuntu-toolchain-r/test` )
27
- run (` sudo apt-get update` )
28
- run (` sudo apt-get install gcc-8 libblas-dev libopenblas-base libfftw3-dev libmpfr-dev` )
29
- const libfasttransforms = joinpath (dirname (@__DIR__ ), " deps" , " libfasttransforms.so" )
30
- if arch (platform_key_abi ()) != :x86_64
31
- @warn " FastTransforms only has compiled binaries for x86_64 architectures."
32
- else
39
+ else
40
+ println (" Installing by downloading binaries." )
41
+ if Sys. isapple ()
42
+ run (` brew update` )
43
+ run (` brew install gcc@8 fftw mpfr` )
44
+ const libfasttransforms = joinpath (dirname (@__DIR__ ), " deps" , " libfasttransforms.dylib" )
45
+ GCC = BinaryProvider. detect_compiler_abi (). gcc_version
46
+ println (" Building with " , GCC, " ." )
47
+ const release = " https://github.com/MikaelSlevinsky/FastTransforms/releases/download/v0.2.7/libfasttransforms.v0.2.7"
48
+ if GCC == :gcc4
49
+ download (release* " .gcc-4.9.dylib" , libfasttransforms)
50
+ elseif GCC == :gcc5
51
+ download (release* " .gcc-5.dylib" , libfasttransforms)
52
+ elseif GCC == :gcc6
53
+ download (release* " .gcc-6.dylib" , libfasttransforms)
54
+ elseif GCC == :gcc7
55
+ download (release* " .gcc-7.dylib" , libfasttransforms)
56
+ elseif GCC == :gcc8
57
+ download (release* " .gcc-8.dylib" , libfasttransforms)
58
+ elseif GCC == :gcc9
59
+ download (release* " .gcc-9.dylib" , libfasttransforms)
60
+ else
61
+ @warn " Please ensure you have a version of gcc from gcc-4.9 to gcc-9."
62
+ end
63
+ elseif Sys. islinux ()
64
+ run (` sudo add-apt-repository ppa:ubuntu-toolchain-r/test` )
65
+ run (` sudo apt-get update` )
66
+ run (` sudo apt-get install gcc-8 libblas-dev libopenblas-base libfftw3-dev libmpfr-dev` )
67
+ const libfasttransforms = joinpath (dirname (@__DIR__ ), " deps" , " libfasttransforms.so" )
33
68
GCC = BinaryProvider. detect_compiler_abi (). gcc_version
34
69
println (" Building with " , GCC, " ." )
35
70
const release = " https://github.com/MikaelSlevinsky/FastTransforms/releases/download/v0.2.7/libfasttransforms.v0.2.7"
@@ -48,7 +83,7 @@ elseif Sys.islinux()
48
83
else
49
84
@warn " Please ensure you have a version of gcc from gcc-4.9 to gcc-9."
50
85
end
86
+ else
87
+ @warn " FastTransforms could not be installed by downloading binaries. Have you tried building from source?"
51
88
end
52
- else
53
- @warn " FastTransforms is not properly installed."
54
89
end
0 commit comments