]> Pileus Git - ~andy/sunrise/blob - sci-libs/openfoam-bin/openfoam-bin-1.5.ebuild
sci-libs/openfoam-src: removing, in gentoo-x86
[~andy/sunrise] / sci-libs / openfoam-bin / openfoam-bin-1.5.ebuild
1 # Copyright 1999-2009 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header:  $
4
5 inherit eutils versionator multilib toolchain-funcs
6
7 MY_PN="OpenFOAM"
8 MY_PV=$(get_version_component_range 1-2)
9 MY_P="${MY_PN}-${MY_PV}"
10
11 DESCRIPTION="Open Field Operation and Manipulation - CFD Simulation Toolbox"
12 HOMEPAGE="http://www.opencfd.co.uk/openfoam/"
13 SRC_URI="mirror://sourceforge/foam/${MY_P}.General.gtgz
14         x86? ( mirror://sourceforge/foam/${MY_P}.linuxGccDPOpt.gtgz )
15         amd64? ( mirror://sourceforge/foam/${MY_P}.linux64GccDPOpt.gtgz )"
16
17 LICENSE="GPL-2"
18 SLOT="1.5"
19 KEYWORDS="-* ~amd64 ~x86"
20 IUSE="examples doc"
21
22 DEPEND="!=sci-libs/openfoam-${MY_PV}*
23         !=sci-libs/openfoam-kernel-${MY_PV}*
24         !=sci-libs/openfoam-meta-${MY_PV}*
25         !=sci-libs/openfoam-solvers-${MY_PV}*
26         !=sci-libs/openfoam-utilities-${MY_PV}*
27         !=sci-libs/openfoam-wmake-${MY_PV}*
28         || ( >sci-visualization/paraview-3.0 sci-visualization/opendx )
29         virtual/mpi"
30 RDEPEND="${DEPEND}"
31
32 S=${WORKDIR}/${MY_P}
33
34 pkg_setup() {
35         if ! version_is_at_least 4.2 $(gcc-version) ; then
36                 die "${PN} requires >=sys-devel/gcc-4.2 to compile."
37         fi
38
39         elog
40         elog "In order to use ${MY_PN} you should add the following line to ~/.bashrc :"
41         elog "source /usr/$(get_libdir)/${MY_PN}/bashrc"
42         ewarn
43         ewarn "FoamX is deprecated since ${MY_PN}-1.5! "
44         ewarn
45
46         use x86 && WM_OPTIONS="linuxGccDPOpt"
47         use amd64 && WM_OPTIONS="linux64GccDPOpt"
48 }
49
50 src_unpack() {
51         ln -s "${DISTDIR}"/${MY_P}.General.gtgz ${MY_P}.General.tgz
52         unpack ./${MY_P}.General.tgz
53
54         use x86 && ln -s "${DISTDIR}"/${MY_P}.linuxGccDPOpt.gtgz ${MY_P}.binary.tgz
55         use amd64 && ln -s "${DISTDIR}"/${MY_P}.linux64GccDPOpt.gtgz ${MY_P}.binary.tgz
56         unpack ./${MY_P}.binary.tgz
57
58         cd "${S}"
59         epatch "${FILESDIR}"/${MY_P}-compile.patch
60 }
61
62 src_compile() {
63         if has_version sys-cluster/lam-mpi ; then
64                 export WM_MPLIB=LAM
65                 export MPI_VERSION=lam
66         elif has_version sys-cluster/mpich2 ; then
67                 export WM_MPLIB=MPICH
68                 export MPI_VERSION=mpich
69         elif has_version sys-cluster/openmpi ; then
70                 export WM_MPLIB=OPENMPI
71                 export MPI_VERSION=openmpi
72         else
73                 die "You need one of the following mpi implementations: openmpi, lam-mpi or mpich2"
74         fi
75
76         sed -i -e "s|WM_MPLIB:=OPENMPI|WM_MPLIB:="${WM_MPLIB}"|" etc/bashrc
77         sed -i -e "s|setenv WM_MPLIB OPENMPI|setenv WM_MPLIB "${WM_MPLIB}"|" etc/cshrc
78
79         mv lib/${WM_OPTIONS}/$MPI_VERSION* lib/${WM_OPTIONS}/$MPI_VERSION
80 }
81
82 src_test() {
83         cd bin
84         ./foamInstallationTest
85 }
86
87 src_install() {
88         insinto /usr/$(get_libdir)/${MY_PN}/${MY_P}
89         doins -r etc
90
91         rm -rf tutorials/rhoPorousSimpleFoam/angledDuctExplicit/{0,constant}
92         cp -a tutorials/rhoPorousSimpleFoam/angledDuctImplicit/{0,constant} tutorials/rhoPorousSimpleFoam/angledDuctExplicit
93         use examples && doins -r tutorials
94
95         insopts -m0755
96         doins -r bin
97
98         insinto /usr/$(get_libdir)/${MY_PN}/${MY_P}/applications/bin
99         doins -r applications/bin/${WM_OPTIONS}/*
100
101         insinto /usr/$(get_libdir)/${MY_PN}/${MY_P}/lib
102         doins -r lib/${WM_OPTIONS}/*
103
104         insinto /usr/$(get_libdir)/${MY_PN}/${MY_P}/wmake
105         doins -r wmake/*
106
107         insopts -m0644
108         insinto /usr/share/doc/${PF}
109         doins doc/Guides-a4/*.pdf
110         dodoc README
111
112         if use doc ; then
113                 dohtml -r doc/Doxygen
114         fi
115
116         dosym /usr/$(get_libdir)/${MY_PN}/${MY_P}/etc/bashrc /usr/$(get_libdir)/${MY_PN}/bashrc
117         dosym /usr/$(get_libdir)/${MY_PN}/${MY_P}/etc/cshrc /usr/$(get_libdir)/${MY_PN}/cshrc
118 }