
Thanks a lot for the patience and explanations. Am Mon, 27 Nov 2023 19:59:13 +0100 schrieb Ralf Gommers <ralf.gommers@gmail.com>:
You have to go through a "build frontend" to produce a wheel, which then gets installed/repackaged for your distro.
This is obviously happening in pkgsrc.
The build output starts with
* Building wheel...
I only need to add those -C-Dblas= parameters at the correct place.
… so some wrapped call to a vendored copy of meson that NumPy ships.
Yes, we need that for extra BLAS/LAPACK and SIMD related functionality that is still in the process of being upstreamed into Meson.
… and I dream of the world where BLAS is 'just a library' without any special support in build systems.
Adding -Dblas=$CBLAS_PC to that command should do the trick, no? (however that is effected)
Sounds like it, assuming CBLAS_PC is the name of a library.
It's the name to give to pkg-config to identify the module for CBLAS.
offer distinct functionality. CBLAS and LAPACKE are basically much less important implementation details, and typically shipped in the same library because they're interfaces to the exact same functionality.
Yes and no. The Netlib reference implementation comes (or at least can be built that way) in separate pieces, the code of which is what the optimized BLAS vendors like to use to build those combined libraries. So in my case, CBLAS_PC can be just cblas, with the effect $ pkg-config --libs cblas -L/data/pkg/lib -lcblas and $ pkg-config --libs --static cblas -L/data/pkg/lib -lcblas -lblas The reference libcblas is a separate library which could be used to wrap around any plain BLAS library. Would the meson machinery be confused by that? In practice, for optimized builds, you'll get all 4 pieces in one package (openblas at least), but I'm always also dealing with the Netlib case where CBLAS is something different from BLAS.
dependency('blas', modules: ['cblas'])
So there's this elaborate machinery that special-cases BLAS as a library that could (not) offer certain sets of API? Well, as long as the dynamic libcblas is used, the base BLAS API should be transparently avaible and those meson tests will work … ? I'll do some testing tomorrow, at least. Alrighty then, Thomas -- Dr. Thomas Orgis HPC @ Universität Hamburg