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