| Viewing file:  setup.py (3.13 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
import osimport sys
 import sysconfig
 
 def configuration(parent_package='', top_path=None):
 from numpy.distutils.misc_util import Configuration
 from numpy.distutils.system_info import get_info, system_info
 config = Configuration('linalg', parent_package, top_path)
 
 config.add_subpackage('tests')
 
 # Configure lapack_lite
 
 src_dir = 'lapack_lite'
 lapack_lite_src = [
 os.path.join(src_dir, 'python_xerbla.c'),
 os.path.join(src_dir, 'f2c_z_lapack.c'),
 os.path.join(src_dir, 'f2c_c_lapack.c'),
 os.path.join(src_dir, 'f2c_d_lapack.c'),
 os.path.join(src_dir, 'f2c_s_lapack.c'),
 os.path.join(src_dir, 'f2c_lapack.c'),
 os.path.join(src_dir, 'f2c_blas.c'),
 os.path.join(src_dir, 'f2c_config.c'),
 os.path.join(src_dir, 'f2c.c'),
 ]
 all_sources = config.paths(lapack_lite_src)
 
 if os.environ.get('NPY_USE_BLAS_ILP64', "0") != "0":
 lapack_info = get_info('lapack_ilp64_opt', 2)
 else:
 lapack_info = get_info('lapack_opt', 0)  # and {}
 
 use_lapack_lite = not lapack_info
 
 if use_lapack_lite:
 # This makes numpy.distutils write the fact that lapack_lite
 # is being used to numpy.__config__
 class numpy_linalg_lapack_lite(system_info):
 def calc_info(self):
 info = {'language': 'c'}
 size_t_size = sysconfig.get_config_var("SIZEOF_SIZE_T")
 if size_t_size:
 maxsize = 2**(size_t_size - 1) - 1
 else:
 # We prefer using sysconfig as it allows cross-compilation
 # but the information may be missing (e.g. on windows).
 maxsize = sys.maxsize
 if maxsize > 2**32:
 # Build lapack-lite in 64-bit integer mode.
 # The suffix is arbitrary (lapack_lite symbols follow it),
 # but use the "64_" convention here.
 info['define_macros'] = [
 ('HAVE_BLAS_ILP64', None),
 ('BLAS_SYMBOL_SUFFIX', '64_')
 ]
 self.set_info(**info)
 
 lapack_info = numpy_linalg_lapack_lite().get_info(2)
 
 def get_lapack_lite_sources(ext, build_dir):
 if use_lapack_lite:
 print("### Warning:  Using unoptimized lapack ###")
 return all_sources
 else:
 if sys.platform == 'win32':
 print("### Warning:  python_xerbla.c is disabled ###")
 return []
 return [all_sources[0]]
 
 config.add_extension(
 'lapack_lite',
 sources=['lapack_litemodule.c', get_lapack_lite_sources],
 depends=['lapack_lite/f2c.h'],
 extra_info=lapack_info,
 )
 
 # umath_linalg module
 config.add_extension(
 '_umath_linalg',
 sources=['umath_linalg.cpp', get_lapack_lite_sources],
 depends=['lapack_lite/f2c.h'],
 extra_info=lapack_info,
 libraries=['npymath'],
 )
 config.add_data_files('*.pyi')
 return config
 
 if __name__ == '__main__':
 from numpy.distutils.core import setup
 setup(configuration=configuration)
 
 |