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