@@ -26,10 +26,16 @@ def load_library
2626 lapacke_dirs = [ '/opt/lapack/lib' , '/opt/lapack/lib64' , '/opt/local/lib/lapack' ,
2727 '/usr/local/opt/lapack/lib' ]
2828 opt_dirs = [ '/opt/local/lib' , '/opt/local/lib64' , '/opt/lib' , '/opt/lib64' ]
29- base_dirs = [ '/usr/local/lib' , '/usr/local/lib64' , '/usr/lib' , '/usr/lib64' , '/usr/lib/x86_64-linux-gnu' ]
29+ base_dirs = [ '/usr/local/lib' , '/usr/local/lib64' , '/usr/lib' , '/usr/lib64' ]
3030 base_dirs . concat ( Dir [ "/usr/lib/#{ RbConfig ::CONFIG [ 'host_cpu' ] } -*" ] )
3131 base_dirs . unshift ( *ENV [ 'LD_LIBRARY_PATH' ] . split ( ':' ) ) unless ENV [ 'LD_LIBRARY_PATH' ] . nil?
3232
33+ select_dirs ( base_dirs )
34+ select_dirs ( opt_dirs )
35+ select_dirs ( lapacke_dirs )
36+ select_dirs ( atlas_dirs )
37+ select_dirs ( mkl_dirs )
38+
3339 mkl_libs = find_mkl_libs ( [ *base_dirs , *opt_dirs , *mkl_dirs ] )
3440 openblas_libs = find_openblas_libs ( [ *base_dirs , *opt_dirs , *openblas_dirs ] )
3541 atlas_libs = find_atlas_libs ( [ *base_dirs , *opt_dirs , *atlas_dirs , *lapacke_dirs ] )
@@ -68,11 +74,18 @@ def detect_library_extension
6874 end
6975 end
7076
77+ def select_dirs ( dirs )
78+ dirs . select! { |d | Dir . exist? ( d ) }
79+ end
80+
7181 def find_libs ( lib_names , lib_dirs )
7282 lib_ext = detect_library_extension
7383 lib_arr = lib_names . map do |l |
74- [ l . to_sym , lib_dirs . map { |d | Dir . glob ( "#{ d } /lib#{ l } {,64}.#{ lib_ext } {,.[0-9]}" ) . last }
75- . compact . first ]
84+ x = nil
85+ lib_dirs . each do |d |
86+ break if x = Dir . glob ( "#{ d } /lib#{ l } {,64}.#{ lib_ext } {,.*}" ) . last
87+ end
88+ [ l . to_sym , x ]
7689 end
7790 Hash [ *lib_arr . flatten ]
7891 end
0 commit comments