mirror of https://github.com/aria2/aria2
				
				
				
			
		
			
				
	
	
		
			632 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			632 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
| #                                               -*- Autoconf -*-
 | |
| # Process this file with autoconf to produce a configure script.
 | |
| #
 | |
| AC_PREREQ([2.67])
 | |
| LT_PREREQ([2.2.6])
 | |
| AC_INIT([aria2],[1.15.1],[t-tujikawa@users.sourceforge.net],[aria2],[http://aria2.sourceforge.net/])
 | |
| AC_USE_SYSTEM_EXTENSIONS
 | |
| LT_INIT()
 | |
| AC_CONFIG_MACRO_DIR([m4])
 | |
| AC_CANONICAL_HOST
 | |
| AC_CANONICAL_TARGET
 | |
| AM_INIT_AUTOMAKE()
 | |
| AM_PATH_CPPUNIT(1.10.2)
 | |
| AC_CONFIG_SRCDIR([src/a2io.h])
 | |
| AC_CONFIG_HEADERS([config.h])
 | |
| 
 | |
| case "$target" in
 | |
|   *mingw*|*cygwin*)
 | |
|     win_build=yes
 | |
|     LIBS="-lws2_32 -lwsock32 -lgdi32 -lwinmm $LIBS"
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| AC_DEFINE_UNQUOTED([TARGET], ["$target"], [Define target-type])
 | |
| 
 | |
| # Checks for arguments.
 | |
| ARIA2_ARG_WITH([gnutls])
 | |
| ARIA2_ARG_WITH([libnettle])
 | |
| ARIA2_ARG_WITH([libgmp])
 | |
| ARIA2_ARG_WITH([libgcrypt])
 | |
| ARIA2_ARG_WITH([openssl])
 | |
| ARIA2_ARG_WITH([sqlite3])
 | |
| ARIA2_ARG_WITH([libxml2])
 | |
| ARIA2_ARG_WITH([libexpat])
 | |
| ARIA2_ARG_WITH([libcares])
 | |
| ARIA2_ARG_WITH([libz])
 | |
| 
 | |
| ARIA2_ARG_ENABLE([bittorrent])
 | |
| ARIA2_ARG_ENABLE([metalink])
 | |
| ARIA2_ARG_ENABLE([epoll])
 | |
| 
 | |
| AC_ARG_WITH([ca-bundle],
 | |
|   AS_HELP_STRING([--with-ca-bundle=FILE],[Use FILE as default CA bundle.]),
 | |
|   [ca_bundle=$withval], [ca_bundle=""])
 | |
| 
 | |
| AC_ARG_WITH([bashcompletiondir],
 | |
|   AS_HELP_STRING([--with-bashcompletiondir=DIR],
 | |
|                  [Directory to install bash_completion file]),
 | |
|   [bashcompletiondir=$withval], [bashcompletiondir=$docdir/bash_completion])
 | |
| 
 | |
| # Checks for programs.
 | |
| AC_PROG_CXX
 | |
| AC_PROG_CC
 | |
| AC_PROG_INSTALL
 | |
| AC_PROG_MKDIR_P
 | |
| AC_PROG_YACC
 | |
| 
 | |
| AC_CHECK_TOOL([AR], [ar], [:])
 | |
| if test "x$AR" = "x:"; then
 | |
|   AC_MSG_FAILURE([ar is not found in the system.])
 | |
| fi
 | |
| AC_SUBST([AR])
 | |
| 
 | |
| AC_PATH_PROG([A2X], [a2x])
 | |
| AC_SUBST([A2X])
 | |
| AM_CONDITIONAL([HAVE_A2X], [ test "x$A2X" != "x" ])
 | |
| 
 | |
| AC_PATH_PROG([ASCIIDOC], [asciidoc])
 | |
| AC_SUBST([ASCIIDOC])
 | |
| AM_CONDITIONAL([HAVE_ASCIIDOC], [ test "x$ASCIIDOC" != "x" ])
 | |
| 
 | |
| # Setting language choice
 | |
| AC_LANG([C++])
 | |
| 
 | |
| # Check pkg-config is available
 | |
| PKG_PROG_PKG_CONFIG([0.20])
 | |
| 
 | |
| # Checks for libraries.
 | |
| if test "x$with_libxml2" = "xyes"; then
 | |
|   AM_PATH_XML2([2.6.24], [have_libxml2=yes])
 | |
|   if test "x$have_libxml2" = "xyes"; then
 | |
|     AC_DEFINE([HAVE_LIBXML2], [1], [Define to 1 if you have libxml2.])
 | |
|     LIBS="$XML_LIBS $LIBS"
 | |
|     CPPFLAGS="$XML_CPPFLAGS $CPPFLAGS"
 | |
|   elif test "x$with_libxml2_requested" = "xyes"; then
 | |
|     ARIA2_DEP_NOT_MET([libxml2])
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x$with_libexpat" = "xyes" && test "x$have_libxml2" != "xyes"; then
 | |
|   AM_PATH_LIBEXPAT
 | |
|   if test "x$have_libexpat" = "xyes"; then
 | |
|     LIBS="$EXPAT_LIBS $LIBS"
 | |
|     CPPFLAGS="$EXPAT_CFLAGS $CPPFLAGS"
 | |
|   elif test "x$with_libexpat_requested" = "xyes"; then
 | |
|     ARIA2_DEP_NOT_MET([libexpat])
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x$with_sqlite3" = "xyes"; then
 | |
|   PKG_CHECK_MODULES([SQLITE3],[sqlite3],[have_sqlite3=yes],[have_sqlite3=no])
 | |
|   if test "x$have_sqlite3" = "xyes"; then
 | |
|     AC_DEFINE([HAVE_SQLITE3], [1], [Define to 1 if you have sqlite3.])
 | |
|     LIBS="$SQLITE3_LIBS $LIBS"
 | |
|     CPPFLAGS="$SQLITE3_CFLAGS $CPPFLAGS"
 | |
|     AC_CHECK_FUNCS([sqlite3_open_v2])
 | |
|   else
 | |
|     AC_MSG_WARN([$SQLITE3_PKG_ERRORS])
 | |
|     if test "x$with_sqlite3_requested" = "xyes"; then
 | |
|       ARIA2_DEP_NOT_MET([sqlite3])
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x$with_gnutls" = "xyes"; then
 | |
|   # gnutls >= 2.8 doesn't have libgnutls-config anymore. We require
 | |
|   # 2.2.0 because we use gnutls_priority_set_direct()
 | |
|   PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.2.0],
 | |
|                     [have_libgnutls=yes], [have_libgnutls=no])
 | |
|   if test "x$have_libgnutls" = "xyes"; then
 | |
|     AC_DEFINE([HAVE_LIBGNUTLS], [1], [Define to 1 if you have libgnutls.])
 | |
|     LIBS="$LIBGNUTLS_LIBS $LIBS"
 | |
|     CPPFLAGS="$LIBGNUTLS_CFLAGS $CPPFLAGS"
 | |
|   else
 | |
|     AC_MSG_WARN([$LIBGNUTLS_PKG_ERRORS])
 | |
|     if test "x$with_gnutls_requested" = "xyes"; then
 | |
|       ARIA2_DEP_NOT_MET([gnutls])
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x$with_openssl" = "xyes" && test "x$have_libgnutls" != "xyes"; then
 | |
|   PKG_CHECK_MODULES([OPENSSL], [openssl >= 0.9.8],
 | |
|                     [have_openssl=yes], [have_openssl=no])
 | |
|   if test "x$have_openssl" = "xyes"; then
 | |
|     AC_DEFINE([HAVE_OPENSSL], [1], [Define to 1 if you have openssl.])
 | |
|     LIBS="$OPENSSL_LIBS $LIBS"
 | |
|     CPPFLAGS="$OPENSSL_CFLAGS $CPPFLAGS"
 | |
| 
 | |
|     AC_CHECK_FUNCS([EVP_DigestInit_ex], [have_digestinit_ex=yes])
 | |
|     if test "x$have_digestinit_ex" = "x"; then
 | |
|       AC_DEFINE([HAVE_OLD_OPENSSL], [1], [Define to 1 if you have old openssl.])
 | |
|     fi
 | |
|     AC_CHECK_FUNCS([EVP_sha224])
 | |
|     AC_CHECK_FUNCS([EVP_sha256])
 | |
|     AC_CHECK_FUNCS([EVP_sha384])
 | |
|     AC_CHECK_FUNCS([EVP_sha512])
 | |
|   else
 | |
|     AC_MSG_WARN([$OPENSSL_PKG_ERRORS])
 | |
|     if test "x$with_openssl_requested" = "xyes"; then
 | |
|       ARIA2_DEP_NOT_MET([openssl])
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x$have_openssl" != "xyes"; then
 | |
|   if test "x$with_libnettle" = "xyes"; then
 | |
|     AC_SEARCH_LIBS([nettle_sha1_init], [nettle],
 | |
|                    [have_libnettle=yes], [have_libnettle=no])
 | |
|     if test "x$have_libnettle" = "xyes"; then
 | |
|       AC_DEFINE([HAVE_LIBNETTLE], [1], [Define to 1 if you have libnettle.])
 | |
|     fi
 | |
|   fi
 | |
|   if test "x$with_libgmp" = "xyes" &&
 | |
|      test "x$have_libnettle" = "xyes" &&
 | |
|      test "x$enable_bittorrent" = "xyes"; then
 | |
|     AC_SEARCH_LIBS([__gmpz_init], [gmp], [have_libgmp=yes], [have_libgmp=no])
 | |
|     if test "x$have_libgmp" = "xyes"; then
 | |
|       AC_DEFINE([HAVE_LIBGMP], [1], [Define to 1 if you have libgmp.])
 | |
|     fi
 | |
|   fi
 | |
|   if test "x$with_libgcrypt" = "xyes" &&
 | |
|      test "x$have_libnettle" != "xyes"; then
 | |
|     AM_PATH_LIBGCRYPT([1.2.4], [have_libgcrypt=yes])
 | |
|     if test "x$have_libgcrypt" = "xyes"; then
 | |
|       AC_DEFINE([HAVE_LIBGCRYPT], [1], [Define to 1 if you have libgcrypt.])
 | |
|       LIBS="$LIBGCRYPT_LIBS $LIBS"
 | |
|       CPPFLAGS="$LIBGCRYPT_CFLAGS $CPPFLAGS"
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x$with_libcares" = "xyes"; then
 | |
|   PKG_CHECK_MODULES([LIBCARES], [libcares >= 1.7.0], [have_libcares=yes],
 | |
|                     [have_libcares=no])
 | |
|   if test "x$have_libcares" = "xyes"; then
 | |
|     AC_DEFINE([HAVE_LIBCARES], [1], [Define to 1 if you have libcares.])
 | |
|     LIBS="$LIBCARES_LIBS $LIBS"
 | |
|     CPPFLAGS="$LIBCARES_CFLAGS $CPPFLAGS"
 | |
|     AC_CHECK_TYPES([ares_addr_node], [], [], [[#include <ares.h>]])
 | |
|     AC_CHECK_FUNCS([ares_set_servers])
 | |
|   else
 | |
|     AC_MSG_WARN([$LIBCARES_PKG_ERRORS])
 | |
|     if test "x$with_libcares_requested" = "xyes"; then
 | |
|       ARIA2_DEP_NOT_MET([libcares])
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| # Check availability of libz
 | |
| if test "x$with_libz" = "xyes"; then
 | |
|   PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2.3], [have_zlib=yes], [have_zlib=no])
 | |
|   if test "x$have_zlib" = "xyes"; then
 | |
|     AC_DEFINE([HAVE_ZLIB], [1], [Define to 1 if you have zlib.])
 | |
|     LIBS="$ZLIB_LIBS $LIBS"
 | |
|     CPPFLAGS="$ZLIB_CFLAGS $CPPFLAGS"
 | |
|   else
 | |
|     AC_MSG_WARN([$ZLIB_PKG_ERRORS])
 | |
|     if test "x$with_libz_requested" = "xyes"; then
 | |
|       ARIA2_DEP_NOT_MET([libz])
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| # Define variables based on the result of the checks for libraries.
 | |
| if test "x$have_libgnutls" = "xyes" || test "x$have_openssl" = "xyes"; then
 | |
|   AC_DEFINE([ENABLE_SSL], [1], [Define to 1 if ssl support is enabled.])
 | |
|   AM_CONDITIONAL([ENABLE_SSL], true)
 | |
|   AC_SUBST([ca_bundle])
 | |
| else
 | |
|   AM_CONDITIONAL([ENABLE_SSL], false)
 | |
| fi
 | |
| 
 | |
| AM_CONDITIONAL([HAVE_LIBGNUTLS], [ test "x$have_libgnutls" = "xyes" ])
 | |
| AM_CONDITIONAL([HAVE_LIBNETTLE], [ test "x$have_libnettle" = "xyes" ])
 | |
| AM_CONDITIONAL([HAVE_LIBGMP], [ test "x$have_libgmp" = "xyes" ])
 | |
| AM_CONDITIONAL([HAVE_LIBGCRYPT], [ test "x$have_libgcrypt" = "xyes" ])
 | |
| AM_CONDITIONAL([HAVE_OPENSSL], [ test "x$have_openssl" = "xyes" ])
 | |
| 
 | |
| if test "x$have_libnettle" = "xyes" || test "x$have_libgcrypt" = "xyes" ||
 | |
|    test "x$have_openssl" = "xyes"; then
 | |
|   AC_DEFINE([ENABLE_MESSAGE_DIGEST], [1],
 | |
|             [Define to 1 if message digest support is enabled.])
 | |
|   AM_CONDITIONAL([ENABLE_MESSAGE_DIGEST], true)
 | |
|   enable_message_digest=yes
 | |
| else
 | |
|   AM_CONDITIONAL([ENABLE_MESSAGE_DIGEST], false)
 | |
| fi
 | |
| 
 | |
| if test "x$have_libnettle" = "xyes" && test "x$have_libgmp" = "xyes" ||
 | |
|    test "x$have_libgcrypt" = "xyes" || test "x$have_openssl" = "xyes"; then
 | |
|   enable_bignum=yes
 | |
| fi
 | |
| 
 | |
| if test "x$enable_bittorrent" = "xyes" &&
 | |
|    test "x$enable_message_digest" = "xyes" &&
 | |
|    test "x$enable_bignum" = "xyes"; then
 | |
|   AC_DEFINE([ENABLE_BITTORRENT], [1],
 | |
|             [Define to 1 if BitTorrent support is enabled.])
 | |
|   AM_CONDITIONAL([ENABLE_BITTORRENT], true)
 | |
| else
 | |
|   if test "x$enable_bittorrent_requested" = "xyes"; then
 | |
|     ARIA2_FET_NOT_SUPPORTED([bittorrent])
 | |
|   fi
 | |
|   enable_bittorrent=no
 | |
|   AM_CONDITIONAL([ENABLE_BITTORRENT], false)
 | |
| fi
 | |
| 
 | |
| if (test "x$have_libxml2" = "xyes" || test "x$have_libexpat" = "xyes") &&
 | |
|    test "x$enable_metalink" = "xyes"; then
 | |
|   AC_DEFINE([ENABLE_METALINK], [1],
 | |
|             [Define to 1 if Metalink support is enabled.])
 | |
|   AM_CONDITIONAL([ENABLE_METALINK], true)
 | |
| else
 | |
|   if test "x$enable_metalink_requested" = "xyes"; then
 | |
|     ARIA2_FET_NOT_SUPPORTED([metalink])
 | |
|   fi
 | |
|   enable_metalink=no
 | |
|   AM_CONDITIONAL([ENABLE_METALINK], false)
 | |
| fi
 | |
| 
 | |
| AM_CONDITIONAL([HAVE_SOME_XMLLIB],
 | |
|   [test "x$have_libxml2" = "xyes" || test "x$have_libexpat" = "xyes"])
 | |
| 
 | |
| if test "x$have_libxml2" = "xyes" || test "x$have_libexpat" = "xyes"; then
 | |
|   enable_xml_rpc=yes
 | |
| fi
 | |
| 
 | |
| if test "x$enable_xml_rpc" = "xyes"; then
 | |
|   AC_DEFINE([ENABLE_XML_RPC], [1],
 | |
|             [Define to 1 if XML-RPC support is enabled.])
 | |
| fi
 | |
| AM_CONDITIONAL([ENABLE_XML_RPC], [test "x$enable_xml_rpc" = "xyes"])
 | |
| 
 | |
| AM_CONDITIONAL([HAVE_LIBXML2], [test "x$have_libxml2" = "xyes"])
 | |
| AM_CONDITIONAL([HAVE_LIBEXPAT], [test "x$have_libexpat" = "xyes"])
 | |
| 
 | |
| if test "x$have_libcares" = "xyes"; then
 | |
|   AC_DEFINE([ENABLE_ASYNC_DNS], [1],
 | |
|             [Define to 1 if asynchronous DNS support is enabled.])
 | |
|   AM_CONDITIONAL([ENABLE_ASYNC_DNS], true)
 | |
| else
 | |
|   AM_CONDITIONAL([ENABLE_ASYNC_DNS], false)
 | |
| fi
 | |
| 
 | |
| # Set conditional for libz
 | |
| AM_CONDITIONAL([HAVE_ZLIB], [test "x$have_zlib" = "xyes"])
 | |
| 
 | |
| # Set conditional for sqlite3
 | |
| AM_CONDITIONAL([HAVE_SQLITE3], [test "x$have_sqlite3" = "xyes"])
 | |
| 
 | |
| AC_SEARCH_LIBS([clock_gettime], [rt])
 | |
| 
 | |
| case "$target" in
 | |
| 	*solaris*)
 | |
|                 AC_SEARCH_LIBS([getaddrinfo], [nsl socket])
 | |
| 		;;
 | |
| esac
 | |
| 
 | |
| # Checks for header files.
 | |
| AC_FUNC_ALLOCA
 | |
| AC_HEADER_STDC
 | |
| 
 | |
| case "$target" in
 | |
| 	*mingw*)
 | |
|                 AC_CHECK_HEADERS([windows.h \
 | |
| 				  winsock2.h \
 | |
|                                   ws2tcpip.h \
 | |
| 				  mmsystem.h], [], [],
 | |
| [[#ifdef HAVE_WINDOWS_H
 | |
| # include <windows.h>
 | |
| #endif
 | |
| ]])
 | |
| 		;;
 | |
| esac
 | |
| 
 | |
| AC_CHECK_HEADERS([argz.h \
 | |
|                   arpa/inet.h \
 | |
|                   fcntl.h \
 | |
|                   float.h \
 | |
|                   inttypes.h \
 | |
|                   io.h \
 | |
|                   langinfo.h \
 | |
|                   libintl.h \
 | |
|                   limits.h \
 | |
|                   locale.h \
 | |
|                   malloc.h \
 | |
|                   netdb.h \
 | |
|                   netinet/in.h \
 | |
|                   netinet/tcp.h \
 | |
| 		  poll.h \
 | |
| 		  port.h \
 | |
|                   stddef.h \
 | |
|                   stdint.h \
 | |
|                   stdio_ext.h \
 | |
|                   stdlib.h \
 | |
|                   string.h \
 | |
|                   strings.h \
 | |
|                   sys/ioctl.h \
 | |
|                   sys/param.h \
 | |
|                   sys/socket.h \
 | |
|                   sys/time.h \
 | |
|                   termios.h \
 | |
|                   unistd.h \
 | |
| 		  utime.h \
 | |
|                   wchar.h \
 | |
| 		  ifaddrs.h \
 | |
| 		  pwd.h])
 | |
| 
 | |
| # Checks for typedefs, structures, and compiler characteristics.
 | |
| AC_HEADER_STDBOOL
 | |
| AC_C_CONST
 | |
| AC_C_INLINE
 | |
| AC_TYPE_INT16_T
 | |
| AC_TYPE_INT32_T
 | |
| AC_TYPE_INT64_T
 | |
| AC_TYPE_INT8_T
 | |
| AC_TYPE_MODE_T
 | |
| AC_TYPE_OFF_T
 | |
| AC_TYPE_SIZE_T
 | |
| AC_TYPE_SSIZE_T
 | |
| AC_HEADER_TIME
 | |
| AC_STRUCT_TM
 | |
| AC_TYPE_UINT16_T
 | |
| AC_TYPE_UINT32_T
 | |
| AC_TYPE_UINT64_T
 | |
| AC_TYPE_UINT8_T
 | |
| AC_TYPE_PID_T
 | |
| AC_C_VOLATILE
 | |
| AC_CHECK_TYPES([ptrdiff_t, struct timespec])
 | |
| AC_C_BIGENDIAN
 | |
| AC_SYS_LARGEFILE
 | |
| 
 | |
| # Checks for library functions.
 | |
| AM_GNU_GETTEXT
 | |
| AM_GNU_GETTEXT_VERSION([0.18])
 | |
| AC_FUNC_ERROR_AT_LINE
 | |
| AC_PROG_GCC_TRADITIONAL
 | |
| 
 | |
| AC_FUNC_MEMCMP
 | |
| AC_FUNC_MKTIME
 | |
| AC_FUNC_MMAP
 | |
| AC_FUNC_SELECT_ARGTYPES
 | |
| AC_FUNC_STAT
 | |
| AC_FUNC_STRFTIME
 | |
| AC_FUNC_VPRINTF
 | |
| AC_FUNC_FORK
 | |
| AC_FUNC_STRTOD
 | |
| AC_CHECK_FUNCS([__argz_count \
 | |
|                 __argz_next \
 | |
|                 __argz_stringify \
 | |
|                 atexit \
 | |
|                 ftruncate \
 | |
|                 getcwd \
 | |
|                 gethostbyaddr \
 | |
|                 gethostbyname \
 | |
| 		getifaddrs \
 | |
|                 getpagesize \
 | |
|                 memchr \
 | |
|                 memmove \
 | |
|                 mempcpy \
 | |
|                 memset \
 | |
|                 mkdir \
 | |
|                 munmap \
 | |
|                 nl_langinfo \
 | |
|                 posix_memalign \
 | |
| 		pow \
 | |
|                 putenv \
 | |
|                 rmdir \
 | |
|                 select \
 | |
|                 setlocale \
 | |
|                 sleep \
 | |
|                 socket \
 | |
|                 stpcpy \
 | |
|                 strcasecmp \
 | |
|                 strchr \
 | |
|                 strcspn \
 | |
|                 strdup \
 | |
|                 strerror \
 | |
|                 strncasecmp \
 | |
|                 strstr \
 | |
|                 strtol \
 | |
|                 strtoul \
 | |
|                 strtoull \
 | |
|                 tzset \
 | |
|                 unsetenv \
 | |
|                 usleep \
 | |
| 		utime \
 | |
| 		utimes])
 | |
| 
 | |
| if test "x$enable_epoll" = "xyes"; then
 | |
|   AC_CHECK_FUNCS([epoll_create], [have_epoll=yes])
 | |
|   if test "x$have_epoll" = "xyes"; then
 | |
|     AC_DEFINE([HAVE_EPOLL], [1], [Define to 1 if epoll is available.])
 | |
|   fi
 | |
| fi
 | |
| AM_CONDITIONAL([HAVE_EPOLL], [test "x$have_epoll" = "xyes"])
 | |
| 
 | |
| AC_CHECK_FUNCS([posix_fallocate],[have_posix_fallocate=yes])
 | |
| ARIA2_CHECK_FALLOCATE
 | |
| if test "x$have_posix_fallocate" = "xyes" ||
 | |
|    test "x$have_fallocate" = "xyes" ||
 | |
|    test "x$win_build" = "xyes"; then
 | |
|   AC_DEFINE([HAVE_SOME_FALLOCATE], [1],
 | |
|             [Define to 1 if *_fallocate is available.])
 | |
| fi
 | |
| AM_CONDITIONAL([HAVE_SOME_FALLOCATE],
 | |
|   [test "x$have_posix_fallocate" = "xyes" || test "x$have_fallocate" = "xyes" \
 | |
|   || test "x$win_build" = "xyes"])
 | |
| 
 | |
| 
 | |
| AC_CHECK_FUNCS([asctime_r],
 | |
| 	[AM_CONDITIONAL([HAVE_ASCTIME_R], true)],
 | |
| 	[AM_CONDITIONAL([HAVE_ASCTIME_R], false)])
 | |
| AC_CHECK_FUNCS([basename],
 | |
| 	[AM_CONDITIONAL([HAVE_BASENAME], true)],
 | |
| 	[AM_CONDITIONAL([HAVE_BASENAME], false)])
 | |
| AC_CHECK_FUNCS([gai_strerror],
 | |
| 	[AM_CONDITIONAL([HAVE_GAI_STRERROR], true)],
 | |
|  	[AM_CONDITIONAL([HAVE_GAI_STRERROR], false)])
 | |
| AC_CHECK_FUNCS([getaddrinfo],
 | |
| 	[AM_CONDITIONAL([HAVE_GETADDRINFO], true)],
 | |
| 	[AM_CONDITIONAL([HAVE_GETADDRINFO], false)])
 | |
| AC_CHECK_FUNCS([gettimeofday],
 | |
| 	[AM_CONDITIONAL([HAVE_GETTIMEOFDAY], true)],
 | |
| 	[AM_CONDITIONAL([HAVE_GETTIMEOFDAY], false)])
 | |
| AC_CHECK_FUNCS([localtime_r],
 | |
| 	[AM_CONDITIONAL([HAVE_LOCALTIME_R], true)],
 | |
| 	[AM_CONDITIONAL([HAVE_LOCALTIME_R], false)])
 | |
| AC_CHECK_FUNCS([strptime],
 | |
| 	[AM_CONDITIONAL([HAVE_STRPTIME], true)],
 | |
| 	[AM_CONDITIONAL([HAVE_STRPTIME], false)])
 | |
| AC_CHECK_FUNCS([timegm],
 | |
| 	[AM_CONDITIONAL([HAVE_TIMEGM], true)],
 | |
| 	[AM_CONDITIONAL([HAVE_TIMEGM], false)])
 | |
| AC_CHECK_FUNCS([daemon], [have_daemon=yes])
 | |
| AM_CONDITIONAL([HAVE_DAEMON], [test "x$have_daemon" = "xyes"])
 | |
| 
 | |
| AC_CHECK_FUNCS([clock_gettime], [have_clock_gettime=yes])
 | |
| 
 | |
| if test "x$have_clock_gettime" != "xyes"; then
 | |
|    AC_CHECK_FUNCS([mach_absolute_time], [have_mach_absolute_time=yes])
 | |
| fi
 | |
| AM_CONDITIONAL([HAVE_MACH_ABSOLUTE_TIME],
 | |
| 		[test "x$have_mach_absolute_time" = "xyes"])
 | |
| 
 | |
| AC_CHECK_FUNCS([poll], [have_poll=yes])
 | |
| AM_CONDITIONAL([HAVE_POLL], [test "x$have_poll" = "xyes"])
 | |
| 
 | |
| case "$target" in
 | |
|   *mingw*)
 | |
|     AM_CONDITIONAL([MINGW_BUILD], true)
 | |
|     dnl defined in ws2tcpip.h, but only if _WIN32_WINNT >= 0x0501
 | |
|     AM_CONDITIONAL([HAVE_GETADDRINFO], true)
 | |
|     dnl defined in ws2tcpip.h, but missing in C:\mingw\lib\libws2_32.a
 | |
|     AM_CONDITIONAL([HAVE_GAI_STRERROR], false)
 | |
|     if test "x$have_clock_gettime" != "xyes"; then
 | |
|         AM_CONDITIONAL([HAVE_TIMEGETTIME], true)
 | |
|     fi
 | |
|     ;;
 | |
|   *)
 | |
|     AM_CONDITIONAL([MINGW_BUILD], false)
 | |
|     AM_CONDITIONAL([HAVE_TIMEGETTIME], false)
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| AC_CHECK_FUNCS([port_associate], [have_port_associate=yes])
 | |
| AM_CONDITIONAL([HAVE_PORT_ASSOCIATE], [test "x$have_port_associate" = "xyes"])
 | |
| 
 | |
| AC_CHECK_FUNCS([kqueue], [have_kqueue=yes])
 | |
| AM_CONDITIONAL([HAVE_KQUEUE], [test "x$have_kqueue" = "xyes"])
 | |
| if test "x$have_kqueue" = "xyes"; then
 | |
|     AC_MSG_CHECKING([whether struct kevent.udata is intptr_t])
 | |
|     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 | |
| #include <sys/types.h>
 | |
| #include <sys/event.h>
 | |
| #include <sys/time.h>
 | |
| ]],
 | |
| [[
 | |
| struct kevent event;
 | |
| event.udata = reinterpret_cast<intptr_t>(&event);
 | |
| ]])],
 | |
|     [kevent_udata_intptr_t=yes], [kevent_udata_intptr_t=no])
 | |
|     AC_MSG_RESULT([$kevent_udata_intptr_t])
 | |
|     if test "x$kevent_udata_intptr_t" = "xyes"; then
 | |
|        AC_DEFINE([KEVENT_UDATA_INTPTR_T], [1], [Define to 1 if struct kevent.udata is intptr_t])
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
 | |
|                 [AC_DEFINE([HAVE_SOCKADDR_IN_SIN_LEN],[1],
 | |
|                   [Define to 1 if struct sockaddr_in has sin_len member.])],
 | |
|                 [],
 | |
|                 [[
 | |
| #include <sys/types.h>
 | |
| #include <sys/socket.h>
 | |
| #include <netinet/in.h>
 | |
| ]])
 | |
| 
 | |
| AC_CHECK_MEMBER([struct sockaddr_in6.sin6_len],
 | |
|                 [AC_DEFINE([HAVE_SOCKADDR_IN6_SIN6_LEN],[1],
 | |
|                   [Define to 1 if struct sockaddr_in6 has sin6_len member.])],
 | |
|                 [],
 | |
|                 [[
 | |
| #include <sys/types.h>
 | |
| #include <sys/socket.h>
 | |
| #include <netinet/in.h>
 | |
| ]])
 | |
| 
 | |
| # Check struct option.name is assignable from const char*.  struct
 | |
| # option.name in opensolaris is of type char*. In Linux, it is const
 | |
| # char*
 | |
| AC_MSG_CHECKING([whether struct option.name is assignable from const char*])
 | |
| AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 | |
| #include <unistd.h>
 | |
| #include <getopt.h>
 | |
| ]],
 | |
| [[
 | |
| const char* s = "const char";
 | |
| option op;
 | |
| op.name = s;
 | |
| ]])],
 | |
| [have_option_const_name=yes], [have_option_const_name=no])
 | |
| AC_MSG_RESULT([$have_option_const_name])
 | |
| if test "x$have_option_const_name" = "xyes"; then
 | |
|   AC_DEFINE([HAVE_OPTION_CONST_NAME], [1], [Define 1 if struct option.name is const char*])
 | |
| fi
 | |
| 
 | |
| AC_CONFIG_SUBDIRS([deps/wslay])
 | |
| if test "x$enable_message_digest" = "xyes"; then
 | |
|   enable_websocket=yes
 | |
|   AC_DEFINE([ENABLE_WEBSOCKET], [1],
 | |
|             [Define 1 if WebSocket support is enabled.])
 | |
|   LIBS="\$(top_builddir)/deps/wslay/lib/libwslay.la $LIBS"
 | |
|   # $(top_srcdir) for `make distcheck`
 | |
|   CPPFLAGS="-I\$(top_builddir)/deps/wslay/lib/includes -I\$(top_srcdir)/deps/wslay/lib/includes $CPPFLAGS"
 | |
| fi
 | |
| AM_CONDITIONAL([ENABLE_WEBSOCKET], [test "x$enable_websocket" = "xyes"])
 | |
| 
 | |
| AC_SUBST([bashcompletiondir])
 | |
| 
 | |
| AC_CONFIG_FILES([Makefile
 | |
| 		src/Makefile
 | |
| 		test/Makefile
 | |
| 		po/Makefile.in
 | |
| 		intl/Makefile
 | |
| 		lib/Makefile
 | |
| 		doc/Makefile
 | |
| 		doc/manual-src/Makefile
 | |
| 		doc/manual-src/en/Makefile
 | |
| 		doc/manual-src/en/conf.py
 | |
| 		doc/manual-src/ru/Makefile
 | |
| 		doc/manual-src/ru/conf.py
 | |
| 		deps/Makefile])
 | |
| AC_OUTPUT
 | |
| 
 | |
| echo " "
 | |
| echo "Build:          $build"
 | |
| echo "Target:         $target"
 | |
| echo "Install prefix: $prefix"
 | |
| echo "CXXFLAGS:       $CXXFLAGS"
 | |
| echo "CFLAGS:         $CFLAGS"
 | |
| echo "CPPFLAGS:       $CPPFLAGS"
 | |
| echo "LDFLAGS:        $LDFLAGS"
 | |
| echo "LIBS:           $LIBS"
 | |
| echo "DEFS:           $DEFS"
 | |
| echo "SQLite3:        $have_sqlite3"
 | |
| echo "GnuTLS:         $have_libgnutls"
 | |
| echo "OpenSSL:        $have_openssl"
 | |
| echo "CA Bundle:      $ca_bundle"
 | |
| echo "LibXML2:        $have_libxml2"
 | |
| echo "LibExpat:       $have_libexpat"
 | |
| echo "LibCares:       $have_libcares"
 | |
| echo "Zlib:           $have_zlib"
 | |
| echo "Epoll:          $have_epoll"
 | |
| echo "Bittorrent:     $enable_bittorrent"
 | |
| echo "Metalink:       $enable_metalink"
 | |
| echo "XML-RPC:        $enable_xml_rpc"
 | |
| echo "Message Digest: $enable_message_digest"
 | |
| echo "WebSocket:      $enable_websocket"
 | |
| echo "bash_completion dir: $bashcompletiondir"
 |