Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP3:Update
trilinos.23919
trilinos.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File trilinos.spec of Package trilinos.23919
# # spec file # # Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %global flavor @BUILD_FLAVOR@%{nil} %bcond_with qt # Base package name %define pname trilinos # NOTE: once version > 13.2.0, remove lines between '@@' below! %define ver 13.2.0 %define ver_exp 13-2-0 %define so_ver 13 %define PNAME %(echo %{pname} | tr [a-z] [A-Z]) %define _ver %(echo %{ver} | tr . _) %define min_openblas_vers 0.3.6 # We don't compile .py files, so major version is sufficient %define use_python_version 3 # Don't even try this package on 32bit # - some modules require pointers of bigger size ExcludeArch: i586 s390 s390x ppc armv7l %if 0%{?sle_version} >= 150200 %define DisOMPI1 ExclusiveArch: do_not_build %endif %if !0%{?is_opensuse} && 0%{?sle_version:1} && 0%{?sle_version} < 150200 %define DisOMPI3 ExclusiveArch: do_not_build %endif %if 0%{?sle_version:1} && 0%{?sle_version} < 150300 %define DisOMPI4 ExclusiveArch: do_not_build %endif %if "%flavor" == "" ExclusiveArch: do_not_build %endif %define package_name %{pname} %if "%{flavor}" == "serial" %undefine c_f_ver %{bcond_with hpc} %endif %if "%{flavor}" == "mvapich2" %undefine c_f_ver %global mpi_family mvapich2 %{bcond_with hpc} %endif %if "%{flavor}" == "openmpi" %{?DisOMPI1} %undefine c_f_ver %global mpi_family openmpi %define mpi_ver 1 %{bcond_with hpc} %endif %if "%{flavor}" == "openmpi2" %{?DisOMPI2} %undefine c_f_ver %global mpi_family openmpi %define mpi_ver 2 %{bcond_with hpc} %endif %if "%{flavor}" == "openmpi3" %{?DisOMPI3} %undefine c_f_ver %global mpi_family openmpi %define mpi_ver 3 %{bcond_with hpc} %endif %if "%{flavor}" == "openmpi4" %{?DisOMPI4} %undefine c_f_ver %global mpi_family openmpi %define mpi_ver 4 %{bcond_with hpc} %endif %if "%{flavor}" == "gnu-mvapich2-hpc" %undefine c_f_ver %global mpi_family mvapich2 %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu-mpich-hpc" %undefine c_f_ver %global mpi_family mpich %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu-openmpi-hpc" %{?DisOMPI1} %undefine c_f_ver %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 1 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu-openmpi2-hpc" %{?DisOMPI2} %undefine c_f_ver %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 2 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu-openmpi3-hpc" %{?DisOMPI3} %undefine c_f_ver %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 3 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu-openmpi4-hpc" %{?DisOMPI4} %undefine c_f_ver %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 4 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu7-mvapich2-hpc" %define c_f_ver 7 %global mpi_family mvapich2 %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu7-mpich-hpc" %define c_f_ver 7 %global mpi_family mpich %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu7-openmpi-hpc" %{?DisOMPI1} %define c_f_ver 7 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 1 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu7-openmpi2-hpc" %{?DisOMPI2} %define c_f_ver 7 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 2 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu7-openmpi3-hpc" %{?DisOMPI3} %define c_f_ver 7 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 3 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu7-openmpi4-hpc" %{?DisOMPI4} %define c_f_ver 7 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 4 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu8-mvapich2-hpc" %define c_f_ver 8 %global mpi_family mvapich2 %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu8-mpich-hpc" %define c_f_ver 8 %global mpi_family mpich %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu8-openmpi-hpc" %{?DisOMPI1} %define c_f_ver 8 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 1 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu8-openmpi2-hpc" %{?DisOMPI2} %define c_f_ver 8 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 2 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu8-openmpi3-hpc" %{?DisOMPI3} %define c_f_ver 8 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 3 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu8-openmpi4-hpc" %{?DisOMPI4} %define c_f_ver 8 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 4 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu9-mvapich2-hpc" %define c_f_ver 9 %global mpi_family mvapich2 %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu9-mpich-hpc" %define c_f_ver 9 %global mpi_family mpich %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu9-openmpi-hpc" %{?DisOMPI1} %define c_f_ver 9 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 1 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu9-openmpi2-hpc" %{?DisOMPI2} %define c_f_ver 9 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 2 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu9-openmpi3-hpc" %{?DisOMPI3} %define c_f_ver 9 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 3 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu9-openmpi4-hpc" %{?DisOMPI4} %define c_f_ver 9 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 4 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu10-mvapich2-hpc" %define c_f_ver 10 %global mpi_family mvapich2 %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu10-mpich-hpc" %define c_f_ver 10 %global mpi_family mpich %global compiler_family gnu %{bcond_without hpc} %endif %if "%{flavor}" == "gnu10-openmpi-hpc" %{?DisOMPI1} %define c_f_ver 10 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 1 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu10-openmpi2-hpc" %{?DisOMPI2} %define c_f_ver 10 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 2 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu10-openmpi3-hpc" %{?DisOMPI3} %define c_f_ver 10 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 3 %{bcond_without hpc} %endif %if "%{flavor}" == "gnu10-openmpi4-hpc" %{?DisOMPI4} %define c_f_ver 10 %global mpi_family openmpi %global compiler_family gnu %define mpi_ver 4 %{bcond_without hpc} %endif %if "%{flavor}" == "documentation-hpc" %{bcond_without hpc} %{bcond_without doc} %else %if "%{flavor}" == "documentation" %{bcond_with hpc} %{bcond_without doc} %else %{bcond_with doc} %endif %endif %if !0%{?is_opensuse} && !0%{?with_hpc:1} ExclusiveArch: do_not_build %endif %{?mpi_family:%{bcond_without mpi}}%{!?mpi_family:%{bcond_with mpi}} %{?with_mpi:%{!?mpi_family:error "No MPI family specified!"}} # For compatibility package names %if "%{mpi_family}" != "openmpi" || "%{mpi_ver}" != "1" || 0%{?suse_version} >= 1550 %define mpi_ext %{?mpi_ver} %endif %if 0%{?sle_version} && 0%{?sle_version} < 150400 %define python_flavor python%{use_python_version} %endif %if %{without hpc} %if %{with mpi} %define p_prefix %{_libdir}/mpi/gcc/%{mpi_family}%{?mpi_ext} %define mpi_suffix -%{mpi_family}%{?mpi_ext} %else %define p_prefix %{_prefix} %endif %define p_includedir %{p_prefix}/include/%{pname} %define p_libdir %{p_prefix}/%{_lib} %define p_bindir %{p_prefix}/bin %define package_name %{pname}%{?mpi_suffix} %define libname lib%{pname}%{?so_ver}%{?mpi_suffix} %if %{without mpi} %define p_python_sitelib %{expand:%python%{use_python_version}_sitelib} %else %define p_python_sitelib %{expand:%(source %{p_bindir}/mpivars.sh; \\\ var=${PATH%%%%:*};var=${var%%/bin}; \\\ python%{use_python_version} -c "import sysconfig as s; \\\ print(s.get_paths(vars={'base': \\"$var\\"}).get('purelib'));")} %endif %else %{hpc_init %{?compiler_family:-c %compiler_family %{?c_f_ver:-v %{c_f_ver}}} %{?with_mpi:-m {%mpi_family}} %{?mpi_ver:-V %{mpi_ver}} %{?ext:-e %{ext}}} %define package_name %{hpc_package_name %_ver} %define p_prefix %{hpc_prefix} %define p_includedir %hpc_includedir %define p_libdir %hpc_libdir %define p_bindir %hpc_bindir %define libname lib%{name} %undefine _hpc_python3 %define p_python_sitelib %hpc_python_sitelib %endif Name: %package_name Version: %ver Release: 0 Summary: A collection of libraries of numerical algorithms License: LGPL-2.0-only Group: Productivity/Scientific/Math URL: http://trilinos.sandia.gov/index.html Source0: https://github.com/trilinos/Trilinos/archive/trilinos-release-%{ver_exp}.tar.gz Patch0: Fix-control-reaches-end-of-non-void-function-error.patch Patch1: Convert-python2-isms-to-python3.patch Patch2: Not-a-shell-script.patch Patch3: Make-include-and-library-path-configurable-using-Cmake-variables.patch BuildRequires: cmake >= 2.8 BuildRequires: fdupes BuildRequires: hwloc-devel BuildRequires: python%{use_python_version}-base BuildRequires: python-rpm-macros %if 0%{?sle_version} > 150100 || 0%{?suse_version} > 1500 BuildRequires: ninja %endif %if %{with qt} BuildRequires: libqt4-devel %endif BuildRequires: memory-constraints BuildRequires: swig > 2.0.0 BuildRequires: xz BuildRequires: zlib-devel %{?with_hpc:BuildRequires: suse-hpc >= 0.5.20220206} %if %{with doc} BuildRequires: doxygen BuildRequires: expat BuildRequires: graphviz BuildRequires: libxml2-devel BuildRequires: perl %else %if %{with hpc} BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel BuildRequires: %{mpi_family}%{?mpi_ext}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel # Fix this once boost is available as a HPC version BuildRequires: boost-devel #BuildRequires: boost-%%{compiler_family}-hpc-devel BuildRequires: hdf5-%{compiler_family}-%{mpi_family}%{?mpi_ext}-hpc-devel BuildRequires: libopenblas-%{compiler_family}-hpc >= %{min_openblas_vers} BuildRequires: libopenblas-%{compiler_family}-hpc-devel BuildRequires: netcdf-%{compiler_family}-%{mpi_family}%{?mpi_ext}-hpc-devel # hpc %else BuildRequires: boost-devel BuildRequires: cppunit-devel BuildRequires: gcc-c++ BuildRequires: gcc-fortran BuildRequires: glpk-devel BuildRequires: lapack-devel BuildRequires: libmatio-devel BuildRequires: mumps-devel BuildRequires: openblas-devel BuildRequires: superlu-devel %if %{without mpi} BuildRequires: hdf5-devel BuildRequires: netcdf-devel BuildRequires: scotch-devel BuildRequires: umfpack-devel %else BuildRequires: blacs-devel-headers BuildRequires: hdf5-%{mpi_family}%{?mpi_ext}-devel BuildRequires: hypre-%{mpi_family}%{?mpi_ext}-devel BuildRequires: mumps-%{mpi_family}%{?mpi_ext}-devel BuildRequires: netcdf-%{mpi_family}%{?mpi_ext}-devel BuildRequires: ptscotch-%{mpi_family}%{?mpi_ext}-devel BuildRequires: scalapack-%{mpi_family}%{?mpi_ext}-devel %endif # hpc %endif # FIXME: Serial package is currently not pulling in library Requires: %libname = %version # doc %endif #!BuildIgnore: post-build-checks # Default library install path %description Trilinos is a collection of compatible software packages that support parallel linear algebra computations, solution of linear, non-linear and eigen systems of equations and related capabilities. The majority of packages are written in C++ using object-oriented techniques. All packages are self-contained, with the Trilinos top layer providing a common look-and-feel and infrastructure. %if %{without doc} %package -n %{libname} Summary: A collection of libraries of numerical algorithms # only used for HPC Group: System/Libraries %if %{with hpc} %hpc_requires Requires: %{compiler_family}%{?c_f_ver}-compilers-hpc Requires: %{mpi_family}%{?mpi_ver}-%{compiler_family}%{?c_f_ver}-hpc # Fix this once boost is available as a HPC version #Requires: boost-%%{compiler_family}-hpc %{requires_eq libhdf5%{hpc_package_name_tail}} %{requires_eq libnetcdf%{hpc_package_name_tail}} %{requires_eq libopenblas-%{compiler_family}-hpc} Requires: lua-lmod >= 7.6.1 # @@ # Drop once version > 13.2.0! %if 0%{sle_version} Obsoletes: %{libname}%{so_ver} Provides: %{libname}%{so_ver} = %version %endif # @@ %endif %description -n %{libname} Trilinos is a collection of compatible software packages that support parallel linear algebra computations, solution of linear, non-linear and eigen systems of equations and related capabilities. The majority of packages are written in C++ using object-oriented techniques. All packages are self-contained, with the Trilinos top layer providing a common look-and-feel and infrastructure. This subpackage contains the shared libraries. %package devel Summary: Headers and development files for %{package_name} Group: Development/Libraries/C and C++ Requires: %libname = %version %if %{without hpc} Requires: glpk-devel Requires: swig Recommends: %{name}-doc Recommends: %{pname}-python%{use_python_version}-devel = %version Conflicts: exodusii-devel %if %{without mpi} Requires: hdf5-devel Requires: lapack-devel Requires: libxml2-devel Requires: mumps-devel Requires: netcdf-devel Requires: scotch-devel Requires: suitesparse-common-devel Requires: umfpack-devel Conflicts: kokkos-devel %else Requires: blacs-devel-headers Requires: hdf5-%{mpi_family}%{?mpi_ext}-devel Requires: hypre-%{mpi_family}%{?mpi_ext}-devel Requires: mumps-%{mpi_family}%{?mpi_ext}-devel Requires: netcdf-%{mpi_family}%{?mpi_ext}-devel Requires: ptscotch-%{mpi_family}%{?mpi_ext}-devel Requires: scalapack-%{mpi_family}%{?mpi_ext}-devel %endif # hpc %else %hpc_requires_devel Requires: %{compiler_family}%{?c_f_ver}-compilers-hpc Requires: %{mpi_family}%{?mpi_ver}-%{compiler_family}%{?c_f_ver}-hpc # Fix this once boost is available as a HPC version #Requires: boost-%%{compiler_family}-hpc %{requires_eq hdf5%{hpc_package_name_tail}-devel} %{requires_eq libopenblas-%{compiler_family}-hpc-devel} %{requires_eq netcdf%{hpc_package_name_tail}-devel} # hpc %endif Obsoletes: %{name} <= %version %description devel Trilinos is a collection of compatible software packages that support parallel linear algebra computations, solution of linear, non-linear and eigen systems of equations and related capabilities. The majority of packages are written in C++ using object-oriented techniques. All packages are self-contained, with the Trilinos top layer providing a common look-and-feel and infrastructure. This package contains the headers and libraries files for %{package_name} needed for development. %if %{with hpc} %{hpc_master_package -l -L} %{hpc_master_package -L -O %{pname}%{hpc_package_name_tail} devel} %endif %prep %setup -q -n Trilinos-trilinos-release-%{ver_exp} %autopatch -p1 %build # https://en.opensuse.org/openSUSE:Build_system_recipes#cmake %if 0%{?sle_version} > 150100 || 0%{?suse_version} > 1500 %define __builder ninja %endif # This fixes up the memoryperjob _constraint. On some architectures # there are no workers where totalmemory >= jobs * memoryperjob # Use memoryperjob to let the OBS choose reasonable workers %limit_build -m 1500 # Fix this once boost is available as a HPC version # move this to the non-hpc section BOOST_INC=%{_incdir}/boost BOOST_LIB=%{_libdir} # %if %{with hpc} %hpc_setup %hpc_setup_mpi # Fix this once boost is available as a HPC version #module load boost module load netcdf module load %{?with_mpi:p}hdf5 module load openblas %endif export OLDPWD=.. %if %{without hpc} %if %{with mpi} source %{p_bindir}/mpivars.sh OPENBLAS_LIB=%{_incdir}/openblas NETCDF_INC=%{p_incdir} NETCDF_LIB=%{p_libdir} HDF5_INC=%{p_incdir} HDF5_LIB=%{p_libdir} %endif %cmake \ %else # CAVE: Logic in TribitsWriteClientExportFiles.cmake: # "H) Create the cmake Config.cmake file for the install tree." # Trilinos_INSTALL_{LIB,INCLUDE}_DIR must both be relative paths %hpc_cmake \ %endif -DCMAKE_INSTALL_PREFIX=%{p_prefix} \ -DCMAKE_EXE_LINKER_FLAGS:STRING="-fPIC" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \ -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ -DCMAKE_SKIP_RPATH:BOOL=ON \ -DTrilinos_INSTALL_LIB_DIR:STRING=%{_lib} \ %if %{without hpc} -DTrilinos_INSTALL_INCLUDE_DIR:STRING=include/%{pname} \ %endif -DTrilinos_VERBOSE_CONFIGURE:BOOL=ON \ -DTrilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ -DTrilinos_EXTRA_LINK_FLAGS:STRING="-lgfortran" \ -DTrilinos_ENABLE_Epetra:BOOL=ON \ -DTrilinos_ENABLE_Gtest:BOOL=OFF \ -DTrilinos_ENABLE_MueLu:BOOL=ON \ -DTrilinos_ENABLE_Phalanx:BOOL=ON \ -DTrilinos_ENABLE_Stokhos:BOOL=ON \ -DTrilinos_ENABLE_Didasko:BOOL=ON \ -DTrilinos_ENABLE_ROL:BOOL=%{?sle_version:OFF}%{!?sle_version:ON}\ -DTrilinos_ENABLE_TrilinosCouplings:BOOL=ON \ -DTrilinos_ENABLE_PyTrilinos:BOOL=OFF \ -DTrilinos_ENABLE_CTrilinos:BOOL=ON \ -DTrilinos_ENABLE_ForTrilinos:BOOL=ON \ -DTrilinos_ENABLE_EXAMPLES:BOOL=OFF \ -DTrilinos_ENABLE_STK:BOOL=OFF \ -DTrilinos_ENABLE_TESTS:BOOL=OFF \ -DTrilinos_ENABLE_OpenMP:BOOL=ON \ -DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON \ -DTEUCHOS_ENABLE_expat:BOOL=ON \ -DTEUCHOS_ENABLE_libxml2:BOOL=ON \ -DTEUCHOS_ENABLE_gmp:BOOL=ON \ -DTPL_ENABLE_BLAS:BOOL=ON \ -DBLAS_LIBRARY_DIRS:PATH="${OPENBLAS_LIB}" \ -DBLAS_LIBRARY_NAMES:STRING="openblas" \ -DTPL_ENABLE_LAPACK:BOOL=ON \ -DLAPACK_LIBRARY_DIRS:PATH="${OPENBLAS_LIB}" \ -DLAPACK_LIBRARY_NAMES:STRING="openblas" \ -DTPL_ENABLE_MPI:BOOL=%{?with_mpi:ON}%{!?with_mpi:OFF} \ %if %{with mpi} -DMPI_C_COMPILER:FILEPATH=mpicc \ -DMPI_CXX_COMPILER:FILEPATH=mpicxx \ -DMPI_FORTRAN_COMPILER:FILEPATH=mpif90 \ %endif -DTPL_ENABLE_Netcdf:BOOL=ON \ %if %{with hpc} || %{with mpi} -DNetcdf_INCLUDE_DIRS:PATH="${NETCDF_INC}" \ -DNetcdf_LIBRARY_DIRS:PATH="${NETCDF_LIB}" \ %endif -DTPL_ENABLE_HDF5:BOOL=ON \ %if %{with hpc} || %{with mpi} -DHDF5_INCLUDE_DIRS:PATH="${HDF5_INC}" \ -DHDF5_LIBRARY_DIRS:PATH="${HDF5_LIB}" \ %endif -DHDF5_LIBRARY_NAMES:STRING="hdf5" \ -DTPL_ENABLE_Boost:BOOL=ON \ %if %{with hpc} || %{with mpi} -DBoost_INCLUDE_DIRS:PATH="${BOOST_INC}" \ -DBoost_LIBRARY_DIRS:PATH="${BOOST_LIB}" \ %endif -DBoost_LIBRARY_NAMES:STRING="boost" \ -DTPL_ENABLE_Pthread:BOOL=ON \ -DTPL_ENABLE_CppUnit:BOOL=OFF \ -DTPL_ENABLE_Zlib:BOOL=ON \ -DTPL_ENABLE_QT:BOOL=%{?with_qt:ON}%{!?with_qt:OFF} \ -DTPL_ENABLE_Matio=OFF \ -DTPL_ENABLE_GLM=OFF \ .. # -DTPL_ENABLE_SuperLU:BOOL=ON \ # -DTPL_ENABLE_MUMPS:BOOL=ON \ # -DMUMPS_LIBRARY_DIRS:PATH=%%{_libdir}/mpi/gcc/openmpi/%%{_lib} \ # -DMUMPS_INCLUDE_DIRS:PATH=%%{_includedir}/mumps \ # -DTPL_ENABLE_AMD:BOOL=ON \ # -DAMD_INCLUDE_DIRS:PATH=%%{_includedir}/suitesparse \ # -DTPL_ENABLE_UMFPACK:BOOL=ON \ # -DUMFPACK_INCLUDE_DIRS:PATH=%%{_includedir}/suitesparse \ # -DTPL_ENABLE_Scotch:BOOL=ON \ # -DScotch_LIBRARY_DIRS:PATH=%%{p_libdir} \ # -DScotch_INCLUDE_DIRS:PATH=%%{p_includedir} \ # -DTPL_ENABLE_HYPRE:BOOL=%%{?with_mpi:ON}%%{!?with_mpi:OFF} \ # -DHYPRE_INCLUDE_DIRS:PATH=%%{p_includedir}/hypre \ # -DHYPRE_LIBRARY_DIRS:PATH=%%{p_libdir} \ # -DTPL_ENABLE_SCALAPACK:BOOL=ON \ # -DSCALAPACK_LIBRARY_DIRS:PATH="${MKLROOT}/lib/intel64" \ # -DSCALAPACK_LIBRARY_NAMES:STRING="mkl_rt" \ # -DTPL_ENABLE_BLACS:BOOL=ON \ # -DBLACS_LIBRARY_DIRS:PATH="$MKLROOT/lib/intel64" \ # -DBLACS_INCLUDE_DIRS:PATH="$MKLROOT/include" \ # -DBLACS_LIBRARY_NAMES:STRING="mkl_rt" \ %make_jobs cd .. %install %{?with_hpc:%hpc_setup} %{?with_hpc:%hpc_setup_mpi} %cmake_install mkdir -p %{buildroot}%p_python_sitelib/%pname # Python2 is history rm -f %{buildroot}%{p_prefix}/lib/*2.py mv %{buildroot}%{p_prefix}/lib/*.py %{buildroot}%{p_python_sitelib}/%pname chmod a-x %{buildroot}%{p_python_sitelib}/%pname/*.py %if %{with hpc} %hpc_shebang_sanitize_scripts %{buildroot}%{p_libdir}/cmake %hpc_shebang_sanitize_scripts %{buildroot}%{p_python_sitelib}/%pname %hpc_write_modules_files #%%Module1.0##################################################################### proc ModulesHelp { } { puts stderr " " puts stderr "This module loads the %{pname} library built with the %{compiler_family} compiler" puts stderr "toolchain and the %{mpi_family}%{?mpi_ver} MPI stack." puts stderr "\nVersion %{version}\n" } module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_family}%{?mpi_ver} MPI" module-whatis "Version: %{version}" module-whatis "Category: runtime library" module-whatis "Description: %{SUMMARY}" module-whatis "URL %{url}" set version %{version} prepend-path PATH %{hpc_bindir} if {[file isdirectory %{hpc_includedir}]} { prepend-path INCLUDE %{hpc_includedir} } prepend-path LD_LIBRARY_PATH %{hpc_libdir} prepend-path PYTHONPATH %{p_python_sitelib} setenv %{PNAME}_DIR %{hpc_prefix} setenv %{PNAME}_BIN %{hpc_bindir} if {[file isdirectory %{hpc_includedir}]} { setenv %{PNAME}_INC %{hpc_includedir} prepend-path CPATH %{hpc_includedir} prepend-path C_INCLUDE_PATH %{hpc_includedir} prepend-path CPLUS_INCLUDE_PATH %{hpc_includedir} } setenv %{PNAME}_LIB %{hpc_libdir} depends-on openblas depends-on %{?with_mpi:p}hdf5 depends-on %{?with_mpi:p}netcdf #depends-on boost EOF %endif # cleanup find %{buildroot}%{p_prefix} -name .gitignore -delete %fdupes %{buildroot}/%{p_includedir} %fdupes %{buildroot}/%{p_libdir}/cmake %{?with_hpc:%{hpc_shebang_sanitize_scripts %{buildroot}/%{p_libdir}/cmake}} %{?with_hpc:%{hpc_shebang_sanitize_scripts %{buildroot}/%{p_bindir}}} %{?with_hpc:%{hpc_shebang_sanitize_scripts doc/}} for i in $(find %{buildroot}/%{p_libdir}/cmake -name "*.sh" -o -name "*.py"); do head -1 $i | grep -qE "#! */" && chmod 0755 $i done %if %{without hpc} && %{without mpi} %post -n %{libname} -p /sbin/ldconfig %postun -n %{libname} -p /sbin/ldconfig %else # For HPC or MPI do not rebuild the cache on non-standard directories %post -n %{libname} /sbin/ldconfig -N %{p_libdir} %postun -n %{libname} /sbin/ldconfig -N %{p_libdir} %hpc_module_delete_if_default %endif %files -n %{libname} %doc README RELEASE_NOTES %license LICENSE Copyright.txt %{?with_hpc:%dir %{p_libdir}} %{?hpc_dirs} %{?hpc_modules_files} %{p_libdir}/*.so.* %files devel %{p_includedir} %{p_libdir}/cmake %{p_libdir}/*.so %{p_bindir}%{!?hpc:/*} %{?with_hpc:%dir %{p_python_sitelib}} %{p_python_sitelib}/%{pname} # doc %endif ############################################################################# # Build documentation only ############################################################################# %if %{with doc} %package doc Summary: The documentation and HTML files for %{name} Group: Documentation/HTML BuildArch: noarch %description doc Trilinos is a collection of compatible software packages that support parallel linear algebra computations, solution of linear, non-linear and eigen systems of equations and related capabilities. The majority of packages are written in C++ using object-oriented techniques. All packages are self-contained, with the Trilinos top layer providing a common look-and-feel and infrastructure. This package contains the Trilinos HTML documentation. %{?with_hpc:%{hpc_master_package doc}} %prep %setup -q -n Trilinos-trilinos-release-%{ver_exp} %build # Build the doc echo "HTML_TIMESTAMP=NO" >> packages/common/Doxyfile find packages/ -name 'footer.html' -print0 | xargs -0 sed -i 's/ on \$datetime//' find packages/ -name 'Doxyfile*' -print0 | xargs -0 sed -i 's/HTML_TIMESTAMP = YES/HTML_TIMESTAMP = NO/' cd doc perl ./build_docs.pl cd .. # move html files in a single directory for doc package find ./ -type d -name html -print0 | xargs -0 -I '{}' cp --parent -r '{}' doc/ test -d doc/doc && rm -rf doc/doc test -f doc/build_docs.pl && rm -f doc/build_docs.pl sed -i s/href=\"\.\./href=\"\./ doc/index.html %fdupes -s doc/ %install # cleanup find doc/ -name .gitignore -delete find doc/ -name *do-configure -exec chmod 644 {} \; find doc/ -name *copy_xml_to_src_html.py -exec chmod 644 {} \; find doc/ \( -name "*.gif" -o -name "*.jpg" \) -exec chmod a-x {} \; %files doc %doc doc/* # doc %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor