To successfully compile GRASS on 64bit platforms, the required
FFTW2 library has to be compiled with -fPIC flag:
#applies to FFTW2, not GRASS:
cd fftw-2.1.5/
CFLAGS="-fPIC" ./configure
make
make install
Now we (theoretically) can compile GRASS with TclTk 8.4, maybe someone
who knows how can help to bring FFTW into the modern era as well, i.e.
to use fftw3 not fftw2.
> To successfully compile GRASS on 64bit platforms, the required
> FFTW2 library has to be compiled with -fPIC flag:
>
> #applies to FFTW2, not GRASS:
> cd fftw-2.1.5/
> CFLAGS="-fPIC" ./configure
> make
> make install
This is true on any platform if FFTW is a static library and the GRASS
libraries (specifically libgrass_gmath) are dynamic libraries. In
practice, the safest option is to always use -fPIC for both static and
shared libraries. Static libraries compiled without -fPIC can only be
used directly by executables, and not by shared libraries.
Now we (theoretically) can compile GRASS with TclTk 8.4, maybe someone
who knows how can help to bring FFTW into the modern era as well, i.e.
to use fftw3 not fftw2.
#ifdef 's to remain backwards compat with v.2 ?
If we don't care about supporting FFTW 2.x, the changes to
lib/gmath/fft.c to use 3.x instead are trivial.
Supporting both 2.x and 3.x would be quite a bit more work due to the
necessary configure.in changes.
If we don't care about supporting FFTW 2.x, the changes to
lib/gmath/fft.c to use 3.x instead are trivial.
Supporting both 2.x and 3.x would be quite a bit more work due to the
necessary configure.in changes.
To help decide that from the "is GRASS the only one still using v2?" angle,
here's an informal poll of the Debian packages that use fftw2 and fftw3
currently. (Debian/Stable; thus may be slightly out of date)
FFTW3 wins the `wc -l` test, package relevance is more subjective.