configure.ac 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  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_INIT([gearmand],[0.34],[https://bugs.launchpad.net/gearmand],[gearmand],[http://gearman.info/])
  9. AC_CONFIG_AUX_DIR(config)
  10. AC_CANONICAL_TARGET
  11. AM_INIT_AUTOMAKE(-Wall -Werror -Wno-portability subdir-objects foreign tar-ustar)
  12. AC_CANONICAL_HOST
  13. AC_CANONICAL_BUILD
  14. AC_PREREQ([2.63])
  15. AC_CONFIG_MACRO_DIR(m4)
  16. AC_CONFIG_HEADERS([config.h:config.in])dnl Keep filename to 8.3 for MS-DOS.
  17. AC_CONFIG_SRCDIR(libgearman/gearman.cc)
  18. PANDORA_CANONICAL_TARGET(require-cxx, no-vc-changelog)
  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. gl_VISIBILITY
  36. AX_CXX_HEADER_STDCXX_98
  37. if test "$ax_cv_cxx_stdcxx_98" = no; then
  38. AC_MSG_ERROR([Your system lacks a new enough C++ compiler])
  39. fi
  40. AX_PTHREAD(, [AC_MSG_ERROR(could not find libpthread)])
  41. dnl First look for Boost, maybe for a specific minimum version:
  42. BOOST_REQUIRE([1.39])
  43. BOOST_PROGRAM_OPTIONS
  44. BOOST_THREADS
  45. AX_CXX_CINTTYPES
  46. CONFIG_EXTRA
  47. WITH_LIBMEMCACHED
  48. m4_include([m4/memcached.m4])
  49. m4_include([m4/memcached_sasl.m4])
  50. AM_CONDITIONAL(BUILDING_LIBMEMCACHED, false)
  51. AM_CONDITIONAL(BUILDING_GEARMAN, true)
  52. AM_CONDITIONAL(HAVE_LIBGEARMAN, true)
  53. AC_SUBST(_WITH_LIBGEARMAN_SUPPORT, ["_WITH_LIBGEARMAN_SUPPORT 0"])
  54. AC_DEFINE([GEARMAND_BINARY], "./gearmand/gearmand", [Name of the gearmand binary used in make test])
  55. AC_DEFINE([HAVE_LIBGEARMAN], 1, [libgearman support])
  56. AC_DEFINE([HAVE_GEARMAND_BINARY], 1, [libgearman support])
  57. AX_LIB_CURL([7.21.7],
  58. [
  59. AC_CHECK_HEADERS([curl/curl.h],
  60. [
  61. AC_DEFINE([HAVE_LIBCURL], [ 1 ], [libcurl support])
  62. ],
  63. [
  64. AC_DEFINE([HAVE_LIBCURL], [ 0 ], [libcurl support])
  65. ]
  66. )
  67. ],
  68. [
  69. AC_DEFINE([HAVE_LIBCURL], [ 0 ], [libcurl support])
  70. ]
  71. )
  72. m4_include([m4/drizzled.m4])
  73. WITH_LIBDRIZZLE
  74. AX_LIB_SQLITE3
  75. AS_IF([test "x${WANT_SQLITE3}" = "xyes"],
  76. [
  77. AC_DEFINE([HAVE_LIBSQLITE3], [ 1 ], [Have the SQLITE3 library])
  78. ],
  79. [
  80. AC_DEFINE([HAVE_LIBSQLITE3], [ 0 ], [Have the SQLITE3 library])
  81. ])
  82. AM_CONDITIONAL(HAVE_LIBSQLITE3, test "x${WANT_SQLITE3}" = "xyes")
  83. AC_DEFINE([HAVE_MEMCACHED_LIGHT_BINARY], [0], [Support for memcached_light])
  84. AC_DEFINE([MEMCACHED_LIGHT_BINARY], [""], [Support for memcached_light])
  85. PANDORA_HAVE_BETTER_MALLOC
  86. AX_HAVE_LIBPQ
  87. PANDORA_HAVE_LIBTOKYOCABINET
  88. AC_FUNC_STRERROR_R
  89. SOCKET_SEND_FLAGS
  90. FCNTL_FLAGS
  91. AX_HAVE_LIBHIREDIS
  92. AX_LIB_MYSQL([5.0])
  93. AM_CONDITIONAL(HAVE_MYSQL, test "x${found_mysql}" = "xyes")
  94. AS_IF([test "x${found_mysql}" = "xyes"],
  95. [
  96. AC_DEFINE([HAVE_MYSQL_BUILD], [1], [Define to 1 if MySQL libraries are available])
  97. ],
  98. [
  99. AC_DEFINE([HAVE_MYSQL_BUILD], [0], [Define to 1 if MySQL libraries are available])
  100. ])
  101. # Checks for programs.
  102. AC_PROG_AWK
  103. AC_PROG_INSTALL
  104. AC_PROG_LN_S
  105. AC_PROG_MAKE_SET
  106. AC_CHECK_PROGS([VALGRIND], ['valgrind'])
  107. # Checks for header files.
  108. AC_HEADER_STDC
  109. AC_HEADER_SYS_WAIT
  110. AC_CHECK_HEADERS(arpa/inet.h fcntl.h inttypes.h limits.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h netinet/tcp.h)
  111. AC_CHECK_HEADERS(errno.h getopt.h pwd.h signal.h)
  112. AC_CHECK_HEADERS(stdarg.h stddef.h stdio.h)
  113. AC_CHECK_HEADERS(sys/resource.h sys/stat.h)
  114. AC_CHECK_HEADERS(sys/socket.h sys/types.h sys/utsname.h strings.h)
  115. AC_CHECK_HEADERS([execinfo.h])
  116. AC_CHECK_HEADERS([cxxabi.h],
  117. AC_DEFINE([HAVE_CXXABI_H], [1], [Have cxxabi.h]),
  118. AC_DEFINE([HAVE_CXXABI_H], [0], [Have cxxabi.h]))
  119. # Checks for typedefs, structures, and compiler characteristics.
  120. AC_HEADER_STDBOOL
  121. AC_C_CONST
  122. AC_C_INLINE
  123. AC_TYPE_INT32_T
  124. AC_TYPE_PID_T
  125. AC_TYPE_SIZE_T
  126. AC_TYPE_SSIZE_T
  127. AC_HEADER_TIME
  128. AC_TYPE_UID_T
  129. AC_TYPE_UINT16_T
  130. AC_TYPE_UINT32_T
  131. AC_TYPE_UINT64_T
  132. AC_TYPE_INT64_T
  133. AC_TYPE_UINT8_T
  134. AC_C_VOLATILE
  135. AC_CHECK_TYPES([ptrdiff_t])
  136. # Checks for library functions.
  137. LT_LIB_M
  138. AC_FUNC_ERROR_AT_LINE
  139. AC_REPLACE_FNMATCH
  140. AC_FUNC_FORK
  141. AC_FUNC_MALLOC
  142. AC_FUNC_MEMCMP
  143. AC_FUNC_REALLOC
  144. AC_FUNC_STRERROR_R
  145. AC_FUNC_VPRINTF
  146. AC_CHECK_FUNCS([dup2 gettimeofday memchr memmove memset socket strcasecmp strdup strerror strncasecmp uname])
  147. AC_CHECK_FUNCS([pipe2])
  148. AC_CHECK_FUNCS([select])
  149. AC_CHECK_FUNCS([setenv])
  150. AC_CHECK_FUNCS([strtol])
  151. AC_CHECK_FUNCS([strtoul])
  152. # Check for the ability to call dlopen (used in libhostile)
  153. AC_CHECK_LIB([dl], [dlopen],
  154. [
  155. DL_LIB="-ldl"
  156. AC_SUBST(DL_LIB)
  157. AC_DEFINE([HAVE_LIBDL], [ 1 ], [Have dlopen])
  158. ],
  159. [
  160. AC_DEFINE([HAVE_LIBDL], [ 0 ], [Have dlopen])
  161. ])
  162. # Check for -lrt
  163. AC_CHECK_LIB([rt], [clock_gettime],
  164. [
  165. RT_LIB="-lrt"
  166. AC_SUBST(RT_LIB)
  167. AC_DEFINE([HAVE_LIBRT], [ 1 ], [Have clock_gettime])
  168. ],
  169. [
  170. AC_DEFINE([HAVE_LIBRT], [ 0 ], [Have clock_gettime])
  171. ])
  172. # Check for -lm
  173. AC_CHECK_LIB([m], [floor],
  174. [
  175. M_LIB="-lm"
  176. AC_SUBST(M_LIB)
  177. AC_DEFINE([HAVE_LIBM], [ 1 ], [Have math library])
  178. ],
  179. [
  180. AC_DEFINE([HAVE_LIBM], [ 0 ], [Have math library])
  181. ])
  182. AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
  183. AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
  184. AC_DEFINE([GEARMAND_BLOBSLAP_WORKER], [ 1 ], [Have Gearman Blobslap Worker])
  185. AC_TEST_FOR_REPOSITORY
  186. m4_include([m4/relro.m4])
  187. AX_CHECK_LIBRARY([LIBEVENT], [event.h], [event],
  188. [
  189. LIBEVENT_LDFLAGS="-levent"
  190. ],
  191. [
  192. AC_MSG_ERROR([Unable to find libevent])
  193. ])
  194. AX_CHECK_LIBRARY([LIBUUID], [uuid/uuid.h], [uuid],
  195. [
  196. LIBUUID_LDFLAGS="-luuid"
  197. ],
  198. [
  199. AC_MSG_WARN([Unable to find libuuid])
  200. ])
  201. AC_CONFIG_FILES([libtest/version.h])
  202. AC_CONFIG_FILES(Makefile
  203. docs/conf.py
  204. libgearman-1.0/version.h
  205. scripts/gearmand
  206. scripts/gearmand-init
  207. scripts/gearmand.xml
  208. scripts/smf_install.sh
  209. support/gearmand.pc
  210. support/gearmand.spec)
  211. AC_OUTPUT
  212. echo "---"
  213. echo "Configuration summary for $PACKAGE_NAME version $VERSION"
  214. echo ""
  215. echo " * Installation prefix: $prefix"
  216. echo " * System type: $host_vendor-$host_os"
  217. echo " * Host CPU: $host_cpu"
  218. echo " * C Compiler: $CC_VERSION"
  219. echo " * Assertions enabled: $ac_cv_assert"
  220. echo " * Debug enabled: $with_debug"
  221. echo " * Warnings as failure: $ac_cv_warnings_as_errors"
  222. echo " * Building with libsqlite3 $WANT_SQLITE3"
  223. echo " * Building with libdrizzle $ac_enable_libdrizzle"
  224. echo " * Building with libmemcached $ac_enable_libmemcached"
  225. echo " * Building with libpq $ac_cv_libpq"
  226. echo " * Building with tokyocabinet $ac_enable_libtokyocabinet"
  227. echo " * Building with libmysql $found_mysql"
  228. echo ""
  229. echo "---"