Blame site.cfg.example

Packit 7a8e5e
# This file provides configuration information about non-Python dependencies for
Packit 7a8e5e
# numpy.distutils-using packages. Create a file like this called "site.cfg" next
Packit 7a8e5e
# to your package's setup.py file and fill in the appropriate sections. Not all
Packit 7a8e5e
# packages will use all sections so you should leave out sections that your
Packit 7a8e5e
# package does not use.
Packit 7a8e5e
Packit 7a8e5e
# To assist automatic installation like easy_install, the user's home directory
Packit 7a8e5e
# will also be checked for the file ~/.numpy-site.cfg .
Packit 7a8e5e
Packit 7a8e5e
# The format of the file is that of the standard library's ConfigParser module.
Packit 7a8e5e
# No interpolation is allowed, RawConfigParser class being used to load it.
Packit 7a8e5e
#
Packit 7a8e5e
#   http://docs.python.org/3/library/configparser.html
Packit 7a8e5e
#
Packit 7a8e5e
# Each section defines settings that apply to one particular dependency. Some of
Packit 7a8e5e
# the settings are general and apply to nearly any section and are defined here.
Packit 7a8e5e
# Settings specific to a particular section will be defined near their section.
Packit 7a8e5e
#
Packit 7a8e5e
#   libraries
Packit 7a8e5e
#       Comma-separated list of library names to add to compile the extension
Packit 7a8e5e
#       with. Note that these should be just the names, not the filenames. For
Packit 7a8e5e
#       example, the file "libfoo.so" would become simply "foo".
Packit 7a8e5e
#           libraries = lapack,f77blas,cblas,atlas
Packit 7a8e5e
#
Packit 7a8e5e
#   library_dirs
Packit 7a8e5e
#       List of directories to add to the library search path when compiling
Packit 7a8e5e
#       extensions with this dependency. Use the character given by os.pathsep
Packit 7a8e5e
#       to separate the items in the list. Note that this character is known to
Packit 7a8e5e
#       vary on some unix-like systems; if a colon does not work, try a comma.
Packit 7a8e5e
#       This also applies to include_dirs and src_dirs (see below).
Packit 7a8e5e
#       On UN*X-type systems (OS X, most BSD and Linux systems):
Packit 7a8e5e
#           library_dirs = /usr/lib:/usr/local/lib
Packit 7a8e5e
#       On Windows:
Packit 7a8e5e
#           library_dirs = c:\mingw\lib,c:\atlas\lib
Packit 7a8e5e
#       On some BSD and Linux systems:
Packit 7a8e5e
#           library_dirs = /usr/lib,/usr/local/lib
Packit 7a8e5e
#
Packit 7a8e5e
#   include_dirs
Packit 7a8e5e
#       List of directories to add to the header file search path.
Packit 7a8e5e
#           include_dirs = /usr/include:/usr/local/include
Packit 7a8e5e
#
Packit 7a8e5e
#   src_dirs 
Packit 7a8e5e
#       List of directories that contain extracted source code for the
Packit 7a8e5e
#       dependency. For some dependencies, numpy.distutils will be able to build
Packit 7a8e5e
#       them from source if binaries cannot be found. The FORTRAN BLAS and
Packit 7a8e5e
#       LAPACK libraries are one example. However, most dependencies are more
Packit 7a8e5e
#       complicated and require actual installation that you need to do
Packit 7a8e5e
#       yourself.
Packit 7a8e5e
#           src_dirs = /home/rkern/src/BLAS_SRC:/home/rkern/src/LAPACK_SRC
Packit 7a8e5e
#
Packit 7a8e5e
#   search_static_first
Packit 7a8e5e
#       Boolean (one of (0, false, no, off) for False or (1, true, yes, on) for
Packit 7a8e5e
#       True) to tell numpy.distutils to prefer static libraries (.a) over
Packit 7a8e5e
#       shared libraries (.so). It is turned off by default.
Packit 7a8e5e
#           search_static_first = false
Packit 7a8e5e
#
Packit 7a8e5e
#   runtime_library_dirs/rpath
Packit 7a8e5e
#       List of directories that contains the libraries that should be 
Packit 7a8e5e
#       used at runtime, thereby disregarding the LD_LIBRARY_PATH variable.
Packit 7a8e5e
#       See 'library_dirs' for formatting on different platforms.
Packit 7a8e5e
#           runtime_library_dirs = /opt/blas/lib:/opt/lapack/lib
Packit 7a8e5e
#       or equivalently
Packit 7a8e5e
#           rpath = /opt/blas/lib:/opt/lapack/lib
Packit 7a8e5e
#
Packit 7a8e5e
#   extra_compile_args
Packit 7a8e5e
#       Add additional arguments to the compilation of sources.
Packit 7a8e5e
#       Simple variable with no parsing done. 
Packit 7a8e5e
#       Provide a single line with all complete flags.
Packit 7a8e5e
#           extra_compile_args = -g -ftree-vectorize
Packit 7a8e5e
#
Packit 7a8e5e
#   extra_link_args
Packit 7a8e5e
#       Add additional arguments when libraries/executables
Packit 7a8e5e
#       are linked.
Packit 7a8e5e
#       Simple variable with no parsing done. 
Packit 7a8e5e
#       Provide a single line with all complete flags.
Packit 7a8e5e
#           extra_link_args = -lgfortran
Packit 7a8e5e
#
Packit 7a8e5e
Packit 7a8e5e
# Defaults
Packit 7a8e5e
# ========
Packit 7a8e5e
# The settings given here will apply to all other sections if not overridden.
Packit 7a8e5e
# This is a good place to add general library and include directories like
Packit 7a8e5e
# /usr/local/{lib,include}
Packit 7a8e5e
#
Packit 7a8e5e
#[ALL]
Packit 7a8e5e
#library_dirs = /usr/local/lib
Packit 7a8e5e
#include_dirs = /usr/local/include
Packit 7a8e5e
#
Packit 7a8e5e
Packit 7a8e5e
# Atlas
Packit 7a8e5e
# -----
Packit 7a8e5e
# Atlas is an open source optimized implementation of the BLAS and Lapack
Packit 7a8e5e
# routines. NumPy will try to build against Atlas by default when available in
Packit 7a8e5e
# the system library dirs. To build numpy against a custom installation of
Packit 7a8e5e
# Atlas you can add an explicit section such as the following. Here we assume
Packit 7a8e5e
# that Atlas was configured with ``prefix=/opt/atlas``.
Packit 7a8e5e
#
Packit 7a8e5e
# [atlas]
Packit 7a8e5e
# library_dirs = /opt/atlas/lib
Packit 7a8e5e
# include_dirs = /opt/atlas/include
Packit 7a8e5e
Packit 7a8e5e
# OpenBLAS
Packit 7a8e5e
# --------
Packit 7a8e5e
# OpenBLAS is another open source optimized implementation of BLAS and Lapack
Packit 7a8e5e
# and can be seen as an alternative to Atlas. To build numpy against OpenBLAS
Packit 7a8e5e
# instead of Atlas, use this section instead of the above, adjusting as needed
Packit 7a8e5e
# for your configuration (in the following example we installed OpenBLAS with
Packit 7a8e5e
# ``make install PREFIX=/opt/OpenBLAS``.
Packit 7a8e5e
# OpenBLAS is generically installed as a shared library, to force the OpenBLAS
Packit 7a8e5e
# library linked to also be used at runtime you can utilize the 
Packit 7a8e5e
# runtime_library_dirs variable.
Packit 7a8e5e
#
Packit 7a8e5e
# **Warning**: OpenBLAS, by default, is built in multithreaded mode. Due to the
Packit 7a8e5e
# way Python's multiprocessing is implemented, a multithreaded OpenBLAS can
Packit 7a8e5e
# cause programs using both to hang as soon as a worker process is forked on
Packit 7a8e5e
# POSIX systems (Linux, Mac).
Packit 7a8e5e
# This is fixed in Openblas 0.2.9 for the pthread build, the OpenMP build using
Packit 7a8e5e
# GNU openmp is as of gcc-4.9 not fixed yet.
Packit 7a8e5e
# Python 3.4 will introduce a new feature in multiprocessing, called the
Packit 7a8e5e
# "forkserver", which solves this problem. For older versions, make sure
Packit 7a8e5e
# OpenBLAS is built using pthreads or use Python threads instead of
Packit 7a8e5e
# multiprocessing.
Packit 7a8e5e
# (This problem does not exist with multithreaded ATLAS.)
Packit 7a8e5e
#
Packit 7a8e5e
# http://docs.python.org/3.4/library/multiprocessing.html#contexts-and-start-methods
Packit 7a8e5e
# https://github.com/xianyi/OpenBLAS/issues/294
Packit 7a8e5e
#
Packit 7a8e5e
# [openblas]
Packit 7a8e5e
# libraries = openblas
Packit 7a8e5e
# library_dirs = /opt/OpenBLAS/lib
Packit 7a8e5e
# include_dirs = /opt/OpenBLAS/include
Packit 7a8e5e
# runtime_library_dirs = /opt/OpenBLAS/lib
Packit 7a8e5e
Packit 7a8e5e
# BLIS
Packit 7a8e5e
# ----
Packit 7a8e5e
# BLIS (https://github.com/flame/blis) also provides a BLAS interface.  It's a
Packit 7a8e5e
# relatively new library, its performance in some cases seems to match that of
Packit 7a8e5e
# MKL and OpenBLAS, but it hasn't been benchmarked with NumPy or Scipy yet.
Packit 7a8e5e
#
Packit 7a8e5e
# Notes on compiling BLIS itself:
Packit 7a8e5e
#   - the CBLAS interface (needed by NumPy) isn't built by default; define
Packit 7a8e5e
#     BLIS_ENABLE_CBLAS to build it.
Packit 7a8e5e
#   - ``./configure auto`` doesn't support 32-bit builds, see gh-7294 for
Packit 7a8e5e
#     details.
Packit 7a8e5e
# Notes on compiling NumPy against BLIS:
Packit 7a8e5e
#   - ``include_dirs`` below should be the directory where the BLIS cblas.h
Packit 7a8e5e
#     header is installed.
Packit 7a8e5e
#
Packit 7a8e5e
# [blis]
Packit 7a8e5e
# libraries = blis
Packit 7a8e5e
# library_dirs = /home/username/blis/lib
Packit 7a8e5e
# include_dirs = /home/username/blis/include/blis
Packit 7a8e5e
# runtime_library_dirs = /home/username/blis/lib
Packit 7a8e5e
Packit 7a8e5e
# MKL
Packit 7a8e5e
#---- 
Packit 7a8e5e
# Intel MKL is Intel's very optimized yet proprietary implementation of BLAS and 
Packit 7a8e5e
# Lapack. Find the latest info on building numpy with Intel MKL in this article:
Packit 7a8e5e
# https://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl
Packit 7a8e5e
# Assuming you installed the mkl in /opt/intel/compilers_and_libraries_2018/linux/mkl, 
Packit 7a8e5e
# for 64 bits code at Linux: 
Packit 7a8e5e
# [mkl] 
Packit 7a8e5e
# library_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/lib/intel64
Packit 7a8e5e
# include_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/include 
Packit 7a8e5e
# mkl_libs = mkl_rt 
Packit 7a8e5e
# lapack_libs =  
Packit 7a8e5e
# 
Packit 7a8e5e
# For 32 bit code at Linux: 
Packit 7a8e5e
# [mkl]
Packit 7a8e5e
# library_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/lib/ia32
Packit 7a8e5e
# include_dirs = /opt/intel/compilers_and_libraries_2018/linux/mkl/include 
Packit 7a8e5e
# mkl_libs = mkl_rt 
Packit 7a8e5e
# lapack_libs =  
Packit 7a8e5e
# 
Packit 7a8e5e
# On win-64, the following options compiles numpy with the MKL library 
Packit 7a8e5e
# dynamically linked. 
Packit 7a8e5e
# [mkl] 
Packit 7a8e5e
# include_dirs = C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\mkl\include
Packit 7a8e5e
# library_dirs = C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\mkl\lib\intel64
Packit 7a8e5e
# mkl_libs = mkl_rt 
Packit 7a8e5e
# lapack_libs =
Packit 7a8e5e
Packit 7a8e5e
# UMFPACK
Packit 7a8e5e
# -------
Packit 7a8e5e
# The UMFPACK library is used in scikits.umfpack to factor large sparse matrices. 
Packit 7a8e5e
# It, in turn, depends on the AMD library for reordering the matrices for
Packit 7a8e5e
# better performance.  Note that the AMD library has nothing to do with AMD
Packit 7a8e5e
# (Advanced Micro Devices), the CPU company.
Packit 7a8e5e
#
Packit 7a8e5e
# UMFPACK is not used by numpy.
Packit 7a8e5e
#
Packit 7a8e5e
#   http://www.cise.ufl.edu/research/sparse/umfpack/
Packit 7a8e5e
#   http://www.cise.ufl.edu/research/sparse/amd/
Packit 7a8e5e
#   http://scikits.appspot.com/umfpack
Packit 7a8e5e
#
Packit 7a8e5e
#[amd]
Packit 7a8e5e
#amd_libs = amd
Packit 7a8e5e
#
Packit 7a8e5e
#[umfpack]
Packit 7a8e5e
#umfpack_libs = umfpack
Packit 7a8e5e
Packit 7a8e5e
# FFT libraries
Packit 7a8e5e
# -------------
Packit 7a8e5e
# There are two FFT libraries that we can configure here: FFTW (2 and 3) and djbfft.
Packit 7a8e5e
# Note that these libraries are not used by for numpy or scipy.
Packit 7a8e5e
#
Packit 7a8e5e
#   http://fftw.org/
Packit 7a8e5e
#   http://cr.yp.to/djbfft.html
Packit 7a8e5e
#
Packit 7a8e5e
# Given only this section, numpy.distutils will try to figure out which version
Packit 7a8e5e
# of FFTW you are using.
Packit 7a8e5e
#[fftw]
Packit 7a8e5e
#libraries = fftw3
Packit 7a8e5e
#
Packit 7a8e5e
# For djbfft, numpy.distutils will look for either djbfft.a or libdjbfft.a . 
Packit 7a8e5e
#[djbfft]
Packit 7a8e5e
#include_dirs = /usr/local/djbfft/include
Packit 7a8e5e
#library_dirs = /usr/local/djbfft/lib