configure.ac 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. # Gearman server and library
  2. # Copyright (C) 2011 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.29],[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=6: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. AX_HAVE_LIBHIREDIS
  91. AX_LIB_MYSQL([5.0])
  92. AM_CONDITIONAL(HAVE_MYSQL, test "x${HAVE_MYSQL}" = "x1")
  93. AS_IF([test "x${HAVE_MYSQL}" = "xyes"],
  94. [
  95. AC_DEFINE([HAVE_MYSQL_BUILD], [1], [Define to 1 if MySQL libraries are available])
  96. ],
  97. [
  98. AC_DEFINE([HAVE_MYSQL_BUILD], [0], [Define to 1 if MySQL libraries are available])
  99. ])
  100. # Checks for programs.
  101. AC_PROG_AWK
  102. AC_PROG_INSTALL
  103. AC_PROG_LN_S
  104. AC_PROG_MAKE_SET
  105. AC_CHECK_PROGS([VALGRIND], ['valgrind'])
  106. # Checks for header files.
  107. AC_HEADER_STDC
  108. AC_HEADER_SYS_WAIT
  109. 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)
  110. AC_CHECK_HEADERS(errno.h getopt.h pwd.h signal.h)
  111. AC_CHECK_HEADERS(stdarg.h stddef.h stdio.h)
  112. AC_CHECK_HEADERS(sys/resource.h sys/stat.h)
  113. AC_CHECK_HEADERS(sys/socket.h sys/types.h sys/utsname.h strings.h)
  114. # Checks for typedefs, structures, and compiler characteristics.
  115. AC_HEADER_STDBOOL
  116. AC_C_CONST
  117. AC_C_INLINE
  118. AC_TYPE_INT32_T
  119. AC_TYPE_PID_T
  120. AC_TYPE_SIZE_T
  121. AC_TYPE_SSIZE_T
  122. AC_HEADER_TIME
  123. AC_TYPE_UID_T
  124. AC_TYPE_UINT16_T
  125. AC_TYPE_UINT32_T
  126. AC_TYPE_UINT64_T
  127. AC_TYPE_INT64_T
  128. AC_TYPE_UINT8_T
  129. AC_C_VOLATILE
  130. AC_CHECK_TYPES([ptrdiff_t])
  131. # Checks for library functions.
  132. LT_LIB_M
  133. AC_FUNC_ERROR_AT_LINE
  134. AC_REPLACE_FNMATCH
  135. AC_FUNC_FORK
  136. AC_FUNC_MALLOC
  137. AC_FUNC_MEMCMP
  138. AC_FUNC_REALLOC
  139. AC_FUNC_STRERROR_R
  140. AC_FUNC_VPRINTF
  141. AC_CHECK_FUNCS([dup2 gettimeofday memchr memmove memset socket strcasecmp strdup strerror strncasecmp uname])
  142. AC_CHECK_FUNCS([select])
  143. AC_CHECK_FUNCS([setenv])
  144. AC_CHECK_FUNCS([strtol])
  145. AC_CHECK_FUNCS([strtoul])
  146. # Check for the ability to call dlopen (used in libhostile)
  147. AC_CHECK_LIB([dl], [dlopen],
  148. [
  149. DL_LIB="-ldl"
  150. AC_SUBST(DL_LIB)
  151. AC_DEFINE([HAVE_LIBDL], [ 1 ], [Have dlopen])
  152. ],
  153. [
  154. AC_DEFINE([HAVE_LIBDL], [ 0 ], [Have dlopen])
  155. ])
  156. # Check for -lrt
  157. AC_CHECK_LIB([rt], [clock_gettime],
  158. [
  159. RT_LIB="-lrt"
  160. AC_SUBST(RT_LIB)
  161. AC_DEFINE([HAVE_LIBRT], [ 1 ], [Have clock_gettime])
  162. ],
  163. [
  164. AC_DEFINE([HAVE_LIBRT], [ 0 ], [Have clock_gettime])
  165. ])
  166. # Check for -lm
  167. AC_CHECK_LIB([m], [floor],
  168. [
  169. M_LIB="-lm"
  170. AC_SUBST(M_LIB)
  171. AC_DEFINE([HAVE_LIBM], [ 1 ], [Have math library])
  172. ],
  173. [
  174. AC_DEFINE([HAVE_LIBM], [ 0 ], [Have math library])
  175. ])
  176. AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
  177. AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
  178. AC_DEFINE([GEARMAND_BLOBSLAP_WORKER], [ 1 ], [Have Gearman Blobslap Worker])
  179. AC_TEST_FOR_REPOSITORY
  180. m4_include([m4/relro.m4])
  181. AX_CHECK_LIBRARY([LIBEVENT], [event.h], [event],
  182. [
  183. LIBEVENT_LDFLAGS="-levent"
  184. ],
  185. [
  186. AC_MSG_ERROR([Unable to find libevent])
  187. ])
  188. AX_CHECK_LIBRARY([LIBUUID], [uuid/uuid.h], [uuid],
  189. [
  190. LIBUUID_LDFLAGS="-luuid"
  191. ],
  192. [
  193. AC_MSG_WARN([Unable to find libuuid])
  194. ])
  195. AC_CONFIG_FILES([libtest/version.h])
  196. AC_CONFIG_FILES(Makefile
  197. docs/conf.py
  198. libgearman-1.0/version.h
  199. scripts/gearmand
  200. scripts/gearmand-init
  201. scripts/gearmand.xml
  202. scripts/smf_install.sh
  203. support/gearmand.pc
  204. support/gearmand.spec)
  205. AC_OUTPUT
  206. echo "---"
  207. echo "Configuration summary for $PACKAGE_NAME version $VERSION"
  208. echo ""
  209. echo " * Installation prefix: $prefix"
  210. echo " * System type: $host_vendor-$host_os"
  211. echo " * Host CPU: $host_cpu"
  212. echo " * C Compiler: $CC_VERSION"
  213. echo " * Assertions enabled: $ac_cv_assert"
  214. echo " * Debug enabled: $with_debug"
  215. echo " * Warnings as failure: $ac_cv_warnings_as_errors"
  216. echo " * Building with libsqlite3 $WANT_SQLITE3"
  217. echo " * Building with libdrizzle $ac_enable_libdrizzle"
  218. echo " * Building with libmemcached $ac_enable_libmemcached"
  219. echo " * Building with libpq $ac_cv_libpq"
  220. echo " * Building with tokyocabinet $ac_enable_libtokyocabinet"
  221. echo " * Building with libmysql $found_mysql"
  222. echo ""
  223. echo "---"