ac_check_fftwf.m4 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. AC_DEFUN([AC_CHECK_FFTWF],[\
  2. save_CXXFLAGS="$CXXFLAGS";
  3. save_LIBS="$LIBS"
  4. ###########
  5. ## Read command line parameters for FFTW
  6. ###########
  7. AC_ARG_WITH(fftw,
  8. [AS_HELP_STRING([--with-fftw=DIR],
  9. [set FFTW installation directory to DIR])],
  10. [FFTW_DIR="$withval"; FFTW_INCLUDE="-I$FFTW_DIR/include"; FFTWF_LIB="-L$FFTW_DIR/lib"])
  11. AC_ARG_WITH(fftw_include,
  12. [AS_HELP_STRING([--with-fftw-include=DIR],
  13. [set fftw3.h directory path to DIR])],
  14. [FFTW_INCLUDE="-I$withval"])
  15. AC_ARG_WITH(fftw_lib,
  16. [AS_HELP_STRING([--with-fftw-lib=LIB],
  17. [set FFTW library to LIB])],
  18. [FFTWF_LIB="$withval"])
  19. ###########
  20. ## Check for fftw3.h
  21. ###########
  22. CXXFLAGS="$FFTW_INCLUDE $CXXFLAGS"
  23. AC_MSG_CHECKING([for fftw3.h])
  24. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include<fftw3.h>]],[[;]])],\
  25. [cv_fftw3_h=yes],\
  26. [cv_fftw3_h=no])
  27. AC_MSG_RESULT($cv_fftw3_h)
  28. if test "$cv_fftw3_h" = no; then
  29. AC_MSG_ERROR([Cannot find fftw3.h (with CXXFLAGS=$CXXFLAGS)
  30. Please specify the location of fftw3.h using: --with-fftw-include=DIR
  31. or specify the FFTW installation directory using --with-fftw=DIR])
  32. fi
  33. ###########
  34. ## Check for library
  35. ###########
  36. LIBS="$FFTWF_LIB $LIBS"
  37. AC_MSG_CHECKING([for fftwf_plan_dft_1d])
  38. AC_TRY_LINK_FUNC(fftwf_plan_dft_1d,\
  39. [cv_lfftw3f=yes;],\
  40. [cv_lfftw3f=no;])
  41. AC_MSG_RESULT($cv_lfftw3f)
  42. if test "x$cv_lfftw3f" = xno; then
  43. AC_CHECK_LIB([fftw3f],fftwf_plan_dft_1d,\
  44. [cv_lfftw3f=yes; FFTWF_LIB="$FFTWF_LIB -lfftw3f"],\
  45. [cv_lfftw3f=no])
  46. fi
  47. if test "x$cv_lfftw3f" = xno; then
  48. AC_CHECK_LIB([fftw3f],fftwf_plan_dft_1d,\
  49. [cv_lfftw3f=yes; FFTWF_LIB="$FFTWF_LIB -lfftw3f -lm"],\
  50. [cv_lfftw3f=no],\
  51. [-lm])
  52. fi
  53. if test "x$cv_lfftw3f" = xno; then
  54. AC_CHECK_LIB([mkl_intel_lp64],fftwf_plan_dft_1d,\
  55. [cv_lfftw3f=yes; FFTWF_LIB="$FFTWF_LIB -lmkl_intel_thread -lmkl_core -liomp5 -lpthread"],\
  56. [cv_lfftw3f=no],\
  57. [-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread])
  58. fi
  59. if test "$cv_lfftw3f" = yes; then
  60. AC_SUBST(FFTWF_LIB)
  61. AC_SUBST(FFTW_INCLUDE)
  62. AC_DEFINE(HAVE_FFTWF,1,[Define if we have FFTW])
  63. acx_fftwf_ok=yes
  64. #AC_SUBST(acx_fftwf_ok)
  65. else
  66. acx_fftwf_ok=no
  67. #AC_SUBST(acx_fftwf_ok)
  68. AC_MSG_WARN([Cannot find single precision FFTW library (with LIBS=$LIBS)
  69. Please specify the location of the library using: --with-fftw-lib=LIB
  70. or specify the FFTW installation directory using --with-fftw=DIR])
  71. fi
  72. LIBS="$save_LIBS"
  73. CXXFLAGS="$save_CXXFLAGS"
  74. ])