svn commit: r424661 - in head/math/fftw3: . files

Jason E. Hale jhale at FreeBSD.org
Wed Oct 26 00:16:11 UTC 2016


Author: jhale
Date: Wed Oct 26 00:16:09 2016
New Revision: 424661
URL: https://svnweb.freebsd.org/changeset/ports/424661

Log:
  - 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 at ogolem.org> [1]

Added:
  head/math/fftw3/files/
  head/math/fftw3/files/extrapatch-tests_fftw-bench.c   (contents, props changed)
  head/math/fftw3/files/patch-configure   (contents, props changed)
Modified:
  head/math/fftw3/Makefile
  head/math/fftw3/distinfo
  head/math/fftw3/pkg-plist

Modified: head/math/fftw3/Makefile
==============================================================================
--- head/math/fftw3/Makefile	Wed Oct 26 00:05:40 2016	(r424660)
+++ head/math/fftw3/Makefile	Wed Oct 26 00:16:09 2016	(r424661)
@@ -3,18 +3,19 @@
 #    $MCom: ports-experimental/math/fftw3/Makefile,v 1.1 2006/03/28 00:08:57 ahze Exp $
 
 PORTNAME=	fftw3
-PORTVERSION=	3.3.3
-PORTREVISION?=	2
+PORTVERSION=	3.3.5
+PORTREVISION?=	0
 CATEGORIES=	math
 MASTER_SITES=	http://www.fftw.org/ \
 		ftp://ftp.fftw.org/pub/fftw/
 PKGNAMESUFFIX=	${FFTW3_PKGNAMESUFFIX}
 DISTNAME=	fftw-${PORTVERSION}
 
-MAINTAINER=	ports at FreeBSD.org
+MAINTAINER=	jhale at FreeBSD.org
 COMMENT?=	Fast C routines to compute the Discrete Fourier Transform
 
 LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING
 
 #current flavors: default, float, long, and quad
 FFTW3_FLAVOR?=	default
@@ -26,7 +27,8 @@ USES=		libtool pathfix perl5 pkgconfig
 USE_PERL5=	build
 USE_LDCONFIG=	yes
 
-CONFIGURE_ARGS=		--enable-shared --enable-threads --disable-fortran
+CONFIGURE_ARGS=	--enable-shared --enable-threads --disable-fortran
+MPIDIR?=	${LOCALBASE}/mpi/openmpi
 
 .if ${FFTW3_FLAVOR} == "default"
 INFO=	fftw3
@@ -36,43 +38,60 @@ INFO=	fftw3
 INSTALL_TARGET=	install-pkgconfigDATA install-libLTLIBRARIES install-exec
 .endif
 
-OPTIONS_DEFINE=		G77_WRAPPERS OPENMP OPTIMIZED_CFLAGS
-
-G77_WRAPPERS_DESC=	Alter Fortran wrappers for use with g77
-OPENMP_DESC=		Build OpenMP multithreaded libraries
-
-OPTIONS_DEFAULT=	OPTIMIZED_CFLAGS
+OPTIONS_DEFINE=		G77_WRAPPERS OPENMP OPENMPI OPTIMIZED_CFLAGS SIMD
+OPTIONS_DEFAULT=	OPTIMIZED_CFLAGS SIMD
+.if ${FFTW3_FLAVOR} == "quad"
+OPTIONS_EXCLUDE+=	OPENMPI
+.endif
+OPTIONS_SUB=		yes
+
+G77_WRAPPERS_DESC=		Alter Fortran wrappers for use with g77
+
+OPENMP_DESC=			Build OpenMP multithreaded libraries
+OPENMP_USES=			compiler:openmp
+OPENMP_USES_OFF=		compiler:env
+OPENMP_CONFIGURE_ENABLE=	openmp
+OPENMP_EXTRA_PATCHES=		${FILESDIR}/extrapatch-tests_fftw-bench.c
+
+OPENMPI_DESC=			Build OpenMPI parallel libraries
+OPENMPI_LIB_DEPENDS=		libmpi.so:net/openmpi
+OPENMPI_CONFIGURE_ENABLE=	mpi
+OPENMPI_CONFIGURE_ENV=		MPICC=${MPIDIR}/bin/mpicc \
+				MPIRUN=${MPIDIR}/bin/mpirun
 
 .include <bsd.port.options.mk>
 
-.if ${PORT_OPTIONS:MOPENMP}
-CONFIGURE_ARGS+=	--enable-openmp
-PLIST_SUB+=	OPENMP=""
-USES+=		compiler:openmp
-.else
-CONFIGURE_ARGS+=	--disable-openmp
-PLIST_SUB+=	OPENMP="@comment "
-USES+=		compiler:env
-.endif
-
 #Users must add altivec to MACHINE_CPU when desired:
 #this is not currently done in bsd.cpu.mk
 .if ${FFTW3_FLAVOR} == "default"
-.  if !empty(MACHINE_CPU:Mavx)
+.  if ${PORT_OPTIONS:MSIMD}
+.    if !empty(MACHINE_CPU:Mavx)
 CONFIGURE_ARGS+=--enable-avx
-.  elif !empty(MACHINE_CPU:Msse2)
+.    endif
+.    if !empty(MACHINE_CPU:Mavx2)
+CONFIGURE_ARGS+=--enable-avx2 --enable-fma
+.    endif
+.    if !empty(MACHINE_CPU:Msse2)
 CONFIGURE_ARGS+=--enable-sse2
+.    endif
 .  endif
 .elif ${FFTW3_FLAVOR} == "float"
 FFTW3_SUFX=	f
 FFTW3_PKGNAMESUFFIX=	-float
 CONFIGURE_ARGS+=--enable-float
-.  if !empty(MACHINE_CPU:Mavx)
+.  if ${PORT_OPTIONS:MSIMD}
+.    if !empty(MACHINE_CPU:Mavx)
 CONFIGURE_ARGS+=--enable-avx
-.  elif !empty(MACHINE_CPU:Msse)
-CONFIGURE_ARGS+=--enable-sse
-.  elif !empty(ARCH:Mpowerpc*) && !empty(MACHINE_CPU:Maltivec)
+.    endif
+.    if !empty(MACHINE_CPU:Mavx2)
+CONFIGURE_ARGS+=--enable-avx2 --enable-fma
+.    endif
+.    if !empty(MACHINE_CPU:Msse)
+CONFIGURE_ARGS+=--enable-sse2
+.    endif
+.    if !empty(ARCH:Mpowerpc*) && !empty(MACHINE_CPU:Maltivec)
 CONFIGURE_ARGS+=--enable-altivec
+.    endif
 .  endif
 .elif ${FFTW3_FLAVOR} == "long"
 FFTW3_SUFX=	l
@@ -101,7 +120,7 @@ CFLAGS+=	-O3 -ffast-math -fstrict-aliasi
 .  if !defined(WITH_DEBUG)
 CFLAGS+=	-fomit-frame-pointer
 .  endif
-.  if ${ARCH} == "i386" && (${COMPILER_TYPE} == "gcc" || !empty(USE_GCC))
+.  if ${ARCH} == "i386" && (${COMPILER_TYPE} == "gcc" || !empty(USE_GCC)) && !${PORT_OPTIONS:MOPENMPI}
 CFLAGS+=	-malign-double
 .  endif
 WITHOUT_NO_STRICT_ALIASING=	yes
@@ -119,7 +138,6 @@ post-patch:
 	/[^\]$$/s/[^[:blank:]]*fftw-wisdom-to-conf[^[:blank:]]*//' \
 		${WRKSRC}/tools/Makefile.in
 .endif
-	@${FIND} ${WRKSRC} -type f \( -name \*.bak -or -name \*.orig \) -delete
 
 post-configure:
 #After issuing --disable-fortran in order to avoid using a Fortran compiler
@@ -129,21 +147,20 @@ post-configure:
 	@${ECHO_CMD} "#define F77_FUNC(name,NAME) name ## _" >> ${WRKSRC}/config.h
 	@${ECHO_CMD} "#define F77_FUNC_(name,NAME) name ## _" >> ${WRKSRC}/config.h
 	@${ECHO_CMD} "#define F77_FUNC_EQUIV 1" >> ${WRKSRC}/config.h
-.if ${PORT_OPTIONS:MG77_WRAPPERS}
+
+post-configure-G77_WRAPPERS-on:
 	@${ECHO_CMD} "#define WITH_G77_WRAPPERS 1" >> ${WRKSRC}/config.h
-.endif
 
 .if ${FFTW3_FLAVOR} != "default"
 post-install:
-	@${INSTALL_MAN} ${WRKSRC}/tools/fftw${FFTW3_SUFX}-wisdom.1 ${STAGEDIR}${PREFIX}/man/man1
+	${INSTALL_MAN} ${WRKSRC}/tools/fftw${FFTW3_SUFX}-wisdom.1 ${STAGEDIR}${PREFIX}/man/man1
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib*.so
 .endif
 
 regression-test test: smallcheck
 
-.for t in bigcheck check exhaustive-check paranoid-check smallcheck
-${t}: build
-	@(cd ${WRKSRC}/tests && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
-		${MAKE_ARGS} ${t})
-.endfor
+bigcheck check exhaustive-check paranoid-check smallcheck: build
+	${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/tests \
+		${MAKE_ARGS} $@
 
 .include <bsd.port.post.mk>

Modified: head/math/fftw3/distinfo
==============================================================================
--- head/math/fftw3/distinfo	Wed Oct 26 00:05:40 2016	(r424660)
+++ head/math/fftw3/distinfo	Wed Oct 26 00:16:09 2016	(r424661)
@@ -1,2 +1,3 @@
-SHA256 (fftw-3.3.3.tar.gz) = 85cdfc0a0ba10d8fa4f0f8e733aac1a5936c859832a9e3d5c0731fb5c54a97f3
-SIZE (fftw-3.3.3.tar.gz) = 3920661
+TIMESTAMP = 1477312473
+SHA256 (fftw-3.3.5.tar.gz) = 8ecfe1b04732ec3f5b7d279fdb8efcad536d555f9d1e8fabd027037d45ea8bcf
+SIZE (fftw-3.3.5.tar.gz) = 4148447

Added: head/math/fftw3/files/extrapatch-tests_fftw-bench.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/fftw3/files/extrapatch-tests_fftw-bench.c	Wed Oct 26 00:16:09 2016	(r424661)
@@ -0,0 +1,11 @@
+Fix regression tests when OPENMP option is enabled.
+--- tests/fftw-bench.c.orig	2016-10-25 22:27:48 UTC
++++ tests/fftw-bench.c
+@@ -110,7 +110,6 @@ void rdwisdom(void)
+      if (threads_ok) {
+ 	  BENCH_ASSERT(FFTW(init_threads)());
+ 	  FFTW(plan_with_nthreads)(nthreads);
+-          FFTW(make_planner_thread_safe)();
+ #ifdef _OPENMP
+ 	  omp_set_num_threads(nthreads);
+ #endif

Added: head/math/fftw3/files/patch-configure
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/fftw3/files/patch-configure	Wed Oct 26 00:16:09 2016	(r424661)
@@ -0,0 +1,11 @@
+--- configure.orig	2016-07-30 20:34:50 UTC
++++ configure
+@@ -14397,7 +14397,7 @@ fi
+ esac
+ 
+ case "${ax_cv_c_compiler_vendor}" in
+-    gnu|intel)
++    gnu|intel|clang)
+ 	# SSE/SSE2
+ 	if test "$have_sse2" = "yes" -a "x$SSE2_CFLAGS" = x; then
+ 	    if test "$PRECISION" = d; then flag=msse2; else flag=msse; fi

Modified: head/math/fftw3/pkg-plist
==============================================================================
--- head/math/fftw3/pkg-plist	Wed Oct 26 00:05:40 2016	(r424660)
+++ head/math/fftw3/pkg-plist	Wed Oct 26 00:16:09 2016	(r424661)
@@ -1,22 +1,29 @@
 bin/fftw%%FFTW3_SUFX%%-wisdom
 %%DEF%%bin/fftw-wisdom-to-conf
+%%DEF%%%%OPENMPI%%include/fftw3-mpi.f03
+%%DEF%%%%OPENMPI%%include/fftw3-mpi.h
 %%DEF%%include/fftw3.f
 %%DEF%%include/fftw3.f03
 %%DEF%%include/fftw3.h
+%%DEF%%%%OPENMPI%%include/fftw3l-mpi.f03
 %%DEF%%include/fftw3l.f03
 %%DEF%%include/fftw3q.f03
 lib/libfftw3%%FFTW3_SUFX%%.a
 lib/libfftw3%%FFTW3_SUFX%%.so
 lib/libfftw3%%FFTW3_SUFX%%.so.3
-lib/libfftw3%%FFTW3_SUFX%%.so.3.3.2
+lib/libfftw3%%FFTW3_SUFX%%.so.3.5.5
+%%OPENMPI%%lib/libfftw3%%FFTW3_SUFX%%_mpi.a
+%%OPENMPI%%lib/libfftw3%%FFTW3_SUFX%%_mpi.so
+%%OPENMPI%%lib/libfftw3%%FFTW3_SUFX%%_mpi.so.3
+%%OPENMPI%%lib/libfftw3%%FFTW3_SUFX%%_mpi.so.3.5.5
 %%OPENMP%%lib/libfftw3%%FFTW3_SUFX%%_omp.a
 %%OPENMP%%lib/libfftw3%%FFTW3_SUFX%%_omp.so
 %%OPENMP%%lib/libfftw3%%FFTW3_SUFX%%_omp.so.3
-%%OPENMP%%lib/libfftw3%%FFTW3_SUFX%%_omp.so.3.3.2
+%%OPENMP%%lib/libfftw3%%FFTW3_SUFX%%_omp.so.3.5.5
 lib/libfftw3%%FFTW3_SUFX%%_threads.a
 lib/libfftw3%%FFTW3_SUFX%%_threads.so
 lib/libfftw3%%FFTW3_SUFX%%_threads.so.3
-lib/libfftw3%%FFTW3_SUFX%%_threads.so.3.3.2
+lib/libfftw3%%FFTW3_SUFX%%_threads.so.3.5.5
 libdata/pkgconfig/fftw3%%FFTW3_SUFX%%.pc
 %%DEF%%man/man1/fftw-wisdom.1.gz
 %%DEF%%man/man1/fftw-wisdom-to-conf.1.gz


More information about the svn-ports-all mailing list