View | Details | Raw Unified | Return to bug 239511
Collapse All | Expand All

(-)b/math/fftw3/Makefile (-1 / +9 lines)
Lines 1-161 Link Here
1
# Created by: Lars Koeller <Lars.Koeller@Uni-Bielefeld.DE>
1
# Created by: Lars Koeller <Lars.Koeller@Uni-Bielefeld.DE>
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	fftw3
4
PORTNAME=	fftw3
5
DISTVERSION=	3.3.8
5
DISTVERSION=	3.3.8
6
PORTREVISION?=	3
6
PORTREVISION?=	4
7
CATEGORIES=	math
7
CATEGORIES=	math
8
MASTER_SITES=	http://www.fftw.org/ \
8
MASTER_SITES=	http://www.fftw.org/ \
9
		ftp://ftp.fftw.org/pub/fftw/
9
		ftp://ftp.fftw.org/pub/fftw/
10
PKGNAMESUFFIX=	${FFTW3_PKGNAMESUFFIX}
10
PKGNAMESUFFIX=	${FFTW3_PKGNAMESUFFIX}
11
DISTNAME=	fftw-${DISTVERSION}
11
DISTNAME=	fftw-${DISTVERSION}
12
12
13
MAINTAINER=	jhale@FreeBSD.org
13
MAINTAINER=	jhale@FreeBSD.org
14
COMMENT?=	Fast C routines to compute the Discrete Fourier Transform
14
COMMENT?=	Fast C routines to compute the Discrete Fourier Transform
15
15
16
LICENSE=	GPLv2+
16
LICENSE=	GPLv2+
17
LICENSE_FILE=	${WRKSRC}/COPYING
17
LICENSE_FILE=	${WRKSRC}/COPYING
18
18
19
#current flavors: default, float, long, and quad
19
#current flavors: default, float, long, and quad
20
FFTW3_FLAVOR?=	default
20
FFTW3_FLAVOR?=	default
21
FFTW3_SUFX=
21
FFTW3_SUFX=
22
22
23
GNU_CONFIGURE=	yes
23
GNU_CONFIGURE=	yes
24
INSTALL_TARGET=	install-strip
24
INSTALL_TARGET=	install-strip
25
TEST_TARGET=	smallcheck #bigcheck check exhaustive-check paranoid-check
25
TEST_TARGET=	smallcheck #bigcheck check exhaustive-check paranoid-check
26
TEST_WRKSRC=	${WRKSRC}/tests
26
TEST_WRKSRC=	${WRKSRC}/tests
27
USES=		gmake libtool makeinfo pathfix perl5 pkgconfig
27
USES=		gmake libtool makeinfo pathfix perl5 pkgconfig
28
USE_PERL5=	build
28
USE_PERL5=	build
29
USE_LDCONFIG=	yes
29
USE_LDCONFIG=	yes
30
30
31
CONFIGURE_ARGS=	--enable-shared --enable-threads --disable-fortran
31
CONFIGURE_ARGS=	--enable-shared --enable-threads --disable-fortran
32
MPIDIR?=	${LOCALBASE}/mpi/openmpi
32
MPIDIR?=	${LOCALBASE}/mpi/openmpi
33
33
34
.if ${FFTW3_FLAVOR} == "default"
34
.if ${FFTW3_FLAVOR} == "default"
35
INFO=	fftw3
35
INFO=	fftw3
36
.else
36
.else
37
#For non-default flavors, build and install the flavor-dependent components
37
#For non-default flavors, build and install the flavor-dependent components
38
#only, so that these flavors may coexist with the default flavor
38
#only, so that these flavors may coexist with the default flavor
39
INSTALL_TARGET=	install-cmakeDATA install-pkgconfigDATA install-libLTLIBRARIES install-exec
39
INSTALL_TARGET=	install-cmakeDATA install-pkgconfigDATA install-libLTLIBRARIES install-exec
40
.endif
40
.endif
41
41
42
OPTIONS_DEFINE=		G77_WRAPPERS OPENMP OPENMPI OPTIMIZED_CFLAGS SIMD
42
OPTIONS_DEFINE=		G77_WRAPPERS OPENMP OPENMPI OPTIMIZED_CFLAGS SIMD
43
OPTIONS_DEFAULT=	OPTIMIZED_CFLAGS SIMD
43
OPTIONS_DEFAULT=	OPTIMIZED_CFLAGS SIMD
44
.if ${FFTW3_FLAVOR} == "quad"
44
.if ${FFTW3_FLAVOR} == "quad"
45
OPTIONS_EXCLUDE+=	OPENMPI
45
OPTIONS_EXCLUDE+=	OPENMPI
46
.endif
46
.endif
47
OPTIONS_SUB=		yes
47
OPTIONS_SUB=		yes
48
48
49
G77_WRAPPERS_DESC=		Alter Fortran wrappers for use with g77
49
G77_WRAPPERS_DESC=		Alter Fortran wrappers for use with g77
50
50
51
OPENMP_DESC=			Build OpenMP multithreaded libraries
51
OPENMP_DESC=			Build OpenMP multithreaded libraries
52
OPENMP_USES=			compiler:openmp
52
OPENMP_USES=			compiler:openmp
53
OPENMP_USES_OFF=		compiler:env
53
OPENMP_USES_OFF=		compiler:env
54
OPENMP_CONFIGURE_ENABLE=	openmp
54
OPENMP_CONFIGURE_ENABLE=	openmp
55
OPENMP_EXTRA_PATCHES=		${FILESDIR}/extrapatch-tests_fftw-bench.c
55
OPENMP_EXTRA_PATCHES=		${FILESDIR}/extrapatch-tests_fftw-bench.c
56
56
57
OPENMPI_DESC=			Build OpenMPI parallel libraries
57
OPENMPI_DESC=			Build OpenMPI parallel libraries
58
OPENMPI_LIB_DEPENDS=		libmpi.so:net/openmpi
58
OPENMPI_LIB_DEPENDS=		libmpi.so:net/openmpi
59
OPENMPI_CONFIGURE_ENABLE=	mpi
59
OPENMPI_CONFIGURE_ENABLE=	mpi
60
OPENMPI_CONFIGURE_ENV=		MPICC=${MPIDIR}/bin/mpicc \
60
OPENMPI_CONFIGURE_ENV=		MPICC=${MPIDIR}/bin/mpicc \
61
				MPIRUN=${MPIDIR}/bin/mpirun
61
				MPIRUN=${MPIDIR}/bin/mpirun
62
62
63
.include <bsd.port.options.mk>
63
.include <bsd.port.options.mk>
64
64
65
#Enable cycle counter via the CNTVCT_EL0 register for all variants on arm64
66
.if ${ARCH} == "aarch64"
67
CONFIGURE_ARGS+=--enable-armv8-cntvct-el0
68
.endif
69
65
#Users must add altivec to MACHINE_CPU when desired:
70
#Users must add altivec to MACHINE_CPU when desired:
66
#this is not currently done in bsd.cpu.mk
71
#this is not currently done in bsd.cpu.mk
67
.if ${FFTW3_FLAVOR} == "default"
72
.if ${FFTW3_FLAVOR} == "default"
68
.  if ${PORT_OPTIONS:MSIMD}
73
.  if ${PORT_OPTIONS:MSIMD}
69
.    if !empty(MACHINE_CPU:Mavx)
74
.    if !empty(MACHINE_CPU:Mavx)
70
CONFIGURE_ARGS+=--enable-avx
75
CONFIGURE_ARGS+=--enable-avx
71
.    endif
76
.    endif
72
.    if !empty(MACHINE_CPU:Mavx2)
77
.    if !empty(MACHINE_CPU:Mavx2)
73
CONFIGURE_ARGS+=--enable-avx2 --enable-fma
78
CONFIGURE_ARGS+=--enable-avx2 --enable-fma
74
.    endif
79
.    endif
75
.    if !empty(MACHINE_CPU:Msse2)
80
.    if !empty(MACHINE_CPU:Msse2)
76
CONFIGURE_ARGS+=--enable-sse2
81
CONFIGURE_ARGS+=--enable-sse2
77
.    endif
82
.    endif
78
.  endif
83
.  endif
79
.elif ${FFTW3_FLAVOR} == "float"
84
.elif ${FFTW3_FLAVOR} == "float"
80
FFTW3_SUFX=	f
85
FFTW3_SUFX=	f
81
FFTW3_PKGNAMESUFFIX=	-float
86
FFTW3_PKGNAMESUFFIX=	-float
82
CONFIGURE_ARGS+=--enable-float
87
CONFIGURE_ARGS+=--enable-float
83
.  if ${PORT_OPTIONS:MSIMD}
88
.  if ${PORT_OPTIONS:MSIMD}
84
.    if !empty(MACHINE_CPU:Mavx)
89
.    if !empty(MACHINE_CPU:Mavx)
85
CONFIGURE_ARGS+=--enable-avx
90
CONFIGURE_ARGS+=--enable-avx
86
.    endif
91
.    endif
87
.    if !empty(MACHINE_CPU:Mavx2)
92
.    if !empty(MACHINE_CPU:Mavx2)
88
CONFIGURE_ARGS+=--enable-avx2 --enable-fma
93
CONFIGURE_ARGS+=--enable-avx2 --enable-fma
89
.    endif
94
.    endif
90
.    if !empty(MACHINE_CPU:Msse)
95
.    if !empty(MACHINE_CPU:Msse)
91
CONFIGURE_ARGS+=--enable-sse2
96
CONFIGURE_ARGS+=--enable-sse2
92
.    endif
97
.    endif
93
.    if !empty(ARCH:Mpowerpc*) && !empty(MACHINE_CPU:Maltivec)
98
.    if !empty(ARCH:Mpowerpc*) && !empty(MACHINE_CPU:Maltivec)
94
CONFIGURE_ARGS+=--enable-altivec
99
CONFIGURE_ARGS+=--enable-altivec
95
.    endif
100
.    endif
101
.    if ${ARCH} == "aarch64"
102
CONFIGURE_ARGS+=--enable-neon
103
.    endif
96
.  endif
104
.  endif
97
.elif ${FFTW3_FLAVOR} == "long"
105
.elif ${FFTW3_FLAVOR} == "long"
98
FFTW3_SUFX=	l
106
FFTW3_SUFX=	l
99
FFTW3_PKGNAMESUFFIX=	-long
107
FFTW3_PKGNAMESUFFIX=	-long
100
CONFIGURE_ARGS+=--enable-long-double
108
CONFIGURE_ARGS+=--enable-long-double
101
.elif ${FFTW3_FLAVOR} == "quad"
109
.elif ${FFTW3_FLAVOR} == "quad"
102
FFTW3_SUFX=	q
110
FFTW3_SUFX=	q
103
FFTW3_PKGNAMESUFFIX=	-quad
111
FFTW3_PKGNAMESUFFIX=	-quad
104
CONFIGURE_ARGS+=--enable-quad-precision
112
CONFIGURE_ARGS+=--enable-quad-precision
105
ONLY_FOR_ARCHS=		i386 amd64
113
ONLY_FOR_ARCHS=		i386 amd64
106
USE_GCC=	yes
114
USE_GCC=	yes
107
.endif
115
.endif
108
116
109
.if ${FFTW3_FLAVOR} == "default"
117
.if ${FFTW3_FLAVOR} == "default"
110
PLIST_SUB+=	DEF="" NONDEF="@comment "
118
PLIST_SUB+=	DEF="" NONDEF="@comment "
111
.else
119
.else
112
PLIST_SUB+=	DEF="@comment " NONDEF=""
120
PLIST_SUB+=	DEF="@comment " NONDEF=""
113
.endif
121
.endif
114
122
115
PLIST_SUB+=	FFTW3_SUFX="${FFTW3_SUFX}"
123
PLIST_SUB+=	FFTW3_SUFX="${FFTW3_SUFX}"
116
124
117
.include <bsd.port.pre.mk>
125
.include <bsd.port.pre.mk>
118
126
119
.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
127
.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
120
CFLAGS+=	-O3 -fstrict-aliasing
128
CFLAGS+=	-O3 -fstrict-aliasing
121
.  if !defined(WITH_DEBUG)
129
.  if !defined(WITH_DEBUG)
122
CFLAGS+=	-fomit-frame-pointer
130
CFLAGS+=	-fomit-frame-pointer
123
.  endif
131
.  endif
124
.  if ${ARCH} == "i386" && (${COMPILER_TYPE} == "gcc" || !empty(USE_GCC)) && !${PORT_OPTIONS:MOPENMPI}
132
.  if ${ARCH} == "i386" && (${COMPILER_TYPE} == "gcc" || !empty(USE_GCC)) && !${PORT_OPTIONS:MOPENMPI}
125
CFLAGS+=	-malign-double
133
CFLAGS+=	-malign-double
126
.  endif
134
.  endif
127
WITHOUT_NO_STRICT_ALIASING=	yes
135
WITHOUT_NO_STRICT_ALIASING=	yes
128
.endif # end OPTIMIZED_CFLAGS
136
.endif # end OPTIMIZED_CFLAGS
129
137
130
post-patch:
138
post-patch:
131
	@${REINPLACE_CMD} -e 's|/etc/fftw|${PREFIX}/etc/fftw|' \
139
	@${REINPLACE_CMD} -e 's|/etc/fftw|${PREFIX}/etc/fftw|' \
132
		${WRKSRC}/Makefile.in \
140
		${WRKSRC}/Makefile.in \
133
		${WRKSRC}/api/import-system-wisdom.c \
141
		${WRKSRC}/api/import-system-wisdom.c \
134
		${WRKSRC}/doc/fftw3* \
142
		${WRKSRC}/doc/fftw3* \
135
		${WRKSRC}/tools/*
143
		${WRKSRC}/tools/*
136
.if ${FFTW3_FLAVOR} != "default"
144
.if ${FFTW3_FLAVOR} != "default"
137
	@${REINPLACE_CMD} -E \
145
	@${REINPLACE_CMD} -E \
138
	-e '/(DIST_COMMON|bin_SCRIPTS|BUILT_SOURCES|EXTRA_DIST) =/,\
146
	-e '/(DIST_COMMON|bin_SCRIPTS|BUILT_SOURCES|EXTRA_DIST) =/,\
139
	/[^\]$$/s/[^[:blank:]]*fftw-wisdom-to-conf[^[:blank:]]*//' \
147
	/[^\]$$/s/[^[:blank:]]*fftw-wisdom-to-conf[^[:blank:]]*//' \
140
		${WRKSRC}/tools/Makefile.in
148
		${WRKSRC}/tools/Makefile.in
141
.endif
149
.endif
142
150
143
post-configure:
151
post-configure:
144
#After issuing --disable-fortran in order to avoid using a Fortran compiler
152
#After issuing --disable-fortran in order to avoid using a Fortran compiler
145
#during configuration, edit config.h to provide Fortran wrappers appropriate for
153
#during configuration, edit config.h to provide Fortran wrappers appropriate for
146
#gfortran, with ac_cv_f77_mangling="lower case, underscore, no extra underscore"
154
#gfortran, with ac_cv_f77_mangling="lower case, underscore, no extra underscore"
147
	@${REINPLACE_CMD} -e '/DISABLE_FORTRAN/d' ${WRKSRC}/config.h
155
	@${REINPLACE_CMD} -e '/DISABLE_FORTRAN/d' ${WRKSRC}/config.h
148
	@${ECHO_CMD} "#define F77_FUNC(name,NAME) name ## _" >> ${WRKSRC}/config.h
156
	@${ECHO_CMD} "#define F77_FUNC(name,NAME) name ## _" >> ${WRKSRC}/config.h
149
	@${ECHO_CMD} "#define F77_FUNC_(name,NAME) name ## _" >> ${WRKSRC}/config.h
157
	@${ECHO_CMD} "#define F77_FUNC_(name,NAME) name ## _" >> ${WRKSRC}/config.h
150
	@${ECHO_CMD} "#define F77_FUNC_EQUIV 1" >> ${WRKSRC}/config.h
158
	@${ECHO_CMD} "#define F77_FUNC_EQUIV 1" >> ${WRKSRC}/config.h
151
159
152
post-configure-G77_WRAPPERS-on:
160
post-configure-G77_WRAPPERS-on:
153
	@${ECHO_CMD} "#define WITH_G77_WRAPPERS 1" >> ${WRKSRC}/config.h
161
	@${ECHO_CMD} "#define WITH_G77_WRAPPERS 1" >> ${WRKSRC}/config.h
154
162
155
.if ${FFTW3_FLAVOR} != "default"
163
.if ${FFTW3_FLAVOR} != "default"
156
post-install:
164
post-install:
157
	${INSTALL_MAN} ${WRKSRC}/tools/fftw${FFTW3_SUFX}-wisdom.1 ${STAGEDIR}${PREFIX}/man/man1
165
	${INSTALL_MAN} ${WRKSRC}/tools/fftw${FFTW3_SUFX}-wisdom.1 ${STAGEDIR}${PREFIX}/man/man1
158
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib*.so
166
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib*.so
159
.endif
167
.endif
160
168
161
.include <bsd.port.post.mk>
169
.include <bsd.port.post.mk>

Return to bug 239511