This is the current state of OpenBLAS library naming for the pkgsrc
packages (NetBSD and cross-platform).
The idea is to be able to
1) be able to have a stable library name to expect from the build
2) install multiple variants next to each other (single-threaded, parallel)
For this, the new switch FIXED_LIBNAME is introduced. The build uses
make FIXED_LIBNAME=1 LIBNAMESUFFIX=openmp
In the case of 64 bit indices, it uses
make FIXED_LIBNAME=1 LIBNAMESUFFIX=openmp INTERFACE64=1 LIBSOBASENAME=openblas64
This results in what I assumed to be the intention of the name variables to
begin with, namely primary predictable library names like
libopenblas_openmp.so
libopenblas64_openmp.so
(As pkgsrc keeps a list of expected file names resulting from a build on the user
machine, too funky names with CPU model in there and symlinks are too funky.)
I see that the naming scheme of the 64 bit indices lib is still under discussion, along
with symbol suffix. So far, we use the names without renamed symbols. They are
all installable at the same time and user software can choose which one to use, also
using the pkg-config file (which could be handled more elegantly). Without an established
convention, I didn't think like we should make the call. Depends on what downstream
packages use at some point.
I don't say that I do not cause more mess than necessary, or that I fully understand
the already pesent mess. Just throwing this suggestion out there. Maybe my the
FIXED_LIBNAME switch or something along that can be included. Or we work out
something better that fulfills the demands of a pkgsrc installation.
See the github mirror of pgksrc for the patches in use.
https://github.com/NetBSD/pkgsrc/tree/trunk/math/openblashttps://github.com/NetBSD/pkgsrc/tree/trunk/math/openblas64https://github.com/NetBSD/pkgsrc/tree/trunk/math/openblas_openmphttps://github.com/NetBSD/pkgsrc/tree/trunk/math/openblas64_openmphttps://github.com/NetBSD/pkgsrc/tree/trunk/math/openblas_pthreadhttps://github.com/NetBSD/pkgsrc/tree/trunk/math/openblas64_pthread
Also, I hope I didn't break any other configuration.
And, lastly, one idea: If we settle on OpenMP always and the ILP64 symbols with suffix, we
could just get away with building _one_ libopenmp.so (with libtool versioning, perhaps,
libopenblas.so.0.4.33 and symlinks …). That would also be great and lots of
Makefile machinery could go. Until then, please consider my hack on top;-)
Allows to create a library with a different
SONAME without the need to add suffixes to symbols
Backwards compatible and should have no effect
on the workflow and previous users.
Useful for allowing INTERFACE64 library alongside
the standard library without file conflicts
If you "make PREFIX=/path/to/OpenBLAS install" ,
The config file will be located in /path/to/OpenBLAS/cmake
Then, you can use "find_package(OpenBLAS)" at CMake.
cmake -DOpenBLAS_DIR=/path/to/OpenBLAS/cmake ..