setup.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from __future__ import division, print_function, absolute_import
  2. from os.path import join
  3. def configuration(parent_package='', top_path=None):
  4. import warnings
  5. from numpy.distutils.misc_util import Configuration
  6. from scipy._build_utils.system_info import get_info, BlasNotFoundError
  7. config = Configuration('odr', parent_package, top_path)
  8. libodr_files = ['d_odr.f',
  9. 'd_mprec.f',
  10. 'dlunoc.f']
  11. blas_info = get_info('blas_opt')
  12. if blas_info:
  13. libodr_files.append('d_lpk.f')
  14. else:
  15. warnings.warn(BlasNotFoundError.__doc__)
  16. libodr_files.append('d_lpkbls.f')
  17. odrpack_src = [join('odrpack', x) for x in libodr_files]
  18. config.add_library('odrpack', sources=odrpack_src)
  19. sources = ['__odrpack.c']
  20. libraries = ['odrpack'] + blas_info.pop('libraries', [])
  21. include_dirs = ['.'] + blas_info.pop('include_dirs', [])
  22. config.add_extension('__odrpack',
  23. sources=sources,
  24. libraries=libraries,
  25. include_dirs=include_dirs,
  26. depends=(['odrpack.h'] + odrpack_src),
  27. **blas_info
  28. )
  29. config.add_data_dir('tests')
  30. return config
  31. if __name__ == '__main__':
  32. from numpy.distutils.core import setup
  33. setup(**configuration(top_path='').todict())