libraries/fftw: Updated for version 3.2.1

This commit is contained in:
Kyle Guinn 2010-05-13 00:29:24 +02:00 committed by David Somero
parent 22392fd0f2
commit 275b18da02
3 changed files with 96 additions and 81 deletions

View file

@ -4,5 +4,12 @@ symmetric, and parallel transforms, and can handle arbitrary array sizes
efficiently. FFTW is typically faster than other publically-available FFT
implementations, and is even competitive with vendor-tuned libraries.
There are several machine-dependent optimizations that can be enabled in order
to generate SIMD code; take a look in fftw.SlackBuild to enable them.
By default non-portable binaries will be created. If you need to create
a package that is shared among various machines, pass PORTABLE=yes to the
script.
To enable SSE or SSE2 SIMD optimizations pass SSE=yes or SSE2=yes respectively
to the script. Enabling these will still create a portable package as fftw falls
back to the standard code, if the optimized one isn't supported on the cpu.
However, to be able to build them your cpu has to actually support those
extensions.

View file

@ -3,35 +3,60 @@
# Slackware build script for fftw
# Written by Kyle Guinn <elyk03@gmail.com>
PRGNAM="fftw"
VERSION=${VERSION:-"3.2.1"}
ARCH=${ARCH:-"i486"}
BUILD=${BUILD:-"1"}
TAG=${TAG:-"_SBo"}
PRGNAM=fftw
VERSION=${VERSION:-3.2.1}
ARCH=${ARCH:-i486}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-"/tmp/SBo"}
PKG="$TMP/package-$PRGNAM-$VERSION"
OUTPUT=${OUTPUT:-"/tmp"}
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM-$VERSION
OUTPUT=${OUTPUT:-/tmp}
DOCS="AUTHORS CONVENTIONS COPY* ChangeLog INSTALL NEWS README* TODO doc/html"
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
fi
if [ "${PORTABLE:-no}" = "no" ]; then
# According to doc/fftw3.pdf the configure script should choose the best
# value for $CFLAGS. These variables must be unset so that the configure
# script will decide.
# If you are interested in further optimizations such as alternative
# multithreading and support for other processors, check this page for
# details:
# http://www.fftw.org/fftw3_doc/Installation-on-Unix.html
unset CFLAGS
unset CXXFLAGS
unset FFLAGS
PKGARCH="custom"
if [ "$ARCH" = "i486" ]; then
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
do_portable=""
else
PKGARCH=$ARCH
do_portable="--enable-portable-binary"
fi
if [ "${SSE:-no}" = "no" ]; then
do_sse=""
else
do_sse="--enable-sse"
fi
if [ "${SSE2:-no}" = "no" ]; then
do_sse2=""
else
do_sse2="--enable-sse2"
fi
set -e
@ -44,30 +69,6 @@ cd $PRGNAM-$VERSION
chown -R root:root .
chmod -R u+w,go+r-w,a-st .
# By default this script leaves out these machine-dependent optimizations.
# If your machine supports these, feel free to add them to the configure
# options. Note that fftw may refuse to compile by doing so -- watch for
# error messages about the precision not matching. See the link below.
#
# --enable-fma enable optimizations for machines with fused multiply-add
# --enable-k7 enable AMD K7 optimizations, including 3dNow!
# --enable-sse enable SSE optimizations (Pentium III+)
# --enable-sse2 enable SSE2 optimizations (Pentium IV+)
# --enable-altivec enable Altivec optimizations (PowerPC G4+)
# --enable-portable-binary
# disable compiler optimizations that would produce
# unportable binaries
#
# Compiling with the default options creates a double-precision library
# named libfftw3. --enable-float or --enable-single builds a single
# precision library (libfftw3f), and --enable-long-double builds a
# long-double precision library (libfftw3l). This script builds all three
# libraries since they can coexist on the same machine.
#
# You may be able to --enable one of the SIMD options when compiling for
# one precision, but not for another. Check this page for details:
# http://www.fftw.org/fftw3_doc/Installation-on-Unix.html
# compile libfftw3
./configure \
--prefix=/usr \
@ -79,7 +80,9 @@ chmod -R u+w,go+r-w,a-st .
--docdir=/usr/doc/fftw-$VERSION \
--enable-shared \
--disable-static \
--enable-threads
--enable-threads \
$do_sse2 \
$do_portable
make
make install-strip DESTDIR=$PKG
@ -95,7 +98,9 @@ make install-strip DESTDIR=$PKG
--enable-shared \
--disable-static \
--enable-threads \
--enable-float
--enable-float \
$do_sse \
$do_portable
make
make install-strip DESTDIR=$PKG
@ -111,7 +116,8 @@ make install-strip DESTDIR=$PKG
--enable-shared \
--disable-static \
--enable-threads \
--enable-long-double
--enable-long-double \
$do_portable
make
make install-strip DESTDIR=$PKG
@ -134,4 +140,4 @@ mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$PKGARCH-$BUILD$TAG.tgz
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$PKGARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -2,7 +2,9 @@ PRGNAM="fftw"
VERSION="3.2.1"
HOMEPAGE="http://www.fftw.org/"
DOWNLOAD="ftp://ftp.fftw.org/pub/fftw/fftw-3.2.1.tar.gz"
DOWNLOAD_x86_64=""
MD5SUM="712d3f33625a0a76f5758648d4b925f7"
MD5SUM_x86_64=""
MAINTAINER="Kyle Guinn"
EMAIL="elyk03@gmail.com"
APPROVED="rworkman"
APPROVED="dsomero"