blob: 84d9d322283fc5f2fc478a658948656239d50a9f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-physics/cernlib/cernlib-2006.ebuild,v 1.11 2008/06/29 08:00:48 tove Exp $
inherit eutils multilib fortran
DEB_PN=cernlib
DEB_PV=${PV}.dfsg.2
DEB_PR=2
DEB_P=${PN}_${DEB_PV}
DESCRIPTION="CERN program library for High Energy Physics"
HOMEPAGE="http://wwwasd.web.cern.ch/wwwasd/cernlib"
SRC_URI="mirror://debian/pool/main/${DEB_PN:0:1}/${DEB_PN}/${DEB_P}.orig.tar.gz
mirror://debian/pool/main/${DEB_PN:0:1}/${DEB_PN}/${DEB_P}-${DEB_PR}.diff.gz"
KEYWORDS="amd64 sparc x86"
LICENSE="GPL-2 LGPL-2 BSD"
SLOT="0"
DEPEND="x11-libs/openmotif
virtual/lapack
virtual/tetex
dev-lang/cfortran
x11-misc/imake
x11-misc/makedepend
app-admin/eselect-blas"
RDEPEND="x11-libs/openmotif
virtual/lapack
dev-lang/cfortran"
IUSE=""
S=${WORKDIR}/${DEB_PN}-${DEB_PV}.orig
FORTRAN="gfortran g77 ifc"
src_unpack() {
unpack ${A}
epatch "${DEB_P}-${DEB_PR}".diff
cd "${S}"
# temporary fix for lapack libs (will need to change with new blas/lapack)
if eselect blas show | grep -q threaded-atlas; then
einfo "Fixing threads linking for blas"
sed -i \
-e 's/$DEPS -lm/$DEPS -lm -lpthread/' \
-e 's/$DEPS -l$1 -lm/$DEPS -l$1 -lm -lpthread/' \
-e 's:-llapack-3:-llapack:g' \
debian/add-ons/bin/cernlib.in || die "sed failed"
fi
# fix X11 library paths
sed -i \
-e "s:L/usr/X11R6/lib:L/usr/$(get_libdir)/X11:g" \
-e "s:XDIR=/usr/X11R6/lib:XDIR=/usr/$(get_libdir)/X11:g" \
-e "s:XDIR64=/usr/X11R6/lib:XDIR64=/usr/$(get_libdir)/X11:g" \
debian/add-ons/bin/cernlib.in || die "sed failed"
# fix some default paths
sed -i \
-e "s:/usr/local:/usr:g" \
-e "s:prefix)/lib:prefix)/$(get_libdir):" \
-e 's:$(prefix)/etc:/etc:' \
-e 's:$(prefix)/man:$(prefix)/share/man:' \
debian/add-ons/cernlib.mk || die "sed failed"
cp debian/add-ons/Makefile .
sed -i \
-e 's:/usr/local:/usr:g' \
Makefile || die "sed'ing the Makefile failed"
einfo "Applying Debian patches"
emake -j1 \
DEB_BUILD_OPTIONS="${FORTRANC} nostrip" \
patch || die "make patch failed"
# since we depend on cfortran, do not use the one from cernlib
# (adapted from debian/cernlib-debian.mk)
mv -f src/include/cfortran/cfortran.h \
src/include/cfortran/cfortran.h.disabled
# create local LaTeX cache directory
mkdir -p .texmf-var
# fix an ifort problem
sed -i \
-e 's/= $(CLIBS) -nofor_main/+= -nofor_main/' \
src/packlib/kuip/programs/kxterm/Imakefile || die "sed ifc failed"
# respect users flags
sed -i \
-e "s/-O3/-O2/g" \
-e "s/-O2/${CFLAGS}/g" \
src/config/linux.cf || die "sed linux.cf failed"
# fix tests
# this first one adds a test target on the common cernlib.mk for all cernlib packages
epatch "${FILESDIR}"/${P}-maketest.patch
# remove buggy tests on 64 bits arches
epatch "${FILESDIR}"/${P}-test64.patch
# fix linking of a few tests
epatch "${FILESDIR}"/${P}-testlink.patch
}
src_compile() {
emake -j1 \
DEB_BUILD_OPTIONS="${FORTRANC} nostrip" \
|| die "emake failed"
}
src_test() {
LD_LIBRARY_PATH="${S}"/shlib make \
TEST_PACKAGES="kernlib packlib mathlib graflib" \
DEB_BUILD_OPTIONS="${FORTRANC} nostrip" \
test || die "make test failed"
}
src_install() {
emake \
DEB_BUILD_OPTIONS="${FORTRANC} nostrip" \
DESTDIR="${D}" \
install || die "emake install failed"
cd "${S}"/debian
dodoc changelog README.* deadpool.txt NEWS copyright || die "dodoc failed"
newdoc add-ons/README README.add-ons || die "newdoc failed"
}
pkg_postinst() {
elog "Gentoo ${PN} is based on Debian similar package."
elog "Serious cernlib users might want to check:"
elog "http://people.debian.org/~kmccarty/cernlib/"
elog "for the changes and licensing from the original package"
if use amd64; then
elog "Please see the possible warnings in using ${PN} on 64 bits:"
elog "/usr/share/doc/${PF}/README.*64*"
fi
}
|