[PD-dev] fftw3 update to configure.am

Charles Z Henry czhenry at gmail.com
Sun Jan 18 19:59:14 CET 2015


pd-0.45.4 has the right code for FFTW3 but has the wrong configure.ac
code to test for it.

fftw_one is a function in FFTW2, which plans a 1D FFT.  The comparable
function in FFTW3 is fftw_plan_dft_1d

To get this to configure properly, you only need to change the name of
the library and the function it looks for.  For the single precision
fftw3 library ( libfftw3f.so ) the function is named
sfftw_plan_dft_1d_ or sfftw_plan_dft_1d__

Before filing a bug, I wanted to get another set of eyes on it.  Does
that function name look suspicious to anyone else?  I've confirmed the
symbol is the same in the system installed 3.3.3 version of the
library in ubuntu 14.04 and the custom compiled 3.3.4 version that I'm
using.

To fix:

This section of code in configure.ac:
dnl fftw v2
AC_ARG_ENABLE([fftw],
        [AS_HELP_STRING([--enable-fftw],
                [use FFTW package])],
    [fftw=$enableval])
if test x$fftw = xyes; then
    AC_CHECK_LIB(fftw, fftw_one, [LIBS="$LIBS -lfftw"],
        [AC_MSG_NOTICE([fftw package not found - using built-in FFT]); fftw=no])
fi
AM_CONDITIONAL(FFTW, test x$fftw = xyes)

becomes

dnl fftw v3
AC_ARG_ENABLE([fftw],
        [AS_HELP_STRING([--enable-fftw],
                [use FFTW package])],
    [fftw=$enableval])
if test x$fftw = xyes; then
    AC_CHECK_LIB(fftw3f, sfftw_plan_dft_1d_, [LIBS="$LIBS -lfftw3f"],
        [AC_MSG_NOTICE([fftw package not found - using built-in FFT]); fftw=no])
fi
AM_CONDITIONAL(FFTW, test x$fftw = xyes)

Then, I run:
./autogen.sh

and

./configure --enable-jack --prefix=/home/chenry/pd-0.45.4
--enable-fftw CFLAGS=-I/home/chenry/linalg/include
LDFLAGS=-L/home/chenry/linalg/lib

Chuck



More information about the Pd-dev mailing list