summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Fabbro <bicatali@gentoo.org>2008-04-01 22:10:26 +0000
committerSebastien Fabbro <bicatali@gentoo.org>2008-04-01 22:10:26 +0000
commitabb65ac3d6591084bad29c710643bc09bc0c265b (patch)
tree3edc71344bf09e316a38d58a11446dd466293326 /sci-libs/fftw
parentTemporary mask of pkgcore until python is fixed on amd64 (diff)
downloadgentoo-2-abb65ac3d6591084bad29c710643bc09bc0c265b.tar.gz
gentoo-2-abb65ac3d6591084bad29c710643bc09bc0c265b.tar.bz2
gentoo-2-abb65ac3d6591084bad29c710643bc09bc0c265b.zip
fftw-2.1.5-r3: Fix more as-needed stuff for mpi, added fortran use flag, link more libs and headers, changed float use flag to single. fftw-3.1.2: Added a configure.ac patch in hope of fixing bug #215269, added a fortran use flag. Cleaning ebuilds and removed 3.0 version.
(Portage version: 2.1.4.4)
Diffstat (limited to 'sci-libs/fftw')
-rw-r--r--sci-libs/fftw/ChangeLog15
-rw-r--r--sci-libs/fftw/fftw-2.1.5-r3.ebuild61
-rw-r--r--sci-libs/fftw/fftw-3.0.1-r2.ebuild120
-rw-r--r--sci-libs/fftw/fftw-3.1.2.ebuild47
-rw-r--r--sci-libs/fftw/files/3-tmpfile.patch16
-rw-r--r--sci-libs/fftw/files/fftw-2.1.5-as-needed.patch72
-rw-r--r--sci-libs/fftw/files/fftw-2.1.5-configure.in.patch169
-rw-r--r--sci-libs/fftw/files/fftw-3.0.1-altivec.patch85
-rw-r--r--sci-libs/fftw/files/fftw-3.0.1-amd64.patch66
-rw-r--r--sci-libs/fftw/files/fftw-3.1.2-configure.ac.patch20
-rw-r--r--sci-libs/fftw/files/fftw-altivec-headers.patch26
-rw-r--r--sci-libs/fftw/metadata.xml14
12 files changed, 327 insertions, 384 deletions
diff --git a/sci-libs/fftw/ChangeLog b/sci-libs/fftw/ChangeLog
index 01f064868eea..01ad2734bb54 100644
--- a/sci-libs/fftw/ChangeLog
+++ b/sci-libs/fftw/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for sci-libs/fftw
-# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/ChangeLog,v 1.62 2007/10/26 13:40:02 markusle Exp $
+# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/ChangeLog,v 1.63 2008/04/01 22:10:25 bicatali Exp $
+
+ 01 Apr 2008; Sébastien Fabbro <bicatali@gentoo.org>
+ +files/fftw-2.1.5-configure.in.patch, -files/3-tmpfile.patch,
+ files/fftw-2.1.5-as-needed.patch, -files/fftw-3.0.1-altivec.patch,
+ -files/fftw-3.0.1-amd64.patch, +files/fftw-3.1.2-configure.ac.patch,
+ -files/fftw-altivec-headers.patch, metadata.xml, fftw-2.1.5-r3.ebuild,
+ -fftw-3.0.1-r2.ebuild, fftw-3.1.2.ebuild:
+ fftw-2.1.5-r3: Fix more as-needed stuff for mpi, added fortran use flag,
+ link more libs and headers, changed float use flag to single. fftw-3.1.2:
+ Added a configure.ac patch in hope of fixing bug #215269, added a fortran
+ use flag. Cleaning ebuilds and removed 3.0 version.
26 Oct 2007; Markus Dittrich <markusle@gentoo.org> fftw-3.0.1-r2.ebuild:
Added missing quotation marks.
diff --git a/sci-libs/fftw/fftw-2.1.5-r3.ebuild b/sci-libs/fftw/fftw-2.1.5-r3.ebuild
index 0ace497b18b5..32cdf7ca12dd 100644
--- a/sci-libs/fftw/fftw-2.1.5-r3.ebuild
+++ b/sci-libs/fftw/fftw-2.1.5-r3.ebuild
@@ -1,24 +1,20 @@
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/fftw-2.1.5-r3.ebuild,v 1.4 2007/07/13 06:57:51 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/fftw-2.1.5-r3.ebuild,v 1.5 2008/04/01 22:10:25 bicatali Exp $
-WANT_AUTOCONF="latest"
-WANT_AUTOMAKE="latest"
+inherit eutils flag-o-matic multilib autotools fortran
-inherit flag-o-matic multilib autotools
-
-IUSE="doc mpi float"
-
-DESCRIPTION="C subroutine library for computing the Discrete Fourier Transform (DFT)"
+DESCRIPTION="Fast C library for the Discrete Fourier Transform"
SRC_URI="http://www.fftw.org/${P}.tar.gz"
HOMEPAGE="http://www.fftw.org"
-# hppa does not have yet a virtual/mpi, and just got ~.
+# hppa does not have yet a virtual/mpi
DEPEND="mpi? ( !hppa? ( virtual/mpi ) )
mpi? ( hppa? ( sys-cluster/lam-mpi ) )"
SLOT="2.1"
LICENSE="GPL-2"
+IUSE="doc fortran mpi float"
KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86"
@@ -31,22 +27,29 @@ pkg_setup() {
if [ "${ARCH}" == "x86" ]; then
is-flag "-fomit-frame-pointer" || append-flags "-fomit-frame-pointer"
fi
+ FORTRAN="gfortran ifc g77"
+ use fortran && fortran_pkg_setup
}
src_unpack() {
- # doc suggests installing single and double precision versions via separate compilations
- # will do in two separate source trees
- # since some sed'ing is done during the build (?if --enable-type-prefix is set?)
+ # doc suggests installing single and double precision versions
+ # via separate compilations. will do in two separate source trees
+ # since some sed'ing is done during the build
+ # (?if --enable-type-prefix is set?)
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/${P}-as-needed.patch"
+ epatch "${FILESDIR}/${P}-configure.in.patch"
+
# fix info files
for infofile in doc/fftw*info*; do
- echo "INFO-DIR-SECTION Libraries" >>${infofile}
- echo "START-INFO-DIR-ENTRY" >>${infofile}
- echo "* fftw: (fftw). C subroutine library for computing the Discrete Fourier Transform (DFT)" >>${infofile}
- echo "END-INFO-DIR-ENTRY" >>${infofile}
+ cat >> ${infofile} <<-EOF
+ INFO-DIR-SECTION Libraries
+ START-INFO-DIR-ENTRY
+ * fftw: (fftw). ${DESCRIPTION}
+ END-INFO-DIR-ENTRY
+ EOF
done
eautoreconf
@@ -64,6 +67,7 @@ src_compile() {
--enable-type-prefix \
--enable-vec-recurse \
--enable-threads \
+ $(use_enable fortran) \
$(use_enable mpi) \
$(use_enable x86 i386-hacks) \
|| die "econf for float failed"
@@ -76,6 +80,7 @@ src_compile() {
--enable-type-prefix \
--enable-vec-recurse \
--enable-threads \
+ $(use_enable fortran) \
$(use_enable mpi) \
$(use_enable x86 i386-hacks) \
|| die "econf for double failed"
@@ -105,22 +110,12 @@ src_install () {
emake DESTDIR="${D}" install || die "emake install double failed"
if use float; then
- dosym sfftw.h /usr/include/fftw.h
- dosym srfftw.h /usr/include/rfftw.h
- dosym libsfftw.so /usr/$(get_libdir)/libfftw.so
- dosym libsrfftw.so /usr/$(get_libdir)/librfftw.so
- dosym sfftw_threads.h /usr/include/fftw_threads.h
- dosym srfftw_threads.h /usr/include/rfftw_threads.h
- dosym libsfftw_threads.so /usr/$(get_libdir)/libfftw_threads.so
- dosym libsrfftw_threads.so /usr/$(get_libdir)/librfftw_threads.so
+ for f in "${D}"/usr/{include,$(get_libdir)}/*sfft*; do
+ ln -s $(basename ${f}) ${f/sfft/fft}
+ done
else
- dosym dfftw.h /usr/include/fftw.h
- dosym drfftw.h /usr/include/rfftw.h
- dosym libdfftw.so /usr/$(get_libdir)/libfftw.so
- dosym libdrfftw.so /usr/$(get_libdir)/librfftw.so
- dosym dfftw_threads.h /usr/include/fftw_threads.h
- dosym drfftw_threads.h /usr/include/rfftw_threads.h
- dosym libdfftw_threads.so /usr/$(get_libdir)/libfftw_threads.so
- dosym libdrfftw_threads.so /usr/$(get_libdir)/librfftw_threads.so
+ for f in "${D}"/usr/{include,$(get_libdir)}/*dfft*; do
+ ln -s $(basename ${f}) ${f/dfft/fft}
+ done
fi
}
diff --git a/sci-libs/fftw/fftw-3.0.1-r2.ebuild b/sci-libs/fftw/fftw-3.0.1-r2.ebuild
deleted file mode 100644
index 1fe101f5d1f5..000000000000
--- a/sci-libs/fftw/fftw-3.0.1-r2.ebuild
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/fftw-3.0.1-r2.ebuild,v 1.17 2007/10/26 13:40:02 markusle Exp $
-
-WANT_AUTOMAKE="1.9"
-WANT_AUTOCONF="latest"
-
-inherit flag-o-matic eutils toolchain-funcs autotools
-
-DESCRIPTION="C subroutine library for computing the Discrete Fourier Transform (DFT)"
-HOMEPAGE="http://www.fftw.org/"
-SRC_URI="http://www.fftw.org/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="3.0"
-KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86"
-IUSE="3dnow altivec mpi sse sse2"
-
-DEPEND=""
-
-src_unpack() {
- unpack "${P}.tar.gz"
- cd "${S}"
- epatch "${FILESDIR}"/3-tmpfile.patch
- epatch "${FILESDIR}"/${P}-altivec.patch
-
- # fix info files
- local infofile
- for infofile in doc/fftw*info*; do
- sed -e 's/Texinfo documentation system/Libraries/' \
- -i ${infofile} || die "failed to fix info files"
- done
-
- eautoreconf
-
- cd "${WORKDIR}"
- use amd64 && epatch "${FILESDIR}/${P}"-amd64.patch
- mv ${P} ${P}-single
- cp -pPR ${P}-single ${P}-double
-}
-
-src_compile() {
- #-fpmath=xx is reported to cause trouble on pentium4 m series
- #(for 3.0.x: this sort of thing should be handled by the --enable-sse
- #style configure flags. these are set below using the use variables,
- #but under gcc-3.2.x, sse2 seems to cause trouble.)
- filter-mfpmath
-
- # in gcc 3.2.3 at least, using sse or sse2 causes trouble with -O3
- # according to the docs, -O0 can cause trouble too! So pending further
- # testing, ...
- if use sse; then
- filter-flags -O3 -O1 -O -Os
- append-flags -O2
- fi
-
- local myconf=""
- local myconfsingle=""
- local myconfdouble=""
-
- use mpi && myconf="${myconf} --enable-mpi"
- #mpi is not a valid flag yet. In this revision it is used merely to block --enable-mpi option
- #it might be needed if it is decided that lam is an optional dependence
-
- if use sse2; then
- myconfsingle="$myconfsingle --enable-sse"
- myconfdouble="$myconfdouble --enable-sse2"
- elif use sse; then
- myconfsingle="$myconfsingle --enable-sse"
- elif use 3dnow; then
- myconfsingle="$myconfsingle --enable-k7"
- fi
-
- # Altivec-support in fftw is currently broken
- # with gcc 3.4
- if [ "`gcc-version`" != "3.4" ]; then
- myconfsingle="$myconfsingle `use_enable altivec`"
- fi
-
- cd "${S}-single"
- econf \
- --enable-shared \
- --enable-threads \
- --enable-float \
- ${myconf} ${myconfsingle} || die "./configure failed"
- emake || die
-
- #the only difference here is no --enable-float
- cd "${S}-double"
- econf \
- --enable-shared \
- --enable-threads \
- ${myconf} ${myconfdouble} || die "./configure failed"
- emake || die
-}
-
-src_test() {
- cd "${S}-single"
- emake check || die "emake check single failed"
- cd "${S}-double"
- emake check || die "emake check double failed"
-}
-
-src_install () {
- #both builds are installed in the same place
- #libs have distinuguished names; include files, docs etc. identical.
- cd "${S}-single"
- make DESTDIR="${D}" install || die
-
- cd "${S}-double"
- make DESTDIR="${D}" install || die
-
- # Install documentation.
- cd "${S}-single"
-
- dodoc AUTHORS ChangeLog NEWS README TODO COPYRIGHT CONVENTIONS
-
- cd doc/html
- dohtml -r .
-}
diff --git a/sci-libs/fftw/fftw-3.1.2.ebuild b/sci-libs/fftw/fftw-3.1.2.ebuild
index ebacfb4cf4cb..ef482cbc779e 100644
--- a/sci-libs/fftw/fftw-3.1.2.ebuild
+++ b/sci-libs/fftw/fftw-3.1.2.ebuild
@@ -1,28 +1,33 @@
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/fftw-3.1.2.ebuild,v 1.11 2007/08/25 14:28:17 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/fftw/fftw-3.1.2.ebuild,v 1.12 2008/04/01 22:10:25 bicatali Exp $
-inherit flag-o-matic eutils toolchain-funcs autotools
+inherit flag-o-matic eutils toolchain-funcs autotools fortran
-DESCRIPTION="C subroutine library for computing the Discrete Fourier Transform (DFT)"
+DESCRIPTION="Fast C library for the Discrete Fourier Transform"
HOMEPAGE="http://www.fftw.org/"
SRC_URI="http://www.fftw.org/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="3.0"
KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86"
-IUSE="altivec sse sse2 test"
+IUSE="altivec fortran sse sse2 test"
DEPEND="test? ( dev-lang/perl )"
+pkg_setup() {
+ FORTRAN="gfortran ifc g77"
+ use fortran && fortran_pkg_setup
+}
+
src_unpack() {
unpack ${A}
cd "${S}"
-
+ epatch "${FILESDIR}"/${P}-configure.ac.patch
# fix info file
sed -e 's/Texinfo documentation system/Libraries/' \
-i doc/fftw3.info || die "failed to fix info file"
-
+ AT_M4DIR=m4 eautoreconf
cd "${WORKDIR}"
mv ${P} ${P}-single
cp -pPR ${P}-single ${P}-double
@@ -33,7 +38,7 @@ src_compile() {
# filter -Os according to docs
replace-flags -Os -O2
- local myconfcommon="--enable-shared --enable-threads"
+ local myconfcommon="--enable-shared --enable-threads $(use_enable fortran)"
local myconfsingle=""
local myconfdouble=""
local myconflongdouble=""
@@ -55,7 +60,7 @@ src_compile() {
--enable-float \
${myconfsingle} || \
die "./configure in single failed"
- emake || die
+ emake || die "emake single failed"
#the only difference here is no --enable-float
cd "${S}-double"
@@ -63,7 +68,7 @@ src_compile() {
${myconfcommon} \
${myconfdouble} || \
die "./configure in double failed"
- emake || die
+ emake || die "emake double failed"
#the only difference here is --enable-long-double
cd "${S}-longdouble"
@@ -72,26 +77,20 @@ src_compile() {
--enable-long-double \
${myconflongdouble} || \
die "./configure in long double failed"
- emake || die
+ emake || die "emake long double failed"
}
src_install () {
- #all builds are installed in the same place
- #libs have distinuguished names; include files, docs etc. identical.
- cd "${S}-single"
- emake DESTDIR="${D}" install || die
-
- cd "${S}-double"
- emake DESTDIR="${D}" install || die
-
- cd "${S}-longdouble"
- emake DESTDIR="${D}" install || die
+ # all builds are installed in the same place
+ # libs have distinuguished names; include files, docs etc. identical.
+ for i in single double longdouble; do
+ cd "${S}-${i}"
+ emake DESTDIR="${D}" install || die "emake install for ${i} failed"
+ done
# Install documentation.
cd "${S}-single"
-
- dodoc AUTHORS ChangeLog NEWS README TODO COPYRIGHT CONVENTIONS
-
+ dodoc AUTHORS ChangeLog NEWS README TODO COPYRIGHT CONVENTIONS || die
cd doc/html
dohtml -r .
}
diff --git a/sci-libs/fftw/files/3-tmpfile.patch b/sci-libs/fftw/files/3-tmpfile.patch
deleted file mode 100644
index 797d67c22be9..000000000000
--- a/sci-libs/fftw/files/3-tmpfile.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- tools/fftw-wisdom-to-conf.in 2003-07-03 23:56:58.000000000 +0200
-+++ tools/fftw-wisdom-to-conf.in.new 2005-08-10 14:17:25.000000000 +0200
-@@ -57,7 +57,7 @@
- extern void ${prefix}solvtab_exec(const struct solvtab_s s[], void *);
- EOF
-
--tmp=/tmp/fftw-wisdom-to-conf$$
-+tmp=$(mktemp -t fftw-wisdom-to-conf.XXXXXX) || exit 1
- sed 's/ *(//' | cut -d" " -f1 | grep -v -- - | egrep -v '^ *\)*$' > $tmp
-
- cat $tmp | sort | uniq | while read reg_nam; do
-@@ -73,3 +73,4 @@
-
- echo " ${prefix}solvtab_exec(s, plnr);"
- echo "}"
-+rm $tmp
diff --git a/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch b/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
index 1f25232bc05d..d1c20d40e94f 100644
--- a/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
+++ b/sci-libs/fftw/files/fftw-2.1.5-as-needed.patch
@@ -1,8 +1,6 @@
-Index: fftw-2.1.5/rfftw/Makefile.am
-===================================================================
---- fftw-2.1.5.orig/rfftw/Makefile.am
-+++ fftw-2.1.5/rfftw/Makefile.am
-@@ -18,6 +18,7 @@ lib@FFTW_PREFIX@rfftw_la_SOURCES = $(COD
+--- ./rfftw/Makefile.am.orig 2008-03-31 19:42:10.819805758 +0100
++++ ./rfftw/Makefile.am 2008-03-31 19:43:47.624901125 +0100
+@@ -18,6 +18,7 @@
rfftw.h
lib@FFTW_PREFIX@rfftw_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
@@ -10,3 +8,67 @@ Index: fftw-2.1.5/rfftw/Makefile.am
MAINTAINERCLEANFILES = $(CODELETS) rconfig.c
DISTCLEANFILES = srfftw.h drfftw.h
+--- ./threads/Makefile.am.orig 2008-03-31 19:42:30.555058968 +0100
++++ ./threads/Makefile.am 2008-03-31 21:59:25.500856903 +0100
+@@ -28,6 +28,10 @@
+ -version-info @SHARED_VERSION_INFO@ \
+ -rpath $(libdir)
+
++lib@FFTW_PREFIX@fftw_threads_la_LIBADD = \
++ $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la \
++ @THREADLIBS@
++
+ @FFTW_PREFIX1@fftw_threads.h: fftw_threads.h
+ rm -f $@
+ sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/fftw_threads.h > $@
+@@ -49,6 +53,11 @@
+ -version-info @SHARED_VERSION_INFO@ \
+ -rpath $(libdir)
+
++lib@FFTW_PREFIX@rfftw_threads_la_LIBADD = \
++ $(RFFTWDIR)/lib@FFTW_PREFIX@rfftw.la \
++ $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la \
++ @THREADLIBS@
++
+ @FFTW_PREFIX1@rfftw_threads.h: rfftw_threads.h
+ rm -f $@
+ sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/rfftw_threads.h > $@
+--- ./mpi/Makefile.am.orig 2008-03-31 19:42:18.984187252 +0100
++++ ./mpi/Makefile.am 2008-03-31 22:19:12.879672814 +0100
+@@ -28,6 +28,9 @@
+ -version-info @SHARED_VERSION_INFO@ \
+ -rpath $(libdir)
+
++lib@FFTW_PREFIX@fftw_mpi_la_LIBADD = \
++ $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la @MPILIBS@
++
+ @FFTW_PREFIX1@fftw_mpi.h: fftw_mpi.h
+ rm -f $@
+ sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/fftw_mpi.h > $@
+@@ -39,7 +42,12 @@
+ -version-info @SHARED_VERSION_INFO@ \
+ -rpath $(libdir)
+
+-@FFTW_PREFIX1@rfftw_mpi.h: rfftw_mpi.h
++lib@FFTW_PREFIX@rfftw_mpi_la_LIBADD = \
++ $(RFFTWDIR)/lib@FFTW_PREFIX@rfftw.la \
++ $(FFTWDIR)/lib@FFTW_PREFIX@fftw.la \
++ @MPILIBS@
++
++@FFTW_PREFIX1@rfftw_mpi.h: rfftw_mpi.h
+ rm -f $@
+ sed 's/\"fftw/\"@FFTW_PREFIX@fftw/g;s/\"rfftw/\"@FFTW_PREFIX@rfftw/g' $(srcdir)/rfftw_mpi.h > $@
+
+--- ./acx_mpi.m4.orig 2008-03-31 22:19:34.864925682 +0100
++++ ./acx_mpi.m4 2008-03-31 22:22:44.923756518 +0100
+@@ -53,8 +53,8 @@
+ ])
+
+ if test x = x"$MPILIBS"; then
+- AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+- [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
++ AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS="-lmpi"])],
++ [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS="-lmpi"])],
+ [Fortran 77], [AC_MSG_CHECKING([for MPI_Init])
+ AC_TRY_LINK([],[ call MPI_Init], [MPILIBS=" "
+ AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])
diff --git a/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch b/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch
new file mode 100644
index 000000000000..f4dde992611f
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-2.1.5-configure.in.patch
@@ -0,0 +1,169 @@
+--- configure.in.orig 2008-04-01 22:46:45.943787297 +0100
++++ configure.in 2008-04-01 22:58:13.510969518 +0100
+@@ -1,6 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(fftw/planner.c)
+ AM_INIT_AUTOMAKE(fftw, 2.1.5)
++AM_MAINTAINER_MODE
+
+ dnl This is the version info according to the libtool versioning system.
+ dnl It does *not* correspond to the release number.
+@@ -27,7 +28,7 @@
+
+ AC_ARG_ENABLE(float, [ --enable-float compile fftw for single precision], enable_float=$enableval, enable_float=no)
+ if test "$enable_float" = "yes"; then
+- AC_DEFINE(FFTW_ENABLE_FLOAT)
++ AC_DEFINE(FFTW_ENABLE_FLOAT,1,[Compile fftw for single precision])
+ fi
+
+ FFTW_PREFIX=""
+@@ -56,27 +57,27 @@
+
+ AC_ARG_ENABLE(i386-hacks, [ --enable-i386-hacks enable gcc/x86 specific performance hacks], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+- AC_DEFINE(FFTW_ENABLE_I386_HACKS)
++ AC_DEFINE(FFTW_ENABLE_I386_HACKS,1,[Enable x86 specific performance hacks])
+ fi
+
+ AC_ARG_ENABLE(pentium-timer, [ --enable-pentium-timer enable high resolution Pentium timer], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+- AC_DEFINE(FFTW_ENABLE_PENTIUM_TIMER)
++ AC_DEFINE(FFTW_ENABLE_PENTIUM_TIMER,1,[Enable high resolution Pentium timer])
+ fi
+
+ AC_ARG_ENABLE(debug, [ --enable-debug compile fftw with extra runtime checks for debugging], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+- AC_DEFINE(FFTW_DEBUG)
++ AC_DEFINE(FFTW_DEBUG,1,[Compile with extra rutime checks for debugging])
+ fi
+
+ AC_ARG_ENABLE(debug-alignment, [ --enable-debug-alignment enable runtime checks for alignment on x86], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+- AC_DEFINE(FFTW_DEBUG_ALIGNMENT)
++ AC_DEFINE(FFTW_DEBUG_ALIGNMENT,1,[Enable rutime checks for alignment on x86])
+ fi
+
+ AC_ARG_ENABLE(vec-recurse, [ --enable-vec-recurse enable experimental performance hack], ok=$enableval, ok=no)
+ if test "$ok" = "yes"; then
+- AC_DEFINE(FFTW_ENABLE_VECTOR_RECURSE)
++ AC_DEFINE(FFTW_ENABLE_VECTOR_RECURSE,1,[Enable experimental performance hack])
+ fi
+
+ dnl -----------------------------------------------------------------------
+@@ -115,7 +116,7 @@
+ dnl -----------------------------------------------------------------------
+
+ AC_SUBST(SHARED_VERSION_INFO)
+-AC_DEFINE_UNQUOTED(FFTW_VERSION, "$VERSION")
++AC_DEFINE_UNQUOTED(FFTW_VERSION, "$VERSION",[Fftw Version])
+
+ # Get the version number that will be appended to shared libraries:
+ SHARED_VERSION=`echo $SHARED_VERSION_INFO | awk -F':' '{ print $1 "." $3 "." $2 }'`
+@@ -123,7 +124,7 @@
+
+ ACX_PROG_CC_MAXOPT
+
+-ACX_GCC_ALIGNS_STACK(AC_DEFINE(FFTW_GCC_ALIGNS_STACK), [
++ACX_GCC_ALIGNS_STACK(AC_DEFINE(FFTW_GCC_ALIGNS_STACK,1,[Gcc align stack]), [
+ if test "$enable_i386_hacks" = yes; then
+ if test "${acx_gcc_stack_align_bug-no}" = yes; then
+ # we are using a gcc with a stack alignment bug, and we should
+@@ -183,7 +184,7 @@
+ AC_TRY_LINK([#include <math.h>
+ ], if (!isnan(3.14159)) isnan(2.7183);, ok=yes, ok=no)
+ if test "$ok" = "yes"; then
+- AC_DEFINE(HAVE_ISNAN)
++ AC_DEFINE(HAVE_ISNAN,1,[Have isnan])
+ fi
+ AC_MSG_RESULT(${ok})
+
+@@ -196,7 +197,7 @@
+ #endif
+ ], [hrtime_t foobar;], ok=yes, ok=no)
+ if test "$ok" = "yes"; then
+- AC_DEFINE(HAVE_HRTIME_T)
++ AC_DEFINE(HAVE_HRTIME_T,1,[Have hrtime_t type])
+ fi
+ AC_MSG_RESULT(${ok})
+
+@@ -205,7 +206,7 @@
+
+ AC_ARG_ENABLE(unsafe-mulmod, [ --enable-unsafe-mulmod risk overflow for large prime sizes], enable_unsafe_mulmod=$enableval, enable_unsafe_mulmod=no)
+ if test "$enable_unsafe_mulmod" = "yes"; then
+- AC_DEFINE(FFTW_ENABLE_UNSAFE_MULMOD)
++ AC_DEFINE(FFTW_ENABLE_UNSAFE_MULMOD,1,[Risk overflow for lar prime sizes])
+ fi
+
+
+@@ -243,7 +244,7 @@
+ if test -z "$THREADLIBS"; then
+ AC_MSG_ERROR([don't know how to enable OpenMP])
+ fi
+- AC_DEFINE(FFTW_USING_OPENMP_THREADS)
++ AC_DEFINE(FFTW_USING_OPENMP_THREADS,1,[Using OpenMP threads])
+ fi
+ if test "$with_sgimp"x != nox; then
+ AC_MSG_CHECKING(how to enable SGI MP)
+@@ -261,7 +262,7 @@
+ if test -z "$THREADLIBS"; then
+ AC_MSG_ERROR([don't know how to enable SGI MP])
+ fi
+- AC_DEFINE(FFTW_USING_SGIMP_THREADS)
++ AC_DEFINE(FFTW_USING_SGIMP_THREADS,1,[Using SGIMP Threads])
+ fi
+
+ # POSIX threads, the default choice:
+@@ -270,38 +271,38 @@
+ ACX_PTHREAD([THREADLIBS="$PTHREAD_LIBS "
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ CC="$PTHREAD_CC"
+- AC_DEFINE(FFTW_USING_POSIX_THREADS)])
++ AC_DEFINE(FFTW_USING_POSIX_THREADS,1,[Using POSIX Threads])])
+ fi
+ # Solaris threads:
+ if test -z "$THREADLIBS"; then
+ AC_CHECK_LIB(thread, thr_create,
+ [THREADLIBS="-lthread"
+- AC_DEFINE(FFTW_USING_SOLARIS_THREADS)])
++ AC_DEFINE(FFTW_USING_SOLARIS_THREADS,1,[Using SOLARIS Threads])])
+ fi
+ # Mach C threads:
+ if test -z "$THREADLIBS"; then
+ AC_CHECK_FUNC(cthread_fork,
+ [THREADLIBS=" "
+- AC_DEFINE(FFTW_USING_MACH_THREADS)])
++ AC_DEFINE(FFTW_USING_MACH_THREADS,1,[Using Mach Threads])])
+ AC_CHECK_HEADERS(mach/cthreads.h cthreads.h cthread.h)
+ fi
+ if test -z "$THREADLIBS"; then
+ AC_CHECK_LIB(cthread, cthread_fork,
+ [THREADLIBS="-lcthread"
+- AC_DEFINE(FFTW_USING_MACH_THREADS)])
++ AC_DEFINE(FFTW_USING_MACH_THREADS,1,[Using Mach Threads])])
+ AC_CHECK_HEADERS(mach/cthreads.h cthreads.h cthread.h)
+ fi
+ if test -z "$THREADLIBS"; then
+ AC_CHECK_LIB(cthreads, cthread_fork,
+ [THREADLIBS="-lcthreads"
+- AC_DEFINE(FFTW_USING_MACH_THREADS)])
++ AC_DEFINE(FFTW_USING_MACH_THREADS,1,[Using Mach Threads])])
+ AC_CHECK_HEADERS(mach/cthreads.h cthreads.h cthread.h)
+ fi
+ # BeOS threads:
+ if test -z "$THREADLIBS"; then
+ AC_CHECK_FUNC(spawn_thread,
+ [THREADLIBS=" "
+- AC_DEFINE(FFTW_USING_BEOS_THREADS)])
++ AC_DEFINE(FFTW_USING_BEOS_THREADS,1,[Using BEOS Threads])])
+ fi
+ if test -z "$THREADLIBS"; then
+ AC_MSG_ERROR(couldn't find threads library for --enable-threads)
+@@ -334,7 +335,7 @@
+ CC="$MPICC"
+ ok=yes
+ AC_TRY_LINK([#include <mpi.h>
+- ], [MPI_Comm_f2c(0);], [AC_DEFINE(HAVE_MPI_COMM_F2C)], [ok=no])
++ ], [MPI_Comm_f2c(0);], [AC_DEFINE(HAVE_MPI_COMM_F2C,1,[Has MPI COMM F2C])], [ok=no])
+ AC_MSG_RESULT($ok)
+ CC="$save_CC"
+ else
diff --git a/sci-libs/fftw/files/fftw-3.0.1-altivec.patch b/sci-libs/fftw/files/fftw-3.0.1-altivec.patch
deleted file mode 100644
index a71fea0c6aee..000000000000
--- a/sci-libs/fftw/files/fftw-3.0.1-altivec.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff -u simd.old/altivec.c simd/altivec.c
---- simd.old/altivec.c 2005-11-12 00:28:14.000000000 +0100
-+++ simd/altivec.c 2005-11-12 00:33:36.000000000 +0100
-@@ -26,15 +26,12 @@
- #if HAVE_ALTIVEC
-
- const vector unsigned int X(altivec_ld_selmsk) =
-- (vector unsigned int)VLIT(0, 0, 0xFFFFFFFF, 0xFFFFFFFF);
-+ VLIT(0, 0, 0xFFFFFFFF, 0xFFFFFFFF);
-
- const vector unsigned int X(altivec_flipri_perm) =
-- (vector unsigned int)VLIT(0x04050607, 0x00010203,
-- 0x0c0d0e0f, 0x08090a0b);
-+ VLIT(0x04050607, 0x00010203, 0x0c0d0e0f, 0x08090a0b);
-
--const vector float X(altivec_chsr_sgn) =
-- (vector float)VLIT(-1.0, 1.0, -1.0, 1.0);
--const vector float X(altivec_chsr_msk) =
-- (vector float)VLIT(-0.0, 0.0, -0.0, 0.0);
-+const vector float X(altivec_chsr_sgn) = VLIT(-1.0, 1.0, -1.0, 1.0);
-+const vector float X(altivec_chsr_msk) = VLIT(-0.0, 0.0, -0.0, 0.0);
-
- #endif
-diff -u simd.old/simd-altivec.h simd/simd-altivec.h
---- simd.old/simd-altivec.h 2005-11-12 00:28:14.000000000 +0100
-+++ simd/simd-altivec.h 2005-11-12 01:31:03.000000000 +0100
-@@ -96,8 +96,12 @@
-
- #else /* !__VEC__ */
-
-+#ifdef HAVE_ALTIVEC_H
-+#include <altivec.h>
-+#define VLIT(x0, x1, x2, x3) {x0, x1, x2, x3}
-+#else
- #define VLIT(x0, x1, x2, x3) (x0, x1, x2, x3)
--
-+#endif
- #endif
-
- typedef vector float V;
---- configure.ac.old 2003-07-04 07:18:48.000000000 +0200
-+++ configure.ac 2005-11-12 00:42:11.000000000 +0100
-@@ -167,7 +167,8 @@
- ACX_CHECK_CC_FLAGS(-faltivec, faltivec,
- SIMD_CFLAGS="-faltivec",
- [ACX_CHECK_CC_FLAGS(-maltivec -mabi=altivec, maltivec,
-- SIMD_CFLAGS="-maltivec -mabi=altivec",
-+ SIMD_CFLAGS="-maltivec -mabi=altivec";
-+ AC_DEFINE(HAVE_ALTIVEC_H,1,[Define if gcc-fsf is in use]),
- [AC_MSG_ERROR([Need a version of gcc with -maltivec])])])
- fi
- fi
---- ../fftw-3.0.1-double/simd/simd-altivec.h 2005-11-12 01:59:11.000000000 +0100
-+++ simd/simd-altivec.h 2005-11-12 03:16:00.000000000 +0100
-@@ -105,12 +105,25 @@
- #endif
-
- typedef vector float V;
--#define VADD(a, b) vec_add(a, b)
--#define VSUB(a, b) vec_sub(a, b)
--#define VFMA(a, b, c) vec_madd(a, b, c)
--#define VFNMS(a, b, c) vec_nmsub(a, b, c)
-+static inline V VADD(V a,V b)
-+{
-+ return vec_add(a, b);
-+}
-+static inline V VSUB(V a, V b)
-+{
-+ return vec_sub(a, b);
-+}
-+static inline V VFMA(V a, V b, V c)
-+{
-+ return vec_madd(a, b, c);
-+}
-+static inline V VFNMS(V a, V b, V c)
-+{
-+ return vec_nmsub(a, b, c);
-+}
-+
- #define LDK(x) x
--#define DVK(var, val) const V var = (vector float)VLIT(val, val, val, val)
-+#define DVK(var, val) const V var = VLIT(val, val, val, val)
-
- static inline V VMUL(V a, V b)
- {
diff --git a/sci-libs/fftw/files/fftw-3.0.1-amd64.patch b/sci-libs/fftw/files/fftw-3.0.1-amd64.patch
deleted file mode 100644
index d5df07581a92..000000000000
--- a/sci-libs/fftw/files/fftw-3.0.1-amd64.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-diff -uarN fftw-3.0.1.old/dft/k7/k7.c fftw-3.0.1/dft/k7/k7.c
---- fftw-3.0.1.old/dft/k7/k7.c 2007-04-18 10:05:40.000000000 +0400
-+++ fftw-3.0.1/dft/k7/k7.c 2007-04-18 10:08:57.000000000 +0400
-@@ -28,7 +28,7 @@
- {
- int eax, ecx, edx;
-
-- __asm__("push %%ebx\n\tcpuid\n\tpop %%ebx"
-+ __asm__("push %%rbx\n\tcpuid\n\tpop %%rbx"
- : "=a" (eax), "=c" (ecx), "=d" (edx)
- : "a" (op));
- return edx;
-@@ -38,7 +38,7 @@
- {
- int eax, ecx, edx;
-
-- __asm__("push %%ebx\n\tcpuid\n\tpop %%ebx"
-+ __asm__("push %%rbx\n\tcpuid\n\tpop %%rbx"
- : "=a" (eax), "=c" (ecx), "=d" (edx)
- : "a" (op));
- return eax;
-diff -uarN fftw-3.0.1.old/simd/3dnow.c fftw-3.0.1/simd/3dnow.c
---- fftw-3.0.1.old/simd/3dnow.c 2007-04-18 10:05:41.000000000 +0400
-+++ fftw-3.0.1/simd/3dnow.c 2007-04-18 10:08:31.000000000 +0400
-@@ -29,7 +29,7 @@
- {
- int eax, ecx, edx;
-
-- __asm__("push %%ebx\n\tcpuid\n\tpop %%ebx"
-+ __asm__("push %%rbx\n\tcpuid\n\tpop %%rbx"
- : "=a" (eax), "=c" (ecx), "=d" (edx)
- : "a" (op));
- return edx;
-@@ -39,7 +39,7 @@
- {
- int eax, ecx, edx;
-
-- __asm__("push %%ebx\n\tcpuid\n\tpop %%ebx"
-+ __asm__("push %%rbx\n\tcpuid\n\tpop %%rbx"
- : "=a" (eax), "=c" (ecx), "=d" (edx)
- : "a" (op));
- return eax;
-diff -uarN fftw-3.0.1.old/simd/sse2.c fftw-3.0.1/simd/sse2.c
---- fftw-3.0.1.old/simd/sse2.c 2007-04-18 10:05:41.000000000 +0400
-+++ fftw-3.0.1/simd/sse2.c 2007-04-18 10:08:14.000000000 +0400
-@@ -43,7 +43,7 @@
- #else
- int eax, ecx, edx;
-
-- __asm__("push %%ebx\n\tcpuid\n\tpop %%ebx"
-+ __asm__("push %%rbx\n\tcpuid\n\tpop %%rbx"
- : "=a" (eax), "=c" (ecx), "=d" (edx)
- : "a" (op));
- return edx;
-diff -uarN fftw-3.0.1.old/simd/sse.c fftw-3.0.1/simd/sse.c
---- fftw-3.0.1.old/simd/sse.c 2007-04-18 10:05:41.000000000 +0400
-+++ fftw-3.0.1/simd/sse.c 2007-04-18 10:08:04.000000000 +0400
-@@ -43,7 +43,7 @@
- #else
- int eax, ecx, edx;
-
-- __asm__("push %%ebx\n\tcpuid\n\tpop %%ebx"
-+ __asm__("push %%rbx\n\tcpuid\n\tpop %%rbx"
- : "=a" (eax), "=c" (ecx), "=d" (edx)
- : "a" (op));
- return edx;
diff --git a/sci-libs/fftw/files/fftw-3.1.2-configure.ac.patch b/sci-libs/fftw/files/fftw-3.1.2-configure.ac.patch
new file mode 100644
index 000000000000..bbc0ccb6b5f8
--- /dev/null
+++ b/sci-libs/fftw/files/fftw-3.1.2-configure.ac.patch
@@ -0,0 +1,20 @@
+--- configure.ac.orig 2008-03-31 23:03:45.200210228 +0100
++++ configure.ac 2008-03-31 23:06:57.111081976 +0100
+@@ -135,7 +135,7 @@
+ AC_PROG_CC
+ AX_COMPILER_VENDOR
+ AC_PROG_CC_STDC
+-AMX_PROG_AS dnl AM_PROG_AS breaks at least one version of libtool
++AM_PROG_AS
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+@@ -229,6 +229,8 @@
+ fi
+ fi
+ AC_SUBST(SIMD_CFLAGS)
++# pass simd flags to preprocessor/compiler for proper intrinsics detection.
++CPPFLAGS="$CPPFLAGS $SIMD_CFLAGS"
+
+ dnl Checks for header files.
+ AC_HEADER_STDC
diff --git a/sci-libs/fftw/files/fftw-altivec-headers.patch b/sci-libs/fftw/files/fftw-altivec-headers.patch
deleted file mode 100644
index baade9bfec66..000000000000
--- a/sci-libs/fftw/files/fftw-altivec-headers.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- configure.ac
-+++ configure.ac
-@@ -230,6 +230,12 @@
- fi
- AC_SUBST(SIMD_CFLAGS)
-
-+dnl Some headers require the simd cflags (like altivec.h)
-+save_CFLAGS="$CFLAGS"
-+save_CPPFLAGS="$CPPFLAGS"
-+CFLAGS="$CFLAGS $SIMD_CFLAGS"
-+CPPFLAGS="$CPPFLAGS $SIMD_CFLAGS"
-+
- dnl Checks for header files.
- AC_HEADER_STDC
- AC_CHECK_HEADERS([libintl.h malloc.h stddef.h stdlib.h string.h strings.h sys/time.h unistd.h limits.h c_asm.h intrinsics.h stdint.h mach/mach_time.h sys/sysctl.h altivec.h])
-@@ -237,6 +243,10 @@
- dnl intrinsics.h: cray unicos
- dnl sys/sysctl.h: MacOS X altivec detection
-
-+dnl restore normal flags
-+CFLAGS="$save_CFLAGS"
-+CPPFLAGS="$save_CPPFLAGS"
-+
- dnl Checks for typedefs, structures, and compiler characteristics.
- AC_C_CONST
- AC_C_INLINE
diff --git a/sci-libs/fftw/metadata.xml b/sci-libs/fftw/metadata.xml
index 9c91dfbff0eb..d7ac5d19ffe6 100644
--- a/sci-libs/fftw/metadata.xml
+++ b/sci-libs/fftw/metadata.xml
@@ -3,12 +3,12 @@
<pkgmetadata>
<herd>sci</herd>
<longdescription lang="en">
-The Fastest Fourier Transform in the West is a C subroutine library
-for computing the Discrete Fourier Transform (DFT) in one or more
-dimensions, of both real and complex data, and of arbitrary input
-size. It is becoming the FFT library of choice for most
-applications. Benchmarks, performed on a variety of platforms, show
-that FFTW's performance is typically superior to that of other
-publicly available FFT software.
+ The Fastest Fourier Transform in the West is a C subroutine library
+ for computing the Discrete Fourier Transform (DFT) in one or more
+ dimensions, of both real and complex data, and of arbitrary input
+ size. It is becoming the FFT library of choice for most
+ applications. Benchmarks, performed on a variety of platforms, show
+ that FFTW's performance is typically superior to that of other
+ publicly available FFT software.
</longdescription>
</pkgmetadata>