comparison src/fftw-3.3.8/Makefile.am @ 82:d0c2a83c1364

Add FFTW 3.3.8 source, and a Linux build
author Chris Cannam
date Tue, 19 Nov 2019 14:52:55 +0000
parents
children
comparison
equal deleted inserted replaced
81:7029a4916348 82:d0c2a83c1364
1 OPTIONS_AUTOMAKE=gnu
2 lib_LTLIBRARIES = libfftw3@PREC_SUFFIX@.la
3
4 # pkgincludedir = $(includedir)/fftw3@PREC_SUFFIX@
5 # nodist_pkginclude_HEADERS = config.h
6
7 # recompile genfft if maintainer mode is true
8 if MAINTAINER_MODE
9 GENFFT = genfft
10 EXTRA_libfftw3@PREC_SUFFIX@_la_DEPENDENCIES = assert-shared-version-info
11 else
12 GENFFT =
13 endif
14
15 ACLOCAL_AMFLAGS=-I m4
16
17 # when using combined thread libraries (necessary on Windows), we want
18 # to build threads/ first, because libfftw3_threads is added to
19 # libfftw3.
20 #
21 # Otherwise, we want to build libfftw3_threads after libfftw3
22 # so that we can track the fact that libfftw3_threads depends upon
23 # libfftw3.
24 #
25 # This is the inescapable result of combining three bad ideas
26 # (threads, Windows, and shared libraries).
27 #
28 if COMBINED_THREADS
29 CHICKEN_EGG=threads .
30 else
31 CHICKEN_EGG=. threads
32 endif
33
34 # Only build in doc/ if not disabled by user (i.e. not all
35 # tools are available, such as fig2dev in maintainer mode)
36 if BUILD_DOC
37 DOCDIR=doc
38 else
39 DOCDIR=
40 endif
41
42 SUBDIRS=support $(GENFFT) kernel simd-support dft rdft reodft api \
43 libbench2 $(CHICKEN_EGG) tests mpi $(DOCDIR) tools m4
44 EXTRA_DIST=COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in \
45 CMakeLists.txt cmake.config.h.in FFTW3Config.cmake.in \
46 FFTW3ConfigVersion.cmake.in README-perfcnt.md
47
48 SIMD_LIBS = simd-support/libsimd_support.la
49
50 if HAVE_SSE2
51 SSE2_LIBS = dft/simd/sse2/libdft_sse2_codelets.la \
52 rdft/simd/sse2/librdft_sse2_codelets.la
53 endif
54
55 if HAVE_AVX
56 AVX_LIBS = dft/simd/avx/libdft_avx_codelets.la \
57 rdft/simd/avx/librdft_avx_codelets.la
58 endif
59
60 if HAVE_AVX_128_FMA
61 AVX_128_FMA_LIBS = dft/simd/avx-128-fma/libdft_avx_128_fma_codelets.la \
62 rdft/simd/avx-128-fma/librdft_avx_128_fma_codelets.la
63 endif
64
65 if HAVE_AVX2
66 AVX2_LIBS = dft/simd/avx2/libdft_avx2_codelets.la \
67 dft/simd/avx2-128/libdft_avx2_128_codelets.la \
68 rdft/simd/avx2/librdft_avx2_codelets.la \
69 rdft/simd/avx2-128/librdft_avx2_128_codelets.la
70 endif
71
72 if HAVE_AVX512
73 AVX512_LIBS = dft/simd/avx512/libdft_avx512_codelets.la \
74 rdft/simd/avx512/librdft_avx512_codelets.la
75 endif
76
77 if HAVE_KCVI
78 KCVI_LIBS = dft/simd/kcvi/libdft_kcvi_codelets.la \
79 rdft/simd/kcvi/librdft_kcvi_codelets.la
80 endif
81
82 if HAVE_ALTIVEC
83 ALTIVEC_LIBS = dft/simd/altivec/libdft_altivec_codelets.la \
84 rdft/simd/altivec/librdft_altivec_codelets.la
85 endif
86
87 if HAVE_VSX
88 VSX_LIBS = dft/simd/vsx/libdft_vsx_codelets.la \
89 rdft/simd/vsx/librdft_vsx_codelets.la
90 endif
91
92 if HAVE_NEON
93 NEON_LIBS = dft/simd/neon/libdft_neon_codelets.la \
94 rdft/simd/neon/librdft_neon_codelets.la
95 endif
96
97 if HAVE_GENERIC_SIMD128
98 GENERIC_SIMD128_LIBS = dft/simd/generic-simd128/libdft_generic_simd128_codelets.la \
99 rdft/simd/generic-simd128/librdft_generic_simd128_codelets.la
100 endif
101
102 if HAVE_GENERIC_SIMD256
103 GENERIC_SIMD256_LIBS = dft/simd/generic-simd256/libdft_generic_simd256_codelets.la \
104 rdft/simd/generic-simd256/librdft_generic_simd256_codelets.la
105 endif
106
107 if THREADS
108 if COMBINED_THREADS
109 COMBINED_THREADLIBS=threads/libfftw3@PREC_SUFFIX@_threads.la
110 endif
111 endif
112
113 libfftw3@PREC_SUFFIX@_la_SOURCES =
114
115 libfftw3@PREC_SUFFIX@_la_LIBADD = \
116 kernel/libkernel.la \
117 dft/libdft.la \
118 dft/scalar/libdft_scalar.la \
119 dft/scalar/codelets/libdft_scalar_codelets.la \
120 rdft/librdft.la \
121 rdft/scalar/librdft_scalar.la \
122 rdft/scalar/r2cf/librdft_scalar_r2cf.la \
123 rdft/scalar/r2cb/librdft_scalar_r2cb.la \
124 rdft/scalar/r2r/librdft_scalar_r2r.la \
125 reodft/libreodft.la \
126 api/libapi.la \
127 $(SIMD_LIBS) $(SSE2_LIBS) $(AVX_LIBS) $(AVX_128_FMA_LIBS) \
128 $(AVX2_LIBS) $(ALTIVEC_LIBS) \
129 $(VSX_LIBS) $(NEON_LIBS) $(KCVI_LIBS) $(AVX512_LIBS) \
130 $(GENERIC_SIMD128_LIBS) $(GENERIC_SIMD256_LIBS) \
131 $(COMBINED_THREADLIBS)
132
133 if QUAD
134 # cannot use -no-undefined since dependent on libquadmath
135 libfftw3@PREC_SUFFIX@_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS)
136 else
137 libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -version-info \
138 @SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS)
139 endif
140
141 fftw3@PREC_SUFFIX@.pc: fftw.pc
142 cp -f fftw.pc fftw3@PREC_SUFFIX@.pc
143 pkgconfigdir = $(libdir)/pkgconfig
144 pkgconfig_DATA = fftw3@PREC_SUFFIX@.pc
145
146 FFTW3@PREC_SUFFIX@Config.cmake: $(top_srcdir)/FFTW3Config.cmake.in
147 $(SED) \
148 -e 's|[@]PREC_SUFFIX@|@PREC_SUFFIX@|g' \
149 -e 's|[@]CMAKE_INSTALL_FULL_LIBDIR@|$(libdir)|g' \
150 -e 's|[@]CMAKE_INSTALL_FULL_INCLUDEDIR@|$(includedir)|g' \
151 $(top_srcdir)/FFTW3Config.cmake.in > $@
152 FFTW3@PREC_SUFFIX@ConfigVersion.cmake: $(top_srcdir)/FFTW3ConfigVersion.cmake.in
153 $(SED) \
154 -e 's|[@]FFTW_VERSION@|@PACKAGE_VERSION@|g' \
155 $(top_srcdir)/FFTW3ConfigVersion.cmake.in > $@
156 cmakedir = $(libdir)/cmake/fftw3
157 cmake_DATA = FFTW3@PREC_SUFFIX@Config.cmake FFTW3@PREC_SUFFIX@ConfigVersion.cmake
158
159 WISDOM_DIR = /etc/fftw
160 WISDOM = wisdom@PREC_SUFFIX@
161
162 WISDOM_TIME=12 # default to 12-hour limit, i.e. overnight
163 WISDOM_FLAGS=--verbose --canonical --time-limit=$(WISDOM_TIME)
164
165 wisdom:
166 tools/fftw@PREC_SUFFIX@-wisdom -o $@ $(WISDOM_FLAGS)
167
168 install-wisdom: wisdom
169 $(mkinstalldirs) $(WISDOM_DIR)
170 $(INSTALL_DATA) wisdom $(WISDOM_DIR)/$(WISDOM)
171
172 if MAINTAINER_MODE
173 assert-shared-version-info:
174 current=`echo @SHARED_VERSION_INFO@ | cut -d: -f1`; \
175 age=`echo @SHARED_VERSION_INFO@ | cut -d: -f3`; \
176 major=3; \
177 expected=`expr $$age + $$major`; \
178 test $$current -eq $$expected
179 endif