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