# Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. # Disable build id note requirement for now %undefine _missing_build_ids_terminate_build # Force special prefix for Vespa %define _prefix /opt/vespa-deps # Only strip debug info %global _find_debuginfo_opts -g # Don't provide shared library or pkgconfig %global __provides_exclude ^(lib.*\\.so\\.[0-9]*\\(\\)\\(64bit\\)|(cmake|pkgconfig)\\(.*)$ %global __requires_exclude ^libopenblas.*\.so\\.[0-9.]*\\([A-Z._0-9]*\\)\\(64bit\\)$ # Version %define ver_major 0 %define ver_minor 3 %define ver_patch 27 %define ver_release 3 Summary: openblas compiled for vespa Name: vespa-openblas Version: %{ver_major}.%{ver_minor}.%{ver_patch} Release: %{ver_release}%{?dist} License: BSD URL: https://github.com/OpenMathLib/OpenBLAS/ Source0: https://github.com/OpenMathLib/OpenBLAS/archive/v%{version}/openblas-%{version}.tar.gz Patch0: patches.driver-others-dynamic-arm64.diff %if 0%{?el8} %define _devtoolset_enable /opt/rh/gcc-toolset/enable BuildRequires: vespa-toolset-13-meta BuildRequires: perl-devel %endif %if 0%{?el9} %define _devtoolset_enable /opt/rh/gcc-toolset/enable BuildRequires: vespa-toolset-13-meta BuildRequires: perl-devel %endif %if 0%{?fedora} BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: perl-devel %endif BuildRequires: make BuildRequires: vespa-cmake %global _vespa_3rdparty_deps_packaging_notice \ See https://github.com/vespa-engine/vespa-3rdparty-deps for details \ about packaging. %description openblas compiled for vespa %{_vespa_3rdparty_deps_packaging_notice} %package devel Summary: openblas compiled for vespa -- devel Requires: %{name}%{?_isa} = %{version}-%{release} %description devel openblas compiled for vespa -- devel %{_vespa_3rdparty_deps_packaging_notice} %prep %setup -n OpenBLAS-%{version} %patch0 -p0 %build PATH=%{_prefix}/bin:$PATH %if 0%{?_devtoolset_enable:1} source %{_devtoolset_enable} || true %endif %ifarch x86_64 %define _openblas_target CORE2 %endif %ifarch aarch64 %define _openblas_target ARMV8 %endif %global common_cmake_args -DUSE_OPENMP=0 -DINTERFACE64=0 -DNOFORTRAN=1 -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DDYNAMIC_ARCH=1 -DTARGET=%{_openblas_target} -DCMAKE_C_FLAGS_RELWITHDEBINFO='-g -O3 -DNDEBUG -Wno-error=incompatible-pointer-types' -DNUM_THREADS=64 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=%{_prefix} cmake -S . -B multithreaded -DUSE_THREAD=1 -DLIBNAMESUFFIX="p" %common_cmake_args cmake -S . -B singlethreaded -DUSE_THREAD=0 -DLIBNAMESUFFIX="" %common_cmake_args cmake --build multithreaded -j `nproc` cmake --build singlethreaded -j `nproc` %install PATH=%{_prefix}/bin:$PATH %if 0%{?_devtoolset_enable:1} source %{_devtoolset_enable} || true %endif DESTDIR="%{buildroot}" cmake --install multithreaded mv %{buildroot}%{_libdir}/pkgconfig/openblas.pc %{buildroot}%{_libdir}/pkgconfig/openblasp.pc DESTDIR="%{buildroot}" cmake --install singlethreaded ln -s openblas/cblas.h %{buildroot}%{_prefix}/include/cblas.h ln -s openblas/openblas_config.h %{buildroot}%{_prefix}/include/openblas_config.h %files %license LICENSE %{_libdir} %exclude %{_libdir}/cmake %exclude %{_libdir}/libopenblas.so %exclude %{_libdir}/libopenblas.a %exclude %{_libdir}/libopenblasp.so %exclude %{_libdir}/libopenblasp.a %exclude %{_libdir}/pkgconfig %files devel %license LICENSE %{_includedir} %{_libdir}/cmake %{_libdir}/libopenblas.so %{_libdir}/libopenblasp.so %{_libdir}/pkgconfig %changelog