configure.ac 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. AC_INIT([isync], [1.1.0])
  2. AC_CONFIG_HEADERS([config.h])
  3. AM_INIT_AUTOMAKE
  4. AM_MAINTAINER_MODE
  5. AC_PROG_CC
  6. if test "$GCC" = yes; then
  7. CFLAGS="$CFLAGS -pipe -W -Wall -Wshadow -Wstrict-prototypes -ansi -pedantic -Wno-overlength-strings"
  8. fi
  9. CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
  10. AC_CACHE_CHECK([whether strftime supports %z], ob_cv_strftime_z,
  11. [AC_TRY_RUN(
  12. [#include <time.h>
  13. #include <string.h>
  14. int main(void)
  15. {
  16. time_t t = 0;
  17. char buf[32];
  18. strftime(buf, sizeof(buf), "%z", gmtime(&t));
  19. return !!strcmp(buf, "+0000");
  20. }
  21. ], [ob_cv_strftime_z=yes], [ob_cv_strftime_z=no], [ob_cv_strftime_z="yes (assumed)"])])
  22. if test "x$ob_cv_strftime_z" = x"no"; then
  23. AC_MSG_ERROR([libc lacks necessary feature])
  24. fi
  25. AC_CHECK_HEADERS(sys/poll.h sys/select.h)
  26. AC_CHECK_FUNCS(vasprintf memrchr)
  27. AC_CHECK_LIB(socket, socket, [SOCK_LIBS="-lsocket"])
  28. AC_CHECK_LIB(nsl, inet_ntoa, [SOCK_LIBS="$SOCK_LIBS -lnsl"])
  29. AC_SUBST(SOCK_LIBS)
  30. have_ssl_paths=
  31. AC_ARG_WITH(ssl,
  32. AC_HELP_STRING([--with-ssl[=PATH]], [where to look for SSL [detect]]),
  33. [ob_cv_with_ssl=$withval])
  34. if test "x$ob_cv_with_ssl" != xno; then
  35. case $ob_cv_with_ssl in
  36. ""|yes)
  37. dnl Detect the pkg-config tool, as it may have extra info about the openssl
  38. dnl installation we can use. I *believe* this is what we are expected to do
  39. dnl on really recent Redhat Linux hosts.
  40. AC_PATH_PROG(PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin)
  41. if test "$PKGCONFIG" != "no" ; then
  42. AC_MSG_CHECKING([OpenSSL presence with pkg-config])
  43. if $PKGCONFIG --exists openssl; then
  44. SSL_LIBS=`$PKGCONFIG --libs-only-l openssl`
  45. SSL_LDFLAGS=`$PKGCONFIG --libs-only-L openssl`
  46. SSL_CPPFLAGS=`$PKGCONFIG --cflags-only-I openssl`
  47. have_ssl_paths=yes
  48. AC_MSG_RESULT([found])
  49. else
  50. AC_MSG_RESULT([not found])
  51. fi
  52. fi
  53. ;;
  54. *)
  55. SSL_LDFLAGS=-L$ob_cv_with_ssl/lib$libsuff
  56. SSL_CPPFLAGS=-I$ob_cv_with_ssl/include
  57. ;;
  58. esac
  59. if test -z "$have_ssl_paths"; then
  60. sav_LDFLAGS=$LDFLAGS
  61. LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
  62. AC_CHECK_LIB(dl, dlopen, [LIBDL=-ldl])
  63. AC_CHECK_LIB(crypto, CRYPTO_lock, [LIBCRYPTO=-lcrypto])
  64. AC_CHECK_LIB(ssl, SSL_connect,
  65. [SSL_LIBS="-lssl $LIBCRYPTO $LIBDL" have_ssl_paths=yes])
  66. LDFLAGS=$sav_LDFLAGS
  67. fi
  68. sav_CPPFLAGS=$CPPFLAGS
  69. CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
  70. AC_CHECK_HEADER(openssl/ssl.h, , [have_ssl_paths=])
  71. CPPFLAGS=$sav_CPPFLAGS
  72. if test -z "$have_ssl_paths"; then
  73. if test -n "$ob_cv_with_ssl"; then
  74. AC_MSG_ERROR([OpenSSL libs and/or includes were not found where specified])
  75. fi
  76. else
  77. AC_DEFINE(HAVE_LIBSSL, 1, [if you have the OpenSSL libraries])
  78. CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
  79. LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
  80. fi
  81. fi
  82. AC_SUBST(SSL_LIBS)
  83. AC_CACHE_CHECK([for Berkley DB >= 4.2], ac_cv_berkdb4,
  84. [ac_cv_berkdb4=no
  85. AC_TRY_LINK([#include <db.h>],
  86. [DB *db;
  87. db->truncate(db, 0, 0, 0);
  88. db->open(db, 0, "foo", "foo", DB_HASH, DB_CREATE, 0)],
  89. [ac_cv_berkdb4=yes])])
  90. if test "x$ac_cv_berkdb4" = xno; then
  91. AC_MSG_ERROR([Berkley DB >= 4.2 not found.])
  92. fi
  93. AC_ARG_ENABLE(compat,
  94. AC_HELP_STRING([--disable-compat], [don't include isync compatibility wrapper [no]]),
  95. [ob_cv_enable_compat=$enableval])
  96. if test "x$ob_cv_enable_compat" != xno; then
  97. AC_CHECK_FUNCS(getopt_long)
  98. fi
  99. AM_CONDITIONAL(with_compat, test "x$ob_cv_enable_compat" != xno)
  100. AC_CONFIG_FILES([Makefile src/Makefile src/compat/Makefile isync.spec])
  101. AC_OUTPUT
  102. if test -n "$have_ssl_paths"; then
  103. AC_MSG_RESULT([
  104. Using SSL
  105. ])
  106. else
  107. AC_MSG_RESULT([
  108. Not using SSL
  109. ])
  110. fi