/[gentoo-x86]/sci-libs/fftw/fftw-3.3.1.ebuild
Gentoo

Contents of /sci-libs/fftw/fftw-3.3.1.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations) (download)
Fri Jul 20 20:30:20 2012 UTC (2 years ago) by bicatali
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +1 -1 lines
FILE REMOVED
Checks on gcc for openmp and quad precision, remove doc when not asked, reduce unit tests to smallcheck, quotes cleaning, remove obsolete versions

(Portage version: 2.2.01.20757-prefix/cvs/Linux x86_64)

1 # Copyright 1999-2012 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/fftw-3.3.1.ebuild,v 1.1 2012/03/29 04:02:19 ottxor Exp $
4
5 EAPI=4
6
7 inherit autotools-utils eutils flag-o-matic fortran-2 toolchain-funcs
8
9 DESCRIPTION="Fast C library for the Discrete Fourier Transform"
10 HOMEPAGE="http://www.fftw.org/"
11 SRC_URI="http://www.fftw.org/${P/_/-}.tar.gz"
12
13 LICENSE="GPL-2"
14 SLOT="3.0"
15 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
16 IUSE="altivec avx doc fortran mpi neon openmp quad sse sse2 static-libs threads zbus"
17
18 DEPEND="
19 fortran? ( virtual/fortran[openmp?] )
20 mpi? ( virtual/mpi )"
21 RDEPEND="${DEPEND}"
22
23 S=${WORKDIR}/${P/_/-}
24
25 AUTOTOOLS_AUTORECONF=1
26
27 DOCS=( AUTHORS ChangeLog NEWS README TODO COPYRIGHT CONVENTIONS doc/fftw3.pdf )
28
29 HTML_DOCS=( doc/html/ )
30
31 pkg_setup() {
32 if use openmp; then
33 tc-has-openmp || die "Please ensure your compiler has openmp support"
34 FORTRAN_NEED_OPENMP="1"
35 [[ $(tc-getCC)$ == icc* ]] && append-ldflags $(no-as-needed)
36 fi
37 use fortran && fortran-2_pkg_setup
38 FFTW_DIRS="single double longdouble"
39 use quad && FFTW_DIRS+= "quad"
40 }
41
42 src_prepare() {
43 # fix info file for category directory
44 sed -i \
45 -e 's/Texinfo documentation system/Libraries/' \
46 doc/fftw3.info || die "failed to fix info file"
47
48 rm -f m4/lt* m4/libtool.m4
49 }
50
51 src_configure() {
52 local x
53
54 # filter -Os according to docs
55 replace-flags -Os -O2
56
57 for x in ${FFTW_DIRS}; do
58 myeconfargs=(
59 $(use_enable fortran)
60 $(use_enable zbus mips-zbus-timer)
61 $(use_enable threads)
62 $(use_enable openmp)
63 )
64 if [[ $x == single ]]; then
65 #altivec, sse, single-paired only work for single
66 myeconfargs+=(
67 --enable-single
68 $(use_enable altivec)
69 $(use_enable avx)
70 $(use_enable sse)
71 $(use_enable mpi)
72 $(use_enable neon)
73 )
74 elif [[ $x == double ]]; then
75 myeconfargs+=(
76 $(use_enable avx)
77 $(use_enable sse2)
78 $(use_enable mpi)
79 )
80 elif [[ $x == longdouble ]]; then
81 myeconfargs+=(
82 --enable-long-double
83 $(use_enable mpi)
84 )
85 elif [[ $x == quad ]]; then
86 #quad does not support mpi
87 myeconfargs+=( --enable-quad-precision )
88 else
89 die "${x} precision not implemented in this ebuild"
90 fi
91
92 einfo "Configuring for ${x} precision"
93 AUTOTOOLS_BUILD_DIR="${S}-${x}" \
94 autotools-utils_src_configure
95 done
96 }
97
98 src_compile() {
99 for x in ${FFTW_DIRS}; do
100 einfo "Compiling for ${x} precision"
101 AUTOTOOLS_BUILD_DIR="${S}-${x}" \
102 autotools-utils_src_compile
103 done
104 }
105
106 src_test () {
107 # We want this to be a reasonably quick test, but that is still hard...
108 ewarn "This test series will take 30 minutes on a modern 2.5Ghz machine"
109 # Do not increase the number of threads, it will not help your performance
110 #local testbase="perl check.pl --nthreads=1 --estimate"
111 # ${testbase} -${p}d || die "Failure: $n"
112 for x in ${FFTW_DIRS}; do
113 cd "${S}-${x}/tests"
114 einfo "Testing ${x} precision"
115 emake -j1 check
116 done
117 }
118
119 src_install () {
120 local u x
121
122 for x in ${FFTW_DIRS}; do
123 AUTOTOOLS_BUILD_DIR="${S}-${x}" \
124 autotools-utils_src_install
125 done
126
127 if use doc; then
128 insinto /usr/share/doc/"${PF}"/faq
129 doins -r "${S}"/doc/FAQ/fftw-faq.html/*
130 fi
131
132 for x in "${ED}"/usr/lib*/pkgconfig/*.pc; do
133 for u in $(usev mpi) $(usev threads) $(usex openmp omp ""); do
134 sed "s|-lfftw3[flq]\?|&_$u &|" "$x" > "${x%.pc}_$u.pc" || die
135 done
136 done
137 }

  ViewVC Help
Powered by ViewVC 1.1.20