configure.ac 8.8 KB

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