dev-vcs/hg-git-0.9.0_rc1: version bump with mercurial 5.4 support
[gentoo.git] / sci-physics / cernlib / cernlib-2006-r5.ebuild
1 # Copyright 1999-2015 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=5
5
6 inherit eutils fortran-2 multilib toolchain-funcs
7
8 DEB_PN=cernlib
9 DEB_PV=20061220+dfsg3
10 DEB_PR=2
11 DEB_P=${DEB_PN}_${DEB_PV}
12
13 DESCRIPTION="CERN program library for High Energy Physics"
14 HOMEPAGE="https://cernlib.web.cern.ch/cernlib/"
15 SRC_URI="
16         mirror://debian/pool/main/${DEB_PN:0:1}/${DEB_PN}/${DEB_P}.orig.tar.gz
17         mirror://debian/pool/main/${DEB_PN:0:1}/${DEB_PN}/${DEB_P}-${DEB_PR}.debian.tar.gz"
18
19 SLOT="0"
20 LICENSE="GPL-2 LGPL-2 BSD"
21 KEYWORDS="amd64 hppa sparc x86 ~amd64-linux ~x86-linux"
22 IUSE=""
23
24 RDEPEND="
25         x11-libs/motif:0
26         virtual/lapack
27         dev-lang/cfortran"
28 DEPEND="${RDEPEND}
29         x11-misc/imake
30         x11-misc/makedepend
31         virtual/pkgconfig"
32
33 S="${WORKDIR}/${DEB_PN}-${DEB_PV}"
34
35 src_prepare() {
36         mv ../debian . || die
37         epatch "${FILESDIR}"/${P}-nogfortran.patch
38         # set some default paths
39         sed -i \
40                 -e "s:/usr/local:${EROOT}/usr:g" \
41                 -e "s:prefix)/lib:prefix)/$(get_libdir):" \
42                 -e "s:\$(prefix)/etc:${EROOT}/etc:" \
43                 -e 's:$(prefix)/man:$(prefix)/share/man:' \
44                 debian/add-ons/cernlib.mk || die "sed failed"
45
46         # use system blas and lapack set by gentoo framework
47         sed -i \
48                 -e "s:\$DEPS -lm:$($(tc-getPKG_CONFIG) --libs blas):" \
49                 -e "s:\$DEPS -llapack -lm:$($(tc-getPKG_CONFIG) --libs lapack):" \
50                 -e 's:`depend $d $a blas`::' \
51                 -e 's:X11R6:X11:g' \
52                 debian/add-ons/bin/cernlib.in || die "sed failed"
53
54         cp debian/add-ons/Makefile .
55         export DEB_BUILD_OPTIONS="$(tc-getFC) nostrip nocheck"
56
57         einfo "Applying Debian patches"
58         emake -j1 patch
59
60         epatch "${FILESDIR}"/${P}-fgets.patch
61         epatch "${FILESDIR}"/${P}-ypatchy-short-name.patch
62         # since we depend on cfortran, do not use the one from cernlib
63         rm src/include/cfortran/cfortran.h || die
64
65         # respect users flags
66         sed -i \
67                 -e 's/-O3/-O2/g' \
68                 -e "s/-O2/${CFLAGS}/g" \
69                 -e "s|\(CcCmd[[:space:]]*\)gcc|\1$(tc-getCC)|g" \
70                 -e "s|\(CplusplusCmd[[:space:]]*\)g++|\1$(tc-getCXX)|g" \
71                 -e "s|\(FortranCmd[[:space:]]*\)gfortran|\1$(tc-getFC)|g" \
72                 src/config/linux.cf     \
73                 || die "sed linux.cf failed"
74         sed -i \
75                 -e "s|\(ArCmdBase[[:space:]]*\)ar|\1$(tc-getAR)|g" \
76                 -e "s|\(RanlibCmd[[:space:]]*\)ranlib|\1$(tc-getRANLIB)|g" \
77                 src/config/Imake.tmpl   \
78                 || die "sed Imake.tmpl failed"
79
80         sed -i \
81                 -e 's/\$(FCLINK)/\$(FCLINK) $(LDFLAGS)/' \
82                 -e 's/\$(CCLINK)/\$(CCLINK) $(LDFLAGS)/' \
83                 src/config/{biglib,fortran,Imake}.rules \
84                 src/patchy/Imakefile \
85                 || die "sed for ldflags propagation failed"
86
87         # add missing headers for implicit
88         sed -i \
89                 -e '0,/^#include/i#include <stdlib.h>' \
90                 src/kernlib/kerngen/ccgen*/*.c || die
91 }
92
93 src_compile() {
94         # parallel make breaks and complex patched imake system, hard to debug
95         emake -j1 cernlib-indep cernlib-arch
96 }
97
98 src_test() {
99         LD_LIBRARY_PATH="${S}"/shlib emake -j1 cernlib-test
100 }
101
102 src_install() {
103         default
104         cd debian
105         dodoc changelog README.* deadpool.txt NEWS copyright
106         newdoc add-ons/README README.add-ons
107 }