From 7cb4c2815d57fa2d567d88ef615ae650c40f9e3d Mon Sep 17 00:00:00 2001 From: Fabian Pedregosa <fabian.pedregosa@inria.fr> Date: Thu, 22 Apr 2010 12:17:56 +0000 Subject: [PATCH] Use syste-wide BLAS libraries if available. git-svn-id: https://scikit-learn.svn.sourceforge.net/svnroot/scikit-learn/trunk@689 22fbfee3-77ab-4535-9bad-27d1bd3bc7d8 --- scikits/learn/setup.py | 44 ++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/scikits/learn/setup.py b/scikits/learn/setup.py index ad31b1f889..6742d075cc 100644 --- a/scikits/learn/setup.py +++ b/scikits/learn/setup.py @@ -1,9 +1,12 @@ from os.path import join +import warnings import numpy def configuration(parent_package='',top_path=None): from numpy.distutils.misc_util import Configuration + from numpy.distutils.system_info import get_info, BlasNotFoundError config = Configuration('learn',parent_package,top_path) + config.add_subpackage('em') config.add_subpackage('datasets') config.add_subpackage('feature_selection') @@ -18,30 +21,41 @@ def configuration(parent_package='',top_path=None): depends=[join('src', 'svm.h'), join('src', 'libsvm_helper.c'), ]) + + ### liblinear module + blas_sources = [join('src', 'blas', 'daxpy.c'), + join('src', 'blas', 'ddot.c'), + join('src', 'blas', 'dnrm2.c'), + join('src', 'blas', 'dscal.c')] + + liblinear_sources = [join('src', 'linear.cpp'), + join('src', 'liblinear.c'), + join('src', 'tron.cpp')] + + # we try to link agains system-wide blas + blas_info = get_info('blas_opt') + if not blas_info: + warnings.warn(BlasNotFoundError.__doc__) + liblinear_souces.append(blas_sources) + config.add_extension('liblinear', - sources=[join('src', 'linear.cpp'), - join('src', 'liblinear.c'), - join('src', 'tron.cpp'), - join('src', 'blas', 'daxpy.c'), - join('src', 'blas', 'ddot.c'), - join('src', 'blas', 'dnrm2.c'), - join('src', 'blas', 'dscal.c'), - ], - include_dirs=[numpy.get_include()], + sources=liblinear_sources, + libraries = blas_info.pop('libraries', []), + include_dirs=['src', + numpy.get_include(), + blas_info.pop('include_dirs', [])], depends=[join('src', 'linear.h'), - join('src', 'liblinear_helper.c'), join('src', 'tron.h'), join('src', 'blas', 'blas.h'), - join('src', 'blas', 'blasp.h'), - ]) + join('src', 'blas', 'blasp.h')], + **blas_info) + ## end liblinear module + config.add_extension('BallTree', sources=[join('src', 'BallTree.cpp')], include_dirs=[numpy.get_include()] ) - - return config - config.add_subpackage('utils') return config -- GitLab