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