Chris@82: OPTIONS_AUTOMAKE=gnu Chris@82: lib_LTLIBRARIES = libfftw3@PREC_SUFFIX@.la Chris@82: Chris@82: # pkgincludedir = $(includedir)/fftw3@PREC_SUFFIX@ Chris@82: # nodist_pkginclude_HEADERS = config.h Chris@82: Chris@82: # recompile genfft if maintainer mode is true Chris@82: if MAINTAINER_MODE Chris@82: GENFFT = genfft Chris@82: EXTRA_libfftw3@PREC_SUFFIX@_la_DEPENDENCIES = assert-shared-version-info Chris@82: else Chris@82: GENFFT = Chris@82: endif Chris@82: Chris@82: ACLOCAL_AMFLAGS=-I m4 Chris@82: Chris@82: # when using combined thread libraries (necessary on Windows), we want Chris@82: # to build threads/ first, because libfftw3_threads is added to Chris@82: # libfftw3. Chris@82: # Chris@82: # Otherwise, we want to build libfftw3_threads after libfftw3 Chris@82: # so that we can track the fact that libfftw3_threads depends upon Chris@82: # libfftw3. Chris@82: # Chris@82: # This is the inescapable result of combining three bad ideas Chris@82: # (threads, Windows, and shared libraries). Chris@82: # Chris@82: if COMBINED_THREADS Chris@82: CHICKEN_EGG=threads . Chris@82: else Chris@82: CHICKEN_EGG=. threads Chris@82: endif Chris@82: Chris@82: # Only build in doc/ if not disabled by user (i.e. not all Chris@82: # tools are available, such as fig2dev in maintainer mode) Chris@82: if BUILD_DOC Chris@82: DOCDIR=doc Chris@82: else Chris@82: DOCDIR= Chris@82: endif Chris@82: Chris@82: SUBDIRS=support $(GENFFT) kernel simd-support dft rdft reodft api \ Chris@82: libbench2 $(CHICKEN_EGG) tests mpi $(DOCDIR) tools m4 Chris@82: EXTRA_DIST=COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in \ Chris@82: CMakeLists.txt cmake.config.h.in FFTW3Config.cmake.in \ Chris@82: FFTW3ConfigVersion.cmake.in README-perfcnt.md Chris@82: Chris@82: SIMD_LIBS = simd-support/libsimd_support.la Chris@82: Chris@82: if HAVE_SSE2 Chris@82: SSE2_LIBS = dft/simd/sse2/libdft_sse2_codelets.la \ Chris@82: rdft/simd/sse2/librdft_sse2_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_AVX Chris@82: AVX_LIBS = dft/simd/avx/libdft_avx_codelets.la \ Chris@82: rdft/simd/avx/librdft_avx_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_AVX_128_FMA Chris@82: AVX_128_FMA_LIBS = dft/simd/avx-128-fma/libdft_avx_128_fma_codelets.la \ Chris@82: rdft/simd/avx-128-fma/librdft_avx_128_fma_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_AVX2 Chris@82: AVX2_LIBS = dft/simd/avx2/libdft_avx2_codelets.la \ Chris@82: dft/simd/avx2-128/libdft_avx2_128_codelets.la \ Chris@82: rdft/simd/avx2/librdft_avx2_codelets.la \ Chris@82: rdft/simd/avx2-128/librdft_avx2_128_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_AVX512 Chris@82: AVX512_LIBS = dft/simd/avx512/libdft_avx512_codelets.la \ Chris@82: rdft/simd/avx512/librdft_avx512_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_KCVI Chris@82: KCVI_LIBS = dft/simd/kcvi/libdft_kcvi_codelets.la \ Chris@82: rdft/simd/kcvi/librdft_kcvi_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_ALTIVEC Chris@82: ALTIVEC_LIBS = dft/simd/altivec/libdft_altivec_codelets.la \ Chris@82: rdft/simd/altivec/librdft_altivec_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_VSX Chris@82: VSX_LIBS = dft/simd/vsx/libdft_vsx_codelets.la \ Chris@82: rdft/simd/vsx/librdft_vsx_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_NEON Chris@82: NEON_LIBS = dft/simd/neon/libdft_neon_codelets.la \ Chris@82: rdft/simd/neon/librdft_neon_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_GENERIC_SIMD128 Chris@82: GENERIC_SIMD128_LIBS = dft/simd/generic-simd128/libdft_generic_simd128_codelets.la \ Chris@82: rdft/simd/generic-simd128/librdft_generic_simd128_codelets.la Chris@82: endif Chris@82: Chris@82: if HAVE_GENERIC_SIMD256 Chris@82: GENERIC_SIMD256_LIBS = dft/simd/generic-simd256/libdft_generic_simd256_codelets.la \ Chris@82: rdft/simd/generic-simd256/librdft_generic_simd256_codelets.la Chris@82: endif Chris@82: Chris@82: if THREADS Chris@82: if COMBINED_THREADS Chris@82: COMBINED_THREADLIBS=threads/libfftw3@PREC_SUFFIX@_threads.la Chris@82: endif Chris@82: endif Chris@82: Chris@82: libfftw3@PREC_SUFFIX@_la_SOURCES = Chris@82: Chris@82: libfftw3@PREC_SUFFIX@_la_LIBADD = \ Chris@82: kernel/libkernel.la \ Chris@82: dft/libdft.la \ Chris@82: dft/scalar/libdft_scalar.la \ Chris@82: dft/scalar/codelets/libdft_scalar_codelets.la \ Chris@82: rdft/librdft.la \ Chris@82: rdft/scalar/librdft_scalar.la \ Chris@82: rdft/scalar/r2cf/librdft_scalar_r2cf.la \ Chris@82: rdft/scalar/r2cb/librdft_scalar_r2cb.la \ Chris@82: rdft/scalar/r2r/librdft_scalar_r2r.la \ Chris@82: reodft/libreodft.la \ Chris@82: api/libapi.la \ Chris@82: $(SIMD_LIBS) $(SSE2_LIBS) $(AVX_LIBS) $(AVX_128_FMA_LIBS) \ Chris@82: $(AVX2_LIBS) $(ALTIVEC_LIBS) \ Chris@82: $(VSX_LIBS) $(NEON_LIBS) $(KCVI_LIBS) $(AVX512_LIBS) \ Chris@82: $(GENERIC_SIMD128_LIBS) $(GENERIC_SIMD256_LIBS) \ Chris@82: $(COMBINED_THREADLIBS) Chris@82: Chris@82: if QUAD Chris@82: # cannot use -no-undefined since dependent on libquadmath Chris@82: libfftw3@PREC_SUFFIX@_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS) Chris@82: else Chris@82: libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -version-info \ Chris@82: @SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS) Chris@82: endif Chris@82: Chris@82: fftw3@PREC_SUFFIX@.pc: fftw.pc Chris@82: cp -f fftw.pc fftw3@PREC_SUFFIX@.pc Chris@82: pkgconfigdir = $(libdir)/pkgconfig Chris@82: pkgconfig_DATA = fftw3@PREC_SUFFIX@.pc Chris@82: Chris@82: FFTW3@PREC_SUFFIX@Config.cmake: $(top_srcdir)/FFTW3Config.cmake.in Chris@82: $(SED) \ Chris@82: -e 's|[@]PREC_SUFFIX@|@PREC_SUFFIX@|g' \ Chris@82: -e 's|[@]CMAKE_INSTALL_FULL_LIBDIR@|$(libdir)|g' \ Chris@82: -e 's|[@]CMAKE_INSTALL_FULL_INCLUDEDIR@|$(includedir)|g' \ Chris@82: $(top_srcdir)/FFTW3Config.cmake.in > $@ Chris@82: FFTW3@PREC_SUFFIX@ConfigVersion.cmake: $(top_srcdir)/FFTW3ConfigVersion.cmake.in Chris@82: $(SED) \ Chris@82: -e 's|[@]FFTW_VERSION@|@PACKAGE_VERSION@|g' \ Chris@82: $(top_srcdir)/FFTW3ConfigVersion.cmake.in > $@ Chris@82: cmakedir = $(libdir)/cmake/fftw3 Chris@82: cmake_DATA = FFTW3@PREC_SUFFIX@Config.cmake FFTW3@PREC_SUFFIX@ConfigVersion.cmake Chris@82: Chris@82: WISDOM_DIR = /etc/fftw Chris@82: WISDOM = wisdom@PREC_SUFFIX@ Chris@82: Chris@82: WISDOM_TIME=12 # default to 12-hour limit, i.e. overnight Chris@82: WISDOM_FLAGS=--verbose --canonical --time-limit=$(WISDOM_TIME) Chris@82: Chris@82: wisdom: Chris@82: tools/fftw@PREC_SUFFIX@-wisdom -o $@ $(WISDOM_FLAGS) Chris@82: Chris@82: install-wisdom: wisdom Chris@82: $(mkinstalldirs) $(WISDOM_DIR) Chris@82: $(INSTALL_DATA) wisdom $(WISDOM_DIR)/$(WISDOM) Chris@82: Chris@82: if MAINTAINER_MODE Chris@82: assert-shared-version-info: Chris@82: current=`echo @SHARED_VERSION_INFO@ | cut -d: -f1`; \ Chris@82: age=`echo @SHARED_VERSION_INFO@ | cut -d: -f3`; \ Chris@82: major=3; \ Chris@82: expected=`expr $$age + $$major`; \ Chris@82: test $$current -eq $$expected Chris@82: endif