|
| 1 | +import os |
1 | 2 | from os.path import join |
2 | 3 | import numpy |
3 | 4 |
|
4 | 5 | import warnings |
5 | 6 |
|
| 7 | +from sklearn._build_utils import get_blas_info |
| 8 | + |
6 | 9 |
|
7 | 10 | def configuration(parent_package='', top_path=None): |
8 | 11 | from numpy.distutils.misc_util import Configuration |
@@ -39,30 +42,24 @@ def configuration(parent_package='', top_path=None): |
39 | 42 | ) |
40 | 43 |
|
41 | 44 | ### liblinear module |
42 | | - blas_sources = [join('src', 'blas', 'daxpy.c'), |
43 | | - join('src', 'blas', 'ddot.c'), |
44 | | - join('src', 'blas', 'dnrm2.c'), |
45 | | - join('src', 'blas', 'dscal.c')] |
| 45 | + cblas_libs, blas_info = get_blas_info() |
| 46 | + if os.name == 'posix': |
| 47 | + cblas_libs.append('m') |
46 | 48 |
|
47 | 49 | liblinear_sources = ['liblinear.c', |
48 | 50 | join('src', 'liblinear', '*.cpp')] |
49 | 51 |
|
50 | 52 | liblinear_depends = [join('src', 'liblinear', '*.h'), |
51 | 53 | join('src', 'liblinear', 'liblinear_helper.c')] |
52 | 54 |
|
53 | | - # we try to link against system-wide blas |
54 | | - blas_info = get_info('blas_opt', 0) |
55 | | - |
56 | | - if not blas_info: |
57 | | - config.add_library('blas', blas_sources) |
58 | | - warnings.warn(BlasNotFoundError.__doc__) |
59 | | - |
60 | 55 | config.add_extension('liblinear', |
61 | 56 | sources=liblinear_sources, |
62 | | - libraries=blas_info.pop('libraries', ['blas']), |
63 | | - include_dirs=['src', |
| 57 | + libraries=cblas_libs, |
| 58 | + include_dirs=[join('..', 'src', 'cblas'), |
64 | 59 | numpy.get_include(), |
65 | 60 | blas_info.pop('include_dirs', [])], |
| 61 | + extra_compile_args=blas_info.pop('extra_compile_args', |
| 62 | + []), |
66 | 63 | depends=liblinear_depends, |
67 | 64 | # extra_compile_args=['-O0 -fno-inline'], |
68 | 65 | ** blas_info) |
|
0 commit comments