FFTW is a C subroutine library for computing the Discrete Fourier Transform
(DFT) in one or more dimensions, of both real and complex data, and of
arbitrary input size. We believe that FFTW, which is free software, should
become the FFT library of choice for most applications. Our benchmarks,
performed on a variety of platforms, show that FFTW's performance is
typically superior to that of other publicly available FFT software.
Moreover, FFTW's performance is portable: the program will perform well on
most architectures without modification.
The FFTW package was developed at MIT by Matteo Frigo and Steven G.
Johnson. Please send email to fftw@theory.lcs.mit.edu so that we can keep
track of users and send you information about new releases. The latest
version of FFTW, benchmarks, links, and other information can be found at
the FFTW home page.
===> The following configuration options are available for fftw3-3.3.11:
G77_WRAPPERS=off: Alter Fortran wrappers for use with g77
OPENMP=on: Build OpenMP multi-threaded libraries
OPENMPI=off: Build OpenMPI parallel libraries
OPTIMIZED_CFLAGS=on: Use extra compiler optimizations
SIMD=on: Use CPU-specific optimizations
===> Use 'make config' to modify these settings
math/fftw3: Update to 3.3.11
Clean up whitespace and order Makefile. Simplify some logic including
removing -malign-double for i386, which could break programs linked to
the quad library. Nothing uses quad, so it's moot keeping complicated
logic for a Tier-2 platform.
All supported versions of FreeBSD have <bsd.cpu.mk> with altivec support
in MACHINE_CPU. Remove obsolete workaround.
Add a few maintainer helper targets to make updates a bit easier.
These automatically update SHLIB_VER_MIN variable in the Makefile and
regenerate FFTW3LibraryDepends.cmake.in. After just bumping PORTVERSION
and removing any existing PORTREVISION line, simply running:
`make -C ${PORTSDIR}/math/fftw -DMAINTAINER_MODE maintainer-update`
will take care of all of the pre-test tasks.
MFH: 2026Q4
math/fftw3: Convert OPENMPI option to USES=mpi
This should unbreak the OPENMPI option for 32-bit archs after
0728e016e0ca.
Reported by: fluffy (via IRC)
MFH: 2024Q3
math/fftw3: Add missing FFTW3LibraryDepends.cmake
This file would normally be generated by cmake, but since we're using
the more feature-complete and stable autotools configure, instead of
pulling in cmake, just provide a pre-generated template file. This
fixes finding fftw3 with future krita.
Install the cmake configuration files in separate directories for each
flavor so that the exported targets are correctly defined.
See: https://github.com/FFTW/fftw3/issues/130
math/fftw3-float: check for MACHINE_CPU on powerpc*
MACHINE_CPU for powerpc * has been added recently to bsd.cpu.mk. To provide
compatibility with older FreeBSD, leave the check for powerpc64*.
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
math: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* Aaron Dalton <aaron@FreeBSD.org>
* Aaron Dalton <aaron@daltons.ca>
* Alessando Sagratini <ale_sagra@hotmail.com>
* Alex Dupre <ale@FreeBSD.org>
* Alexey Dokuchaev <danfe@FreeBSD.org>
* Amarendra Godbole <amarendra.godbole@gmail.com>
* Anders Nordby <anders@FreeBSD.org>
* Andreas Fehlner (fehlner@gmx.de)
* Andrew L. Neporada <andrew@chg.ru>
* Andrey <gugu@zoo.rambler.ru>
* Andrey Zakhvatov
(Only the first 15 lines of the commit message are shown above )
math/fftw3: Update to 3.3.10
Bugfix release, changelog: http://www.fftw.org/release-notes.html
Change PORTVERSION to DISTVERSION to follow Porters Handbook more
closely.
Enable OpenMP support by default on aarch64 and amd64
PR: 259837
Approved by: jhale (maintainer timeout, 2+ months)
math/fftw3: fix after sweep
COMPILER_TYPE needs to be defined in all cases
make: "/usr/ports/math/fftw3-float/../../math/fftw3/Makefile" line 130:
Malformed conditional (${ARCH} == "i386" && (${COMPILER_TYPE} == "gcc" ||
!empty(USE_GCC)) && !${PORT_OPTIONS:MOPENMPI})
- Update net/openmpi to 4.0.3 (openmpi 1 is deprecated)
- Remove option for net/openmpi2 from science/pnetcdf (net/openmpi2 is
deprecated and will be removed)
- Fix science/gromacs plist when MPI option is enabled
- Bump PORTREVISION for all the consumers of net/openmpi
Add arm64 performance counter and enable NEON support.
* Enable cycle counter via the PMCCNTR_EL0 register on arm64 for all variants
* Enable NEON instructions for -float flavor
* Runtime tested with bench utility in tests directory
(./work/fftw-3.3.8/tests/bench if compiling ports) on Orange Pi PC running
13.0-CURRENT r347967
PR: 239511
Submitted by: daniel.engberg.lists@pyret.net
Reviewed by: mikael.urankar@gmail.com
Approved by: jhale (maintainer timeout, 3 months)
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
Install texinfo files (GNU info) into ${PREFIX}/share/info
After a discussion on the mailing list on moving manpages to
${PREFIX}/share/man for consistency with base where it is
installed in usr/share/man, it appeared the same should happen
to GNU info files which were installed under share in base and
not in ports.
Now texinfo is not in base on any of the supported version of FreeBSD
it is possible to proceed to this move and it is easier to do than
the manpage change.
Other benefit than consistency are less patching: all build tools but
cmake are expecting info files to be under share/info and cmake (patched here)
was having an exception for BSD so the patch makes FreeBSD case less
specific for them
Bump revision of all impacted ports
PR: 232907
exp-run by: antoine
Differential Revision: https://reviews.freebsd.org/D17816
Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542
Bump PORTREVISION for ports depending on the canonical version of GCC
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275
Bump PORTREVISIONs for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707
Add USES=makeinfo
Even with the recently added USES=gmake I still have spurious failures on
the exp builders, adding USES=makeinfo works around the problem
Switch to gmake to hopefully prevent pkg-fallout errors that have been popping
up (specifically for math/fftw3-long), although, I can't reproduce them.
Making all in FAQ
restore=: && backupdir=".am$$" && am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:"
&& cd . && rm -rf $backupdir && mkdir $backupdir && if (/bin/sh /wrkdirs/usr/
ports/math/fftw3-long/work/fftw-3.3.5/missing makeinfo --version) >/dev/null
2>&1;
then for f in ./fftw3.info ./fftw3.info-[0-9] ./fftw3.info-[0-9][0-9]
./fftw3.i[0-9] ./fftw3.i[0-9][0-9]; do if test -f $f; then mv $f $backupdir;
restore=mv; else :; fi; done; else :; fi && cd "$am__cwd"; if /bin/sh
/wrkdirs/usr/ports/math/fftw3-long/work/fftw-3.3.5/missing makeinfo -I .
-o ./fftw3.info ./fftw3.texi; then rc=0; CDPATH="${ZSH_VERSION+.}:" && cd .;
else rc=$?; CDPATH="${ZSH_VERSION+.}:" && cd . && $restore $backupdir/*
`echo "././fftw3.info" | sed 's|[^/]*$||'`; fi; rm -rf $backupdir; exit $rc
/wrkdirs/usr/ports/math/fftw3-long/work/fftw-3.3.5/missing: makeinfo: not found
WARNING: 'makeinfo' is missing on your system.
You should only need it if you modified a '.texi' file, or
any other file indirectly affecting the aspect of the manual.
You might want to install the Texinfo package:
<http://www.gnu.org/software/texinfo/>
The spurious makeinfo call might also be the consequence of
using a buggy 'make' (AIX, DU, IRIX), in which case you might
want to install GNU make:
<http://www.gnu.org/software/make/>
*** Error code 127
- Update to 3.3.5
- Add SIMD option to easily toggle cpu optimizations (ON by default)
- Add OPENMPI option to build the MPI libraries (OFF by default) [1]
- Strip slave port binaries
- Take maintainership
PR: 203847 [1]
Submitted by: <dieterich@ogolem.org> [1]
Repair instances, almost all courtesy of bf ;-), of spaces
and/or tabs before the =. This made doing regular expressions
on the ports tree really difficult.
Approved by: portmgr (not really, but touches unstaged ports)
Replace USE_GCC=4.6+ and USE_GCC=4.4+ by USE_GCC=yes.
Right now this is a noop in the former case and a noop in the latter
case unless lang/gcc44 has been installed explicitly.
This puts a bit more emphasis on standardizing on a canonical version
"current" GCC and makes it easier to update that canonical version
by changing the default in Mk/bsd.gcc.mk and updating the lang/gcc port.
That is, USE_GCC=yes means "use a decent/modern version of GCC" without
having to worry about details.
Approved by: portmgr (bdrewery)
This changes almost all the "gnomehack" only USE_GNOME cases to USES= pathfix.
If a port used other USE_GNOME items it was untouched.
The ports that used other USES were fixed by hand.
PR: ports/177081
Reviewed by: bapt
Approved by: portmgr (miwi)
add an option for the fftw3 OpenMP libraries, and turn it
off by default, because some compilers (e.g. clang) don't
support OpenMP; make linking to the fftw3*_threads shared
libraries easier by adding tags for the system thread
library; simplify math library changes for the long flavor
on 7.*; defer patch cleanup, to make debugging easier;
tweak format of post-patch target
- update fftw3* to 3.3 [1], and adjust dependent ports
- make use of optimizations by default, where possible
(quad flavor to follow shortly, and mpi at a later date)
Suggestions and patches from: ache, C. Burns, wen
- Add LDFLAGS to CONFIGURE_ENV and MAKE_ENV (as it was done with LDFLAGS)
- Fix all ports that add {CPP,LD}FLAGS to *_ENV to modify flags instead
PR: 157936
Submitted by: myself
Exp-runs by: pav
Approved by: pav
Remove USE_GNOME=gnometarget from ports. It has been a empty keyword since
mid 2008.
PR: ports/159624
Submitted by: Ruslan Mahmatkhanov <cvs-src@yandex.ru>
- After digging into the Makefile and configure for fftw3 I discovered
that USE_FORTRAN was only used to determine what name mangling scheme
it had to use to compile the shim libs for fortran, but compiling everything
using 'C' anyway.
With this diff, the slave ports fftw3-long-fortran, fftw3-float-fortran
and fftw3-fortran disapear since the shims are always built, without
necessitating the use of a USE_FORTRAN.
Approved by: ahze (Maintainer)
- Ensure Fortran shim is not built if USE_FORTRAN is not set.
- Split Fortran option into slave ports fftw3-fortran long-fortran float-fortran
- Have to bump PORTREVISION for package builds etc..
- Fix silly spelling mistakes "Percision" -> "Precision" noted.
Reviewed by: itetcu (portmgr)
Approved by: ahze (Maintainer)
- Set --mandir and --infodir in CONFIGURE_ARGS if the configure script
supports them. This is determined by running ``configure --help'' in
do-configure target and set the shell variable _LATE_CONFIGURE_ARGS
which is then passed to CONFIGURE_ARGS.
- Remove --mandir and --infodir in ports' Makefile where applicable
Few ports use REINPLACE_CMD to achieve the same effect, remove them too.
- Correct some manual pages location from PREFIX/man to MANPREFIX/man
- Define INFO_PATH where necessary
- Document that .info files are installed in a subdirectory relative to
PREFIX/INFO_PATH and slightly change add-plist-info to use INFO_PATH and
subdirectory detection.
PR: ports/111470
Approved by: portmgr
Discussed with: stas (Mk/*), gerald (info related stuffs)
Tested by: pointyhat exp run
Mass-conversion to the USE_AUTOTOOLS New World Order. The code present
in bsd.autotools.mk essentially makes this a no-op given that all the
old variables set a USE_AUTOTOOLS_COMPAT variable, which is parsed in
exactly the same way as USE_AUTOTOOLS itself.
Moreover, USE_AUTOTOOLS has already been extensively tested by the GNOME
team -- all GNOME 2.12.x ports use it.
Preliminary documentation can be found at:
http://people.FreeBSD.org/~ade/autotools.txt
which is in the process of being SGMLized before introduction into the
Porters Handbook.
Light blue touch-paper. Run.
- Fix build of fftw3-long on 5.x, 6.x, 7.x when CPUTYPE is not defined
by using math/ldouble. Also, CPUTYPE=[i386|i486|i586|i686] and proabably
some others won't work.
Reported by: PointyHat
- Fix build for 4.x users who define WITH_OPTIMIZED_CFLAGS and have SSE by
using internal libtool since we use gcc34 and libtool15 doesn't like a
different CC/CXX other than the one it was built with [1]
- Fix plist if WITH_SMP_THREADS was defined
- Bump PORTREVISION to force update of plist changes
Reported by: marcus [1]
- Remove i386 Restriction of 3dnow/sse since amd64 has sse and 3dnow
- Remove WITH_SSE Option and auto-detect it under WITH_OPTIMIZED_CFLAGS
- Move auto-detect of 3dnow under WITH_OPTIMIZED_CFLAGS
- Add note about WITH_OPTIMIZED_ATHLON will fall back to 3dNow if you don't have
a Athlon
- Fix man pages so they say ${PREFIX}/etc instead of /etc
- Fix core dump of fftw-wisdom in >=5.x [1] by removing a dirty work around
to use a 16-byte aligned maloc by really using freebsd's 16-byte
aligned maloc
Reported by: phk