<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/650eacba44ea935d4be2bac60dfed826d687cfec">https://github.com/macports/macports-ports/commit/650eacba44ea935d4be2bac60dfed826d687cfec</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 650eacba44e finufft: new port in math
</span>650eacba44e is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 650eacba44ea935d4be2bac60dfed826d687cfec
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Thu Jul 13 19:20:43 2023 +0800
<span style='display:block; white-space:pre;color:#404040;'> finufft: new port in math
</span>---
math/finufft/Portfile | 61 ++++++++++++++++++++++++++++++
math/finufft/files/patch-makefile.diff | 68 ++++++++++++++++++++++++++++++++++
2 files changed, 129 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/finufft/Portfile b/math/finufft/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..23fd2dba5f8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/finufft/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup compilers 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup makefile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup flatironinstitute finufft 2.1.0 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories math science
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license Apache-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Flatiron Institute Non-uniform Fast Fourier Transform library, FINUFFT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description This is a lightweight CPU library to compute the three standard types \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ of non-uniform FFT to a specified precision, in one, two or three dimensions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 5ff2866405e3b30ce65f4474f888cbcbdbcdeff9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 52f25f0ace06a6dd514a29e728ad31e317b76631912bf0bc53cbf06355e24ad7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 2292702
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:fftw-3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:fftw-3-single
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2014
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.openmp_version 2.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.setup require_fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-makefile.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s,@CC@,${configure.cc}," ${worksrcpath}/makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s,@CXX@,${configure.cxx}," ${worksrcpath}/makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s,@FC@,${configure.fc}," ${worksrcpath}/makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s,@PREFIX@,${prefix}," ${worksrcpath}/makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[string match *clang* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s,@LOMP@,-L${prefix}/lib/libomp -lomp," ${worksrcpath}/makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s,-fcx-limited-range,," ${worksrcpath}/makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s,@LOMP@,-lgomp," ${worksrcpath}/makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.target fortran lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${worksrcpath}/lib/libfinufft.dylib ${destroot}${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${worksrcpath}/lib-static/libfinufft.a ${destroot}${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${worksrcpath}/include/finufft ${destroot}${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach file [glob -type f "${worksrcpath}/include/finufft*"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall ${file} ${destroot}${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${worksrcpath}/docs ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target test
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/finufft/files/patch-makefile.diff b/math/finufft/files/patch-makefile.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6f88f97e736
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/finufft/files/patch-makefile.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,68 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- makefile.orig 2022-06-14 05:50:15.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ makefile 2023-07-13 17:31:30.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,18 +15,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Windows compatibility, jonas-kr, Sep '20.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Compiler (CXX), and linking from C, fortran. We use GCC by default...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-CXX = g++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-CC = gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-FC = gfortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-CLINK = -lstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-FLINK = $(CLINK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++CXX = @CXX@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++CC = @CC@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FC = @FC@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++CLINK =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FLINK =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Python version: we use python3 by default, but you may need to change...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PYTHON = python3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # baseline compile flags for GCC (no multithreading):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Notes: 1) -Ofast breaks isfinite() & isnan(), so use -O3 which now is as fast
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 2) -fcx-limited-range for fortran-speed complex arith in C++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 3) we use simply-expanded (:=) makefile variables, otherwise confusing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-CFLAGS := -O3 -funroll-loops -march=native -fcx-limited-range $(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++CFLAGS := -O3 -funroll-loops -fcx-limited-range $(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FFLAGS := $(CFLAGS) $(FFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXFLAGS := $(CFLAGS) $(CXXFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # put this in your make.inc if you have FFTW>=3.3.5 and want thread-safe use...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,11 +34,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # FFTW base name, and math linking...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FFTWNAME = fftw3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # linux default is fftw3_omp, since 10% faster than fftw3_threads...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-FFTWOMPSUFFIX = omp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FFTWOMPSUFFIX = threads
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBS := -lm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # multithreading for GCC: C++/C/Fortran, MATLAB, and octave (ICC differs)...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OMPFLAGS = -fopenmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-OMPLIBS = -lgomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++OMPLIBS = @LOMP@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MOMPFLAGS = -D_OPENMP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OOMPFLAGS =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # MATLAB MEX compilation (also see below +=)...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For your OS, override the above by setting make variables in make.inc ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # (Please look in make.inc.* for ideas)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--include make.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# -include make.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Now come flags that should be added, whatever user overrode in make.inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -fPIC (position-indep code) needed to build dyn lib (.so)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,7 +65,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXFLAGS := $(CXXFLAGS) $(INCL) -fPIC -std=c++14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS := $(CFLAGS) $(INCL) -fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # here /usr/include needed for fftw3.f "fortran header"... (JiriK: no longer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-FFLAGS := $(FFLAGS) $(INCL) -I/usr/include -fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FFLAGS := $(FFLAGS) $(INCL) -I@PREFIX@/include -fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # single-thread total list of math and FFTW libs (now both precisions)...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # (Note: finufft tests use LIBSFFT; spread & util tests only need LIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,7 +92,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ifeq ($(MINGW),ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DYNLIB = lib/$(LIBNAME).dll
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- DYNLIB = lib/$(LIBNAME).so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ DYNLIB = lib/$(LIBNAME).dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ STATICLIB = lib-static/$(LIBNAME).a
</span></pre><pre style='margin:0'>
</pre>