Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37505599
en ru br
ALT Linux repos
S:5.3-alt9
5.0: 3.1-alt1
4.1: 3.1-alt0.M41.1

Group :: Development/C++
RPM: getfemxx

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

%define sover 5
%define libgetfem libgetfem%sover
%add_python3_req_skip _getfem

%define rname getfem
Name: getfemxx
Version: 5.3
Release: alt9

Group: Development/C++
Summary: Generic and efficient C++ library for finite element methods
Url: http://getfem.org/
License: LGPLv2+

Provides: %rname = %EVR
Obsoletes: %rname < %EVR

Source0: getfem-%version.tar
Patch1: alt-ppc64le.patch
Patch2: getfemxx-ax-python.patch

BuildRequires(pre): rpm-build-python3
BuildRequires: boost-devel gcc-c++ gcc-fortran glibc-devel python3-devel
BuildRequires: libnumpy-py3-devel python3-module-scipy python3-module-mpi4py
%ifnarch %{arm} aarch64 ppc64le
#BuildRequires: scilab
%endif

BuildPreReq: libmuparser-devel libmumps-devel
BuildPreReq: liblapack-devel
#libsuperlu-devel

%description
The Getfem++ project focuses on the development of a generic and
efficient C++ library for finite element methods. The goal is to provide
a library allowing the computation of any elementary matrix (even for
mixed finite element methods) on the largest class of methods and
elements, and for arbitrary dimension (i.e. not only 2D and 3D
problems).

%package -n %libgetfem
Group: System/Libraries
Summary: %rname library
Provides: libgetfemxx = %EVR
Obsoletes: libgetfemxx < %EVR
%description -n %libgetfem
%rname library

%package -n python3-module-getfem
Summary: Python bindings to %name
Group: Development/Python
%description -n python3-module-getfem
Python bindings to %name


%prep
%setup -n %rname-%version
%patch1 -p1
%patch2 -p2
%ifarch %e2k
# broken lib64 test
sed -i 's/|sparc64|/&e2k|/' m4/ax_boost_base.m4
%endif
%autoreconf

ln -sf %__python3 bin/python

%build
export PATH=$PWD/bin:$PATH
%add_optflags -fno-strict-aliasing -fpermissive -I%_includedir/metis0 -I%_includedir/mumps
export CFLAGS="%optflags" CXXFLAGS="%optflags"
%undefine _configure_gettext
%configure \
--disable-static \
--enable-shared \
--enable-boost \
--enable-mumps \
--with-mumps="dmumps zmumps smumps cmumps mumps_common pord" \
--with-blas=openblas \
--with-pic \
--with-matlab-toolbox-dir=%_datadir/getfem_toolbox \
--enable-python3 \
# --enable-qhull \
#
CUT_CFLAGS=`grep "^CXXFLAGS" Makefile | head -n 1| sed "s|^CXXFLAGS[[:space:]][[:space:]]*=||"`
%make_build CFLAGS="$CUT_CFLAGS"

%install
%makeinstall_std

%if "%python3_sitelibdir_noarch/getfem" != "%python3_sitelibdir/getfem"
mv %buildroot%python3_sitelibdir_noarch/getfem/* \
%buildroot%python3_sitelibdir/getfem/
%endif

mkdir -p %buildroot%__python3_dynlibdir
install -m 0644 \
   interface/src/python/_getfem.cpython*.so \
   %buildroot%python3_sitelibdir/

%files
%doc NEWS AUTHORS
%_datadir/getfem_toolbox
%_bindir/getfem-config
%_includedir/getfem
%_includedir/getfem_boost
%_includedir/gmm
%_libdir/*.so

%files -n %libgetfem
%_libdir/*.so.*

%files -n python3-module-getfem
%python3_sitelibdir/getfem
%python3_sitelibdir/*getfem*.so

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin