ac_check_fftw.m4 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. AC_DEFUN([AC_CHECK_FFTW],[\
  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"; FFTW_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. [FFTW_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="$FFTW_LIB $LIBS"
  38. AC_MSG_CHECKING([for fftw_plan_dft_1d])
  39. AC_TRY_LINK_FUNC(fftw_plan_dft_1d,\
  40. [cv_lfftw3=yes;],\
  41. [cv_lfftw3=no;])
  42. AC_MSG_RESULT($cv_lfftw3)
  43. if test "x$cv_lfftw3" = xno; then
  44. AC_CHECK_LIB([fftw3],fftw_plan_dft_1d,\
  45. [cv_lfftw3=yes; FFTW_LIB="$FFTW_LIB -lfftw3"],\
  46. [cv_lfftw3=no])
  47. fi
  48. if test "x$cv_lfftw3" = xno; then
  49. AC_CHECK_LIB([fftw3],fftw_plan_dft_1d,\
  50. [cv_lfftw3=yes; FFTW_LIB="$FFTW_LIB -lfftw3 -lm"],\
  51. [cv_lfftw3=no],\
  52. [-lm])
  53. fi
  54. if test "x$cv_lfftw3" = xno; then
  55. AC_CHECK_LIB([mkl_intel_lp64],fftw_plan_dft_1d,\
  56. [cv_lfftw3=yes; FFTW_LIB="$FFTW_LIB -lmkl_intel_thread -lmkl_core -liomp5 -lpthread"],\
  57. [cv_lfftw3=no],\
  58. [-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread])
  59. fi
  60. if test "$cv_lfftw3" = yes; then
  61. AC_SUBST(FFTW_LIB)
  62. AC_SUBST(FFTW_INCLUDE)
  63. AC_DEFINE(HAVE_FFTW,1,[Define if we have FFTW])
  64. acx_fftw_ok=yes
  65. #AC_SUBST(acx_fftw_ok)
  66. else
  67. acx_fftw_ok=no
  68. #AC_SUBST(acx_fftw_ok)
  69. AC_MSG_ERROR([Cannot find 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. AC_MSG_RESULT(disabling FFTW library)
  75. FFTW_INCLUDE="";
  76. FFTW_LIB="";
  77. fi
  78. LIBS="$save_LIBS"
  79. CXXFLAGS="$save_CXXFLAGS"
  80. ])