#!/bin/sh # Slackware build script for fftw # Written by Kyle Guinn PRGNAM="fftw" VERSION=${VERSION:-"3.2.1"} ARCH=${ARCH:-"i486"} BUILD=${BUILD:-"1"} TAG=${TAG:-"_SBo"} CWD=$(pwd) TMP=${TMP:-"/tmp/SBo"} PKG="$TMP/package-$PRGNAM-$VERSION" OUTPUT=${OUTPUT:-"/tmp"} DOCS="AUTHORS CONVENTIONS COPY* ChangeLog INSTALL NEWS README* TODO doc/html" # 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. 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" fi set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz 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 \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --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 libfftw3f ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --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 libfftw3l ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --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/* mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCS $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-$PKGARCH-$BUILD$TAG.tgz