Suppose I would like to take advantage of some functions from MKL in numpy C 
source code, which would require to use

#include "mkl.h"

Ideally this include line must not break the build of numpy when MKL is not 
present, so my initial approach was to use

#if defined(SCIPY_MKL_H)
#include "mkl.h"
#endif

Unfortunately, this did not work when building with gcc on a machine where MKL 
is present on default LD_LIBRARY_PATH, because then the distutils code was 
setting SCIPY_MKL_H preprocessor variable, even though mkl headers are not on 
the C_INCLUDE_PATH.

What is the preferred solution to include an external library header to ensure 
that code-base continues to build in most common cases?

One approach I can think of is to set a preprocessor variable, say 
HAVE_MKL_HEADERS in numpy/core/includes/numpy/config.h depending on an outcome 
of building of a simple _configtest.c using config.try_compile(), like it is 
done in numpy/core/setup.py

Is there a simpler, or a better way?

Thank you,
Oleksandr

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to