Projects
OpenHPC4:4.2:Factory
boost-gnu16-impi
_service:extract_file:boost.spec
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:extract_file:boost.spec of Package boost-gnu16-impi
%define mpi_family impi %define compiler_family gnu16 #----------------------------------------------------------------------------bh- # This RPM .spec file is part of the OpenHPC project. # # It may have been modified from the default version supplied by the underlying # release package (if available) in order to apply patches, perform customized # build/install configurations, and supply additional files to support # desired integration conventions. # #----------------------------------------------------------------------------eh- # Boost C++ library that is is dependent on compiler toolchain and MPI %global ohpc_compiler_dependent 1 %global ohpc_mpi_dependent 1 %include %{_sourcedir}/OHPC_macros %global pname boost %define major_version 1 %define minor_version 92 %define patch_version 0 %define version_exp %{major_version}_%{minor_version}_%{patch_version} Summary: Free peer-reviewed portable C++ source libraries Name: %{pname}-%{compiler_family}-%{mpi_family}%{PROJ_DELIM} Version: %{major_version}.%{minor_version}.%{patch_version} Release: 1%{?dist} License: Boost Group: %{PROJ_NAME}/parallel-libs Url: http://www.boost.org Source0: https://archives.boost.io/release/%{version}/source/boost_%{version_exp}.tar.bz2 Patch0: boost-1.79.0-oneapi_pch.patch Patch1: boost-1.57.0-python-abi_letters.patch Patch2: boost-icpx-pthread.patch Patch3: boost-1.92.0-mpi_request_equality.patch %if 0%{?sle_version} BuildRequires: libbz2-devel BuildRequires: libexpat-devel BuildRequires: python3-numpy-devel %ifarch x86_64 BuildRequires: libquadmath0 %endif %else # Assume RHEL/Fedora distro BuildRequires: bzip2-devel BuildRequires: expat-devel BuildRequires: python3-numpy BuildRequires: glibc-devel %ifarch x86_64 BuildRequires: libquadmath-devel %endif %endif BuildRequires: make BuildRequires: which BuildRequires: dos2unix BuildRequires: gmp-devel BuildRequires: python3-devel BuildRequires: libstdc++-devel BuildRequires: libicu-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: %{procps} #!BuildIgnore: post-build-checks rpmlint-Factory # Default install paths %global install_path %{OHPC_LIBS}/%{compiler_family}/%{mpi_family}/%{pname}%{OHPC_CUSTOM_PKG_DELIM}/%version %global module_path %{OHPC_MODULEDEPS}/%{compiler_family}-%{mpi_family}/%{pname} %description Boost provides free peer-reviewed portable C++ source libraries. Boost emphasizes libraries that work well with the C++ Standard Library and are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages the use of Boost libraries for all users with minimal restrictions. %prep %setup -q -n %{pname}_%{version_exp} %patch -P 0 -p 1 %patch -P 1 -p 1 %patch -P 2 -p 1 %patch -P 3 -p 1 %build # OpenHPC compiler/mpi designation %ohpc_setup_compiler %if "%{compiler_family}" == "llvm" || "%{compiler_family}" == "arm1" %global toolset clang %else %if "%{compiler_family}" == "intel" %global toolset intel-linux %else %global toolset gcc %endif %endif %if "%{compiler_family}" == "arm1" which_armclang=$(which armclang) where_armclang=$(dirname ${which_armclang}) export PATH=${where_armclang}/../llvm-bin:$PATH %endif %if "%{mpi_family}" == "impi" && "%{compiler_family}" == "intel" export CC=mpiicc export CXX=mpiicpc %else export CC=mpicc export CXX=mpicxx %endif export MPICC=$CC export MPICXX=$CXX export RPM_OPT_FLAGS="$CFLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -Wno-deprecated-declarations" export RPM_LD_FLAGS # Truncate rather than append: this must start from a clean file each # %build run, so stale "using mpi : ..." content from a differently # configured earlier build of this same extracted tree (e.g. a # different mpi_family) can never linger and silently win over the # config this run actually generates below. cat << "EOF" > rpm-config.jam %if 0%{?rhel} >= 9 || 0%{?openEuler} using python : %{python3_version} : %{__python3} : /usr/include/python%{python3_version} ; %else using python : %{python3_version} : %{__python3} : /usr/include/python%{python3_version}m : : : : m ; %endif import os ; local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ; local MPI_DIR = [ os.environ MPI_DIR ] ; local MPICXX = [ os.environ MPICXX ] ; %if "%{compiler_family}" == "gnu14" || "%{compiler_family}" == "gnu15" || "%{compiler_family}" == "gnu16" using gcc : : : <compileflags>$(RPM_OPT_FLAGS) <linkflags>$(RPM_LD_FLAGS) ; %endif %if ("%{mpi_family}" == "mpich" || "%{mpi_family}" == "mvapich2") && "%{?OHPC_USE_CCACHE}" == "yes" # MPICH-derived wrappers built with ccache report "ccache g++ ..."; Boost.MPI strips # only one executable token when parsing wrapper output, so configure it # explicitly for these MPI families. using mpi : : <include>$(MPI_DIR)/include <library-path>$(MPI_DIR)/lib <find-shared-library>mpicxx <find-shared-library>mpi ; %else using mpi : $(MPICXX) ; %endif EOF # Generate b2 ./bootstrap.sh --with-libraries=all \ --prefix=%{install_path} \ --libdir=lib \ --with-python=python3 \ --with-toolset=%{toolset} || cat bootstrap.log # Perform the compilation ./b2 -d2 -q %{?_smp_mflags} --user-config=./rpm-config.jam \ address-model="64" \ %ifarch aarch64 %{arm} architecture="arm" \ %else %ifarch ppc64le architecture="power" \ %else architecture="x86" \ %endif %endif threading="multi" \ link="shared" \ runtime-link="shared" \ variant="release" \ toolset=%{toolset} %install %ohpc_setup_compiler mkdir -p %{buildroot}/%{_docdir} %if "%{compiler_family}" == "arm1" which_armclang=$(which armclang) where_armclang=$(dirname ${which_armclang}) export PATH=${where_armclang}/../llvm-bin:$PATH %endif %if "%{mpi_family}" == "impi" && "%{compiler_family}" == "intel" export CC=mpiicc export CXX=mpiicpc %else export CC=mpicc export CXX=mpicxx %endif export MPICC=$CC export MPICXX=$CXX ./b2 %{?_smp_mflags} --user-config=./rpm-config.jam \ --prefix=%{buildroot}/%{install_path} \ link="shared" \ runtime-link="shared" \ variant="release" \ toolset=%{toolset} install rm -rf %{buildroot}%{install_path}/lib/cmake mkdir -p %{buildroot}%{module_path} cat << EOF > %{buildroot}%{module_path}/%{version}%{OHPC_CUSTOM_PKG_DELIM} #%Module1.0##################################################################### proc ModulesHelp { } { puts stderr " " puts stderr "This module loads the %{pname} library built with the %{compiler_family}" puts stderr "compiler toolchain and the %{mpi_family} MPI stack." puts stderr "\nVersion %{version}\n" } module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_family} MPI" module-whatis "Version: %{version}" module-whatis "Category: runtime library" module-whatis "Description: %{summary}" module-whatis "%{url}" prepend-path INCLUDE %{install_path}/include prepend-path LD_LIBRARY_PATH %{install_path}/lib setenv %{PNAME}_DIR %{install_path} setenv %{PNAME}_ROOT %{install_path} setenv %{PNAME}_LIB %{install_path}/lib setenv %{PNAME}_INC %{install_path}/include family boost EOF # Set default version cat <<EOF >%{buildroot}%{module_path}/.version #%Module1.0##################################################################### set ModulesVersion "%{version}%{OHPC_CUSTOM_PKG_DELIM}" EOF %files %{install_path} %{module_path} %doc INSTALL %license LICENSE_1_0.txt
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.