libraries/fftw: Added to 12.0 repository

This commit is contained in:
Kyle Guinn 2010-05-11 20:00:45 +02:00 committed by Robby Workman
parent dbfdfdedeb
commit f4426ba513
4 changed files with 163 additions and 0 deletions

8
libraries/fftw/README Normal file
View file

@ -0,0 +1,8 @@
FFTW is a free collection of fast C routines for computing the Discrete
Fourier Transform in one or more dimensions. It includes complex, real,
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.

View file

@ -0,0 +1,128 @@
#!/bin/sh
# Slackware build script for fftw
# Written by Kyle Guinn <elyk03@gmail.com>
PRGNAM=fftw
VERSION=3.1.2
ARCH=${ARCH:-i486}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
# According to doc/fftw3.pdf, the configure script should choose the best value
# for $CFLAGS. We will assume that the script knows what it is doing.
#
# By default we will leave 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.
# --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
#
# You can also build fftw using a different precision. --enable-float may be
# required depending on any SIMD code enabled with the above options.
# --enable-single compile fftw in single precision
# --enable-float synonym for --enable-single
# --enable-long-double compile fftw in long-double precision
#
# Heinz Wiesinger points out that these extra precisions can be compiled
# as well. --enable-float will append an 'f' to the library names, while
# --enable-long-double will append an 'l'. We have to compile three separate
# times instead of once to create all of the files.
#
# Note that the ./configure; make; make install commands below are not inside
# a loop. You may be able to --enable one of the SIMD options for one
# precision, but not another. (This should be documented somewhere...)
# compile fftw3
CFLAGS= \
CXXFLAGS= \
FFLAGS= \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
--docdir=/usr/doc/fftw-$VERSION \
--enable-shared \
--disable-static \
--enable-threads
make
make install-strip DESTDIR=$PKG
# compile fftw3f
CFLAGS= \
CXXFLAGS= \
FFLAGS= \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
--docdir=/usr/doc/fftw-$VERSION \
--enable-shared \
--disable-static \
--enable-threads \
--enable-float
make
make install-strip DESTDIR=$PKG
# compile fftw3l
CFLAGS= \
CXXFLAGS= \
FFLAGS= \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
--docdir=/usr/doc/fftw-$VERSION \
--enable-shared \
--disable-static \
--enable-threads \
--enable-long-double
make
make install-strip DESTDIR=$PKG
( cd $PKG/usr/man
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
)
rm -f $PKG/usr/info/dir
gzip -9 $PKG/usr/info/*.info*
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS CONVENTIONS COPYING COPYRIGHT ChangeLog INSTALL \
NEWS README TODO doc/html $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz

8
libraries/fftw/fftw.info Normal file
View file

@ -0,0 +1,8 @@
PRGNAM="fftw"
VERSION="3.1.2"
HOMEPAGE="http://www.fftw.org/"
DOWNLOAD="http://www.fftw.org/fftw-3.1.2.tar.gz"
MD5SUM="08f2e21c9fd02f4be2bd53a62592afa4"
MAINTAINER="Kyle Guinn"
EMAIL="elyk03@gmail.com"
APPROVED="rworkman"

19
libraries/fftw/slack-desc Normal file
View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
fftw: fftw (Fastest Fourier Transform in the West)
fftw:
fftw: FFTW is a free collection of fast C routines for computing the
fftw: Discrete Fourier Transform in one or more dimensions. It includes
fftw: complex, real, symmetric, and parallel transforms, and can handle
fftw: arbitrary array sizes efficiently. FFTW is typically faster than
fftw: other publically-available FFT implementations, and is even
fftw: competitive with vendor-tuned libraries.
fftw:
fftw:
fftw: