ac_check_fftw.m4 3.0 KB

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