Sophie

Sophie

distrib > Mageia > 5 > i586 > by-pkgid > a9f15ec741a5d54685ef5db0f5da5710 > files > 15

elmer-7.0-0.svn6359.7.mga5.src.rpm

%global __requires_exclude    libR|libf77blas|devel\\(

# fix weird i586 only link error in fem/configure when checking for mpi
# /usr/bin/ld: /home/pcpa/rpm/BUILD/elmer-6.0.5452/mathlibs/src/parpack/libparpack.a(pdmout.o)(.debug_info+0x50f): unresolvable R_386_32 relocation against symbol `mpi_fortran_argv_null_'
%define _disable_ld_as_needed   1

# svn trunk
%define svnsnapshot     6359

%define unpack_dir      %{name}-%{version}-%{svnsnapshot}

%define mpi_inc_dir     %{multiarch_includedir} -I%{_includedir}

%define eio_incs        -I%{_builddir}/%{unpack_dir}/eio/include
%define eioc_libs       -L%{_builddir}/%{unpack_dir}/eio/src -leioc
%define eiof_libs       -L%{_builddir}/%{unpack_dir}/eio/src -leiof

%define huti_incs       -I%{_builddir}/%{unpack_dir}/hutiter/src
%define huti_libs       -L%{_builddir}/%{unpack_dir}/hutiter/src -lhuti

%define matc_incs       -I%{_builddir}/%{unpack_dir}/matc/src
%define matc_libs       -L%{_builddir}/%{unpack_dir}/matc/src -lmatc -lm

#define lapack_libs     -L%{_builddir}/%{unpack_dir}/mathlibs/src/lapack -llapack
#define arpack_libs     -L%{_builddir}/%{unpack_dir}/mathlibs/src/arpack -larpack
# The mpi libraries come from "pkg-config --libs ompi-f90"
%define parpack_libs    -L%{_builddir}/%{unpack_dir}/mathlibs/src/parpack -lparpack -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
%define elmerparam_incs -I%{_builddir}/%{unpack_dir}/elmerparam/src
%define elmerparam_libs -L%{_builddir}/%{unpack_dir}/elmerparam/src -lelmerparam

%define modules         matc mathlibs elmergrid meshgen2d eio hutiter fem post elmerparam front

%define         ELMER_HOME              %{_datadir}/%{name}
%define         ELMERGUI_HOME           %{ELMER_HOME}/bin
%define         ELMER_POST_HOME         %{ELMER_HOME}

Name:           elmer
Group:          Sciences/Physics
License:        GPL
Summary:        Open Source Finite Element Software for Multiphysical Problems
Version:        7.0
Release:        %mkrel -c svn%{svnsnapshot} 7
URL:            http://www.csc.fi/english/pages/elmer
# svn co svn checkout svn://svn.code.sf.net/p/elmerfem/code/trunk elmerfem
# mv elmerfem elmer-%{unpack_dir}
# rm -fr elmer-%{unpack_dir}/.svn
# tar Jcf elmer-%{unpack_dir}.tar.xz elmer-%{unpack_dir}
Source0:        elmer-%{version}-%{svnsnapshot}.tar.xz
Source1:        ftp://ftp.funet.fi/index/elmer/doc/ElmerTutorials.pdf

#-----------------------------------------------------------------------
BuildRequires:  R-base
BuildRequires:  suitesparse-devel
BuildRequires:  ffmpeg-devel
BuildRequires:  ftgl-devel
BuildRequires:  gcc-gfortran
BuildRequires:  libatlas-devel
BuildRequires:  arpack-devel
BuildRequires:  parpack-devel
BuildRequires:  libglu-devel
BuildRequires:  libqwt-devel
BuildRequires:  libqwtplot3d-devel
BuildRequires:  opencascade-devel
BuildRequires:  openmpi-devel
BuildRequires:  python-qt4
BuildRequires:  qt4-devel
BuildRequires:  readline-devel
BuildRequires:  tcl-devel
BuildRequires:  tk-devel
BuildRequires:  vtk-devel >= 6.0
BuildRequires:  python-devel
BuildRequires:  lapack-devel
Requires:       libatlas
Requires:       R-base

#-----------------------------------------------------------------------
Patch0:         elmer-6.0-tcl8.6.patch
Patch1:         elmer-6.0-install.patch
Patch2:         elmer-6.0-check-argv.patch
Patch3:         elmer-6.0-qt4.patch
Patch4:         elmer-6.0-format.patch
Patch5:         elmer-6.0-env.patch
Patch6:         elmer-6.0-qstring.patch
Patch7:         elmer-6.0-elmerclips.patch
Patch8:         elmer-7.0-contig.patch
Patch9:         elmer-7.0-mga-codec-fix.patch
Patch10:        elmer-7.0-mga-vtk.patch
Patch11:        elmer-7.0-mga-rfix.patch

#-----------------------------------------------------------------------
%description
Elmer is an open source multiphysical simulation software developed by CSC.
Elmer development was started 1995 in collaboration with Finnish Universities,
research institutes and industry.

Elmer includes physical models of fluid dynamics, structural mechanics,
electromagnetics, heat transfer and acoustics, for example. These are
described by partial differential equations which Elmer solves by the
Finite Element Method (FEM).

#------------------------------------------------------------------------
%prep
%setup -q -n %{unpack_dir}

%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1

# Overwrite the installed version with the more complete one
cp -f fem/src/SOLVER.KEYWORDS front/src/lib/SOLVER.KEYWORDS
sed -i -e s/CodecID/AVCodecID/g utils/ElmerClips/src/encoder.cpp

#------------------------------------------------------------------------
%build
export ELMER_HOME=%{ELMER_HOME}
export ELMERGUI_HOME=%{ELMERGUI_HOME}
export ELMER_POST_HOME=%{ELMER_POST_HOME}
export CC=gcc; export CXX=g++; export FC=gfortran; export F77=gfortran

# elmerparam doesn't use --with-matc
perl -pi                                                \
        -e 's|-L\@prefix\@/lib -lmatc|%{matc_libs}|;'   \
        elmerparam/src/Makefile.in

perl -pi                                                \
        -e 's|^SUBDIRS = .*|SUBDIRS = parpack|;'        \
        mathlibs/src/Makefile.in


for m in %{modules}; do
    pushd $m
    %configure2_5x                                      \
        --prefix=%{ELMER_HOME}                          \
        --with-mpi                                      \
        --with-mpidir=%{_prefix}                        \
        --with-mpi-lib-dir=%{_libdir}                   \
        --with-mpi-inc-dir="%{mpi_inc_dir}"             \
        --with-blas='-L%{_libdir}/atlas -lf77blas'      \
        --with-lapack='-L%{_libdir} -llapack'           \
        --with-tcltk='-L%{_libdir} -ltcl -ltk'          \
        --with-huti='%{huti_libs}'                      \
        --with-eioc='%{eioc_libs}'                      \
        --with-eiof='%{eiof_libs}'                      \
        --with-arpack='%{arpack_libs}'                  \
        --with-parpack='%{parpack_libs}'                \
        --with-matc='%{matc_libs}'                      \
        --with-stdcxxlib='-lstdc++'
    FFLAGS=`echo $FFLAGS | sed -e 's|-Wformat ||' -e 's|-Werror=format-security ||'`
    if [ x$m = "xfem" ]; then
        FFLAGS="$FFLAGS -frepack-arrays"
        perl -pi -e 's|\bCONTIG\b||;' src/*.src
    fi
    make                                                \
        CXXFLAGS='%{eio_incs} %{huti_incs} %{matc_incs} -fPIC'  \
        CFLAGS='%{eio_incs} %{huti_incs} %{matc_incs} -fPIC'    \
        FFLAGS="$FFLAGS -fopenmp -fPIC -I%{mpi_inc_dir}"                \
        FCPPFLAGS='-P -traditional-cpp -I. %{huti_incs} -DFULL_INDUCTION -DUSE_ARPACK' \
        STDCXX_LIBS="-lstdc++"
    popd
done

pushd ElmerGUI
    perl -pi                                            \
	-e 's|VTK_LIBPATH\s*=\s*/usr/lib\b|VTK_LIBPATH = /usr/lib/vtk|;' \
        ElmerGUI.pri
    echo "DEFINES += vtkRenderingCore_AUTOINIT=4\\\(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL\\\)" >> ElmerGUI.pri
    echo "DEFINES += vtkRenderingVolume_AUTOINIT=1\\\(vtkRenderingVolumeOpenGL\\\)" >> ElmerGUI.pri
    %ifarch x86_64 ppc64
    perl -pi                                            \
        -e 's|/usr/lib\b|%{_libdir}|;'                  \
        -e 's|(BITS =) 32|$1 64|;'                      \
        ElmerGUI.pri
    %endif
    CXXFLAGS=-fPIC \
     qmake
    %make Application/Makefile
    perl -pi                                            \
        -e 's|-Wl,--as-needed||;'                       \
        Application/Makefile

    make
popd

pushd ElmerGUIlogger
    qmake -project
    qmake
    %make
popd

pushd ElmerGUItester
    qmake
    %make
popd

pushd misc/tetgen_plugin
    qmake
    %make
popd

pushd utils/ElmerClips
    qmake
    %make
popd

#------------------------------------------------------------------------
%install
export ELMER_HOME=%{ELMER_HOME}
export ELMERGUI_HOME=%{ELMERGUI_HOME}
export ELMER_POST_HOME=%{ELMER_POST_HOME}

mkdir -p %{buildroot}%{ELMER_HOME}/{bin,lib,include} %{buildroot}%{_libdir}/R

perl -pi                                                                \
        -e 's|\$\(DESTDIR\)\$\(DESTDIR\)|\$\(DESTDIR\)|g;'              \
        elmerparam/src/R/Makefile
perl -pi                                                                \
        -e 's|(PKG_CPPFLAGS = ).*|$1%{elmerparam_incs}|;'               \
        -e 's|(PKG_LIBS = ).*|$1%{elmerparam_libs} %{matc_libs}|;'      \
        elmerparam/src/R/elmerparam/src/Makevars

perl -pi                                                                \
        -e 's|/usr/local/|%{_prefix}/|g;'                               \
        ElmerGUI/Application/Makefile

export CC=gcc; export CXX=g++; export FC=gfortran; export F77=gfortran
for m in %{modules} ElmerGUI ElmerGUIlogger ElmerGUItester misc/tetgen_plugin utils/ElmerClips; do
    pushd $m
%makeinstall_std INSTALL_ROOT=%{buildroot}
    popd
done

# cannot disable build of these
rm -f %{buildroot}%{_libdir}/lib{blas,lapack}.a

mv -f %{buildroot}%{_bindir}/* %{buildroot}%{ELMERGUI_HOME}

cp -far ElmerGUI/Application/ElmerGUI ElmerGUIlogger/ElmerGUIlogger ElmerGUItester/ElmerGUItester %{buildroot}%{ELMERGUI_HOME}
cp -far ElmerGUI/Application/edf-extra %{buildroot}%{ELMERGUI_HOME}

for script in ElmerGUI ElmerGUIlogger ElmerGUItester; do
cat > %{buildroot}%{_bindir}/$script << EOF
#!/bin/sh

export ELMER_HOME=%{ELMER_HOME}
export ELMERGUI_HOME=%{ELMERGUI_HOME}
export ELMER_POST_HOME=%{ELMER_POST_HOME}
export PATH=%{ELMERGUI_HOME}:\$PATH
export LD_LIBRARY_PATH=%{ELMER_HOME}/lib:\$LD_LIBRARY_PATH
%{ELMER_HOME}/bin/$script "\$@"
EOF
chmod +x %{buildroot}%{_bindir}/$script
done
ln -sf %{_bindir}/ElmerGUI %{buildroot}%{_bindir}/%{name}

cp -far ElmerGUI/{samples,scripts} %{buildroot}%{ELMER_HOME}

mkdir -p %{buildroot}%{_docdir}/%{name}
cp -f %{SOURCE1} %{buildroot}%{_docdir}/%{name}

#------------------------------------------------------------------------
%files
%{_bindir}/*
%{_includedir}/*.h
%{_includedir}/*.mod
%dir %{_includedir}/elmer
%{_includedir}/elmer/*.h
%{_libdir}/*.a
%{_libdir}/R
%dir %{ELMER_HOME}
%{ELMER_HOME}/*
%doc %{_docdir}/%name




%changelog
* Wed Oct 15 2014 umeabot <umeabot> 7.0-0.svn6359.7.mga5
+ Revision: 745876
- Second Mageia 5 Mass Rebuild

* Tue Sep 16 2014 umeabot <umeabot> 7.0-0.svn6359.6.mga5
+ Revision: 678989
- Mageia 5 Mass Rebuild

  + tv <tv>
    - use %%global for req/prov exclude
    - autoconvert to new prov/req excludes

* Wed Sep 10 2014 danf <danf> 7.0-0.svn6359.5.mga5
+ Revision: 674583
- Added new library names from openmpi

  + daviddavid <daviddavid>
    - rebuild for new openmpi

* Mon Feb 17 2014 fwang <fwang> 7.0-0.svn6359.4.mga5
+ Revision: 593562
- rebuild for new oce

* Tue Dec 10 2013 joequant <joequant> 7.0-0.svn6359.3.mga4
+ Revision: 556147
- add rfix
- try a single threaded make
- change dep to suitesparse-devel

  + umeabot <umeabot>
    - Mageia 4 Mass Rebuild

* Wed Oct 09 2013 joequant <joequant> 7.0-0.svn6359.1.mga4
+ Revision: 494110
- bump up rev num
- upgrade to vtk 6.0

* Wed Oct 09 2013 joequant <joequant> 7.0-0.svn6359.mga4
+ Revision: 493854
- upgrade version and convert to vtk 6.0

* Tue Jul 30 2013 joequant <joequant> 7.0-0.svn6279.mga4
+ Revision: 461225
- use single thread make to deal with fortran deps
- fix spec defines
- update to 6279
- upgrade to rev 6279
- upgrade to svn 6035
- clean spec
- imported package elmer


* Sat Nov 19 2011 Paulo Andrade <pcpa@mandriva.com.br> 6.0.5452-1
+ Revision: 731698
- Hack build to put multiarch includes before other includes.
- Update to a newer svn snapshot.
- Rebuild with updated libraries.
- Add elmer tutorial to documentation.

  + Funda Wang <fwang@mandriva.org>
    - rebuild for py 2.7

* Mon Sep 13 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4579-4mdv2011.0
+ Revision: 578116
+ rebuild (emptylog)

* Tue Aug 24 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4579-2mdv2011.0
+ Revision: 572511
+ rebuild (emptylog)

* Mon Aug 23 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4579-1mdv2011.0
+ Revision: 572090
- Update to svn snapshot 4579

* Sat Jul 31 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-7mdv2011.0
+ Revision: 563835
+ rebuild (emptylog)

* Wed Mar 03 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-6mdv2010.1
+ Revision: 513747
+ rebuild (emptylog)

* Tue Mar 02 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-5mdv2010.1
+ Revision: 513623
+ rebuild (emptylog)

* Mon Mar 01 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-4mdv2010.1
+ Revision: 513117
+ rebuild (emptylog)

* Fri Feb 26 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-3mdv2010.1
+ Revision: 512038
+ rebuild (emptylog)

* Fri Feb 26 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-2mdv2010.1
+ Revision: 511400
- Add libf77blas.so to _requires_exception and libatlas3 to requires

* Mon Feb 22 2010 Paulo Andrade <pcpa@mandriva.com.br> 5.4.1.4353-1mdv2010.1
+ Revision: 509859
- Import elmer 5.4.x (svn revision 4353)
- elmer