ac_check_fftwf.m4 3.1 KB

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