configure.ac 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. # Gearman server and library
  2. # Copyright (C) 2011-2012 Data Differential, http://datadifferential.com/
  3. # Copyright (C) 2008 Brian Aker, Eric Day, Monty Taylor
  4. # All rights reserved.
  5. #
  6. # Use and distribution licensed under the BSD license. See
  7. # the COPYING file in this directory for full text.
  8. AC_PREREQ([2.63])
  9. AC_INIT([gearmand],[1.0.2],[https://bugs.launchpad.net/gearmand],[gearmand],[http://gearman.info/])
  10. AC_CONFIG_AUX_DIR([build-aux])
  11. AC_CONFIG_MACRO_DIR([m4])
  12. AC_CANONICAL_TARGET
  13. AC_ARG_PROGRAM
  14. AC_USE_SYSTEM_EXTENSIONS
  15. AM_INIT_AUTOMAKE([1.11 color-tests -Wno-portability subdir-objects foreign tar-ustar])
  16. AC_CONFIG_HEADERS([gear_config.h:gear_config.in])dnl Keep filename to 8.3 for MS-DOS.
  17. AC_SUBST([AUTOHEADER_FILE],[gear_config.h])
  18. AC_CONFIG_SRCDIR([libgearman/gearman.cc])
  19. GEARMAN_LIBRARY_VERSION=7:0:0
  20. # | | |
  21. # +------+ | +---+
  22. # | | |
  23. # current:revision:age
  24. # | | |
  25. # | | +- increment if interfaces have been added
  26. # | | set to zero if interfaces have been removed
  27. # | | or changed
  28. # | +- increment if source code has changed
  29. # | set to zero if current is incremented
  30. # +- increment if interfaces have been added, removed or changed
  31. AC_SUBST([GEARMAN_LIBRARY_VERSION])
  32. LT_PREREQ([2.2])
  33. LT_INIT([disable-static])
  34. LT_LANG([C++])
  35. PANDORA_PLATFORM
  36. m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
  37. AX_ASSERT
  38. dnl First look for Boost, maybe for a specific minimum version:
  39. BOOST_REQUIRE([1.39])
  40. BOOST_PROGRAM_OPTIONS
  41. BOOST_THREADS
  42. AX_CXX_CINTTYPES
  43. CONFIG_EXTRA
  44. m4_include([libtest/yatl.m4])
  45. AX_ENABLE_LIBMEMCACHED
  46. m4_include([m4/memcached_sasl.m4])
  47. AM_CONDITIONAL([BUILDING_LIBMEMCACHED], false)
  48. AM_CONDITIONAL([BUILDING_GEARMAN], true)
  49. AM_CONDITIONAL([HAVE_LIBGEARMAN], true)
  50. AC_SUBST([_WITH_LIBGEARMAN_SUPPORT],["_WITH_LIBGEARMAN_SUPPORT 0"])
  51. AC_DEFINE([GEARMAND_BINARY],["./gearmand/gearmand"], [Name of the gearmand binary used in make test])
  52. AC_DEFINE([HAVE_LIBGEARMAN],[1], [libgearman support])
  53. AC_DEFINE([HAVE_GEARMAND_BINARY],[1],[libgearman support])
  54. AX_LIB_CURL([7.21.7],
  55. [AC_CHECK_HEADERS([curl/curl.h],
  56. [AC_DEFINE([HAVE_LIBCURL], [ 1 ], [libcurl support])],
  57. [AC_DEFINE([HAVE_LIBCURL], [ 0 ], [libcurl support])])],
  58. [AC_DEFINE([HAVE_LIBCURL], [ 0 ], [libcurl support])])
  59. m4_include([m4/drizzled.m4])
  60. WITH_LIBDRIZZLE
  61. AX_LIB_SQLITE3
  62. AS_IF([test "x${WANT_SQLITE3}" = "xyes"],
  63. [AC_DEFINE([HAVE_LIBSQLITE3],[1],[Have the SQLITE3 library])],
  64. [AC_DEFINE([HAVE_LIBSQLITE3],[0],[Have the SQLITE3 library])])
  65. AM_CONDITIONAL([HAVE_LIBSQLITE3],[test "x${WANT_SQLITE3}" = "xyes"])
  66. PANDORA_ENABLE_DTRACE
  67. AX_HAVE_LIBPQ
  68. PANDORA_HAVE_LIBTOKYOCABINET
  69. AC_FUNC_STRERROR_R
  70. SOCKET_SEND_FLAGS
  71. FCNTL_FLAGS
  72. AX_HAVE_LIBHIREDIS
  73. # Checks for programs.
  74. AC_CHECK_PROGS([VALGRIND],['valgrind'])
  75. AC_PROG_AWK
  76. AC_PROG_INSTALL
  77. AC_PROG_LN_S
  78. AC_PROG_MAKE_SET
  79. AX_PROG_SPHINX_BUILD
  80. # Checks for header files.
  81. AC_HEADER_STDC
  82. AC_HEADER_SYS_WAIT
  83. AC_CHECK_HEADERS([cxxabi.h],
  84. AC_DEFINE([HAVE_CXXABI_H], [1], [Have cxxabi.h]),
  85. AC_DEFINE([HAVE_CXXABI_H], [0], [Have cxxabi.h]))
  86. AC_CHECK_HEADERS_ONCE([arpa/inet.h])
  87. AC_CHECK_HEADERS_ONCE([errno.h])
  88. AC_CHECK_HEADERS_ONCE([execinfo.h])
  89. AC_CHECK_HEADERS_ONCE([fcntl.h])
  90. AC_CHECK_HEADERS_ONCE([fnmatch.h])
  91. AC_CHECK_HEADERS_ONCE([getopt.h])
  92. AC_CHECK_HEADERS_ONCE([inttypes.h])
  93. AC_CHECK_HEADERS_ONCE([limits.h])
  94. AC_CHECK_HEADERS_ONCE([mach/mach.h])
  95. AC_CHECK_HEADERS_ONCE([netdb.h])
  96. AC_CHECK_HEADERS_ONCE([netinet/in.h])
  97. AC_CHECK_HEADERS_ONCE([netinet/tcp.h])
  98. AC_CHECK_HEADERS_ONCE([poll.h])
  99. AC_CHECK_HEADERS_ONCE([pwd.h])
  100. AC_CHECK_HEADERS_ONCE([signal.h])
  101. AC_CHECK_HEADERS_ONCE([stdarg.h])
  102. AC_CHECK_HEADERS_ONCE([stddef.h])
  103. AC_CHECK_HEADERS_ONCE([stdint.h])
  104. AC_CHECK_HEADERS_ONCE([stdio.h])
  105. AC_CHECK_HEADERS_ONCE([stdlib.h])
  106. AC_CHECK_HEADERS_ONCE([string.h])
  107. AC_CHECK_HEADERS_ONCE([strings.h])
  108. AC_CHECK_HEADERS_ONCE([sys/resource.h])
  109. AC_CHECK_HEADERS_ONCE([sys/socket.h])
  110. AC_CHECK_HEADERS_ONCE([sys/stat.h])
  111. AC_CHECK_HEADERS_ONCE([sys/time.h])
  112. AC_CHECK_HEADERS_ONCE([sys/types.h])
  113. AC_CHECK_HEADERS_ONCE([sys/utsname.h])
  114. AC_CHECK_HEADERS_ONCE([sys/wait.h])
  115. AC_CHECK_HEADERS_ONCE([syslog.h])
  116. AC_CHECK_HEADERS_ONCE([unistd.h])
  117. AC_CHECK_HEADERS_ONCE([winsock2.h])
  118. AM_CONDITIONAL([BUILD_WIN32_WRAPPERS],[test "x$ac_cv_header_winsock2_h" = "xyes"])
  119. AS_IF([test "x$ac_cv_header_winsock2_h" = "xyes"],
  120. [AM_LDFLAGS="$AM_LDFLAGS -lws2_32"
  121. AM_CFLAGS="$AM_CFLAGS $NO_WERROR"
  122. AM_CXXFLAGS="$AM_CXXFLAGS $NO_WERROR"
  123. ])
  124. # Checks for typedefs, structures, and compiler characteristics.
  125. AC_CHECK_TYPES([ptrdiff_t])
  126. AC_C_CONST
  127. AC_C_INLINE
  128. AC_C_VOLATILE
  129. AC_HEADER_STDBOOL
  130. AC_HEADER_TIME
  131. AC_TYPE_INT32_T
  132. AC_TYPE_INT64_T
  133. AC_TYPE_OFF_T
  134. AC_TYPE_PID_T
  135. AC_TYPE_SIZE_T
  136. AC_TYPE_SSIZE_T
  137. AC_TYPE_UID_T
  138. AC_TYPE_UINT16_T
  139. AC_TYPE_UINT32_T
  140. AC_TYPE_UINT64_T
  141. AC_TYPE_UINT8_T
  142. # Checks for library functions.
  143. AC_FUNC_ERROR_AT_LINE
  144. AC_FUNC_FORK
  145. AC_FUNC_MEMCMP
  146. AC_FUNC_STRERROR_R
  147. AC_FUNC_VPRINTF
  148. AC_REPLACE_FNMATCH
  149. AC_CHECK_FUNCS([dup2])
  150. AC_CHECK_FUNCS([gettimeofday])
  151. AC_CHECK_FUNCS([memchr])
  152. AC_CHECK_FUNCS([memmove])
  153. AC_CHECK_FUNCS([memset])
  154. AC_CHECK_FUNCS([pipe])
  155. AC_CHECK_FUNCS([pipe2],
  156. AC_DEFINE([HAVE_PIPE2], [1], [Have pipe2]),
  157. AC_DEFINE([HAVE_PIPE2], [0], [Have pipe2]))
  158. AC_CHECK_FUNCS([select])
  159. AC_CHECK_FUNCS([setenv])
  160. AC_CHECK_FUNCS([socket])
  161. AC_CHECK_FUNCS([strcasecmp])
  162. AC_CHECK_FUNCS([strdup])
  163. AC_CHECK_FUNCS([strerror])
  164. AC_CHECK_FUNCS([strncasecmp])
  165. AC_CHECK_FUNCS([strtol])
  166. AC_CHECK_FUNCS([strtoul])
  167. AC_CHECK_FUNCS([uname])
  168. AC_CHECK_FUNCS([atexit])
  169. AC_CHECK_FUNCS([clock_gettime])
  170. AC_CHECK_FUNCS([getcwd])
  171. AC_CHECK_FUNCS([strstr])
  172. LT_LIB_M
  173. # Check for the ability to call dlopen (used in libhostile)
  174. AC_CHECK_LIB([dl],[dlopen],
  175. [AC_SUBST([DL_LIB],[-ldl])
  176. AC_DEFINE([HAVE_LIBDL],[1],[Have dlopen])
  177. ])
  178. # Check for -lrt
  179. AC_CHECK_LIB([rt],[clock_gettime],
  180. [AC_SUBST([RT_LIB],[-lrt])
  181. AC_DEFINE([HAVE_LIBRT],[1],[Have clock_gettime])
  182. ])
  183. # Check for -lm
  184. LT_LIB_M
  185. AC_CHECK_FUNC([setsockopt],[],[AC_CHECK_LIB([socket],[setsockopt])])
  186. AC_CHECK_FUNC([bind],[],[AC_CHECK_LIB([bind],[bind])])
  187. AC_DEFINE([GEARMAND_BLOBSLAP_WORKER],[1],[Have Gearman Blobslap Worker])
  188. AX_CHECK_LIBRARY([LIBEVENT],[event.h],[event],
  189. [LIBEVENT_LDFLAGS="-levent"],
  190. [AC_MSG_ERROR([Unable to find libevent])])
  191. AX_UUID_GENERATE_TIME_SAFE
  192. AX_AM_JOBSERVER([yes])
  193. AS_IF([test "x${TARGET_LINUX}" = "xtrue"], [AC_DEFINE([BUILD_LIBHOSTILE],[1],[Build libhostile])], [AC_DEFINE([BUILD_LIBHOSTILE],[0],[Build libhostile])])
  194. AM_CONDITIONAL([TARGET_HOSTILE],[test "x${TARGET_LINUX}" = "xtrue"])
  195. AX_PTHREAD(, [AC_MSG_ERROR(could not find libpthread)])
  196. AX_PTHREAD_TIMEDJOIN_NP
  197. AX_ENDIAN
  198. AX_HEX_VERSION([LIBGEARMAN],[$VERSION])
  199. AX_HARDEN_COMPILER_FLAGS
  200. AC_CONFIG_FILES([Makefile
  201. docs/conf.py
  202. libgearman-1.0/version.h
  203. scripts/gearmand
  204. scripts/gearmand-init
  205. scripts/gearmand.xml
  206. scripts/smf_install.sh
  207. support/gearmand.pc
  208. support/gearmand.spec])
  209. AC_OUTPUT
  210. echo "---"
  211. echo "Configuration summary for $PACKAGE_NAME version $VERSION"
  212. echo ""
  213. echo " * Installation prefix: $prefix"
  214. echo " * System type: $host_vendor-$host_os"
  215. echo " * Host CPU: $host_cpu"
  216. echo " * C Compiler: $CC_VERSION"
  217. echo " * C Flags: $CFLAGS"
  218. echo " * C++ Compiler: $CXX_VERSION"
  219. echo " * C++ Flags: $CXXFLAGS"
  220. echo " * CPP Flags: $CPPFLAGS"
  221. echo " * LIB Flags: $LIB"
  222. echo " * Assertions enabled: $ax_enable_assert"
  223. echo " * Debug enabled: $ax_enable_debug"
  224. echo " * Warnings as failure: $ac_cv_warnings_as_errors"
  225. echo " * Building with libsqlite3 $WANT_SQLITE3"
  226. echo " * Building with libdrizzle $ac_enable_libdrizzle"
  227. echo " * Building with libmemcached $ax_enable_libmemcached"
  228. echo " * Building with libpq $ac_cv_libpq"
  229. echo " * Building with tokyocabinet $ac_enable_libtokyocabinet"
  230. echo " * Building with libmysql $found_mysql"
  231. echo " * make -j: $enable_jobserver"
  232. echo " * VCS checkout: $ac_cv_vcs_checkout"
  233. echo ""
  234. echo "---"
  235. case "$host_os" in
  236. *freebsd*)
  237. echo "*****"
  238. echo "*"
  239. echo "* NOTE: You are on FreeBSD. BSD 'make' will not work."
  240. echo "*"
  241. echo "* use 'gmake' To build libmemcached"
  242. echo "*"
  243. echo "*****"
  244. ;;
  245. esac