couchbase-memcached 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. data.tar.gz.sig +2 -0
  2. data/BENCHMARKS +134 -0
  3. data/CHANGELOG +127 -0
  4. data/LICENSE +184 -0
  5. data/Manifest +535 -0
  6. data/README +118 -0
  7. data/Rakefile +83 -0
  8. data/TODO +4 -0
  9. data/couchbase-memcached.gemspec +33 -0
  10. data/ext/extconf-make.rb +25 -0
  11. data/ext/extconf.rb +91 -0
  12. data/ext/libmemcached-0.50/AUTHORS +11 -0
  13. data/ext/libmemcached-0.50/COPYING +33 -0
  14. data/ext/libmemcached-0.50/ChangeLog +392 -0
  15. data/ext/libmemcached-0.50/Makefile.am +114 -0
  16. data/ext/libmemcached-0.50/Makefile.in +4232 -0
  17. data/ext/libmemcached-0.50/NEWS +1 -0
  18. data/ext/libmemcached-0.50/README +43 -0
  19. data/ext/libmemcached-0.50/README.FIRST +31 -0
  20. data/ext/libmemcached-0.50/README.win32 +25 -0
  21. data/ext/libmemcached-0.50/THANKS +14 -0
  22. data/ext/libmemcached-0.50/TODO +11 -0
  23. data/ext/libmemcached-0.50/aclocal.m4 +1077 -0
  24. data/ext/libmemcached-0.50/clients/client_options.h +45 -0
  25. data/ext/libmemcached-0.50/clients/execute.cc +131 -0
  26. data/ext/libmemcached-0.50/clients/execute.h +30 -0
  27. data/ext/libmemcached-0.50/clients/generator.cc +96 -0
  28. data/ext/libmemcached-0.50/clients/generator.h +36 -0
  29. data/ext/libmemcached-0.50/clients/include.am +116 -0
  30. data/ext/libmemcached-0.50/clients/memaslap.c +908 -0
  31. data/ext/libmemcached-0.50/clients/memcapable.cc +2094 -0
  32. data/ext/libmemcached-0.50/clients/memcat.cc +242 -0
  33. data/ext/libmemcached-0.50/clients/memcp.cc +317 -0
  34. data/ext/libmemcached-0.50/clients/memdump.cc +183 -0
  35. data/ext/libmemcached-0.50/clients/memerror.cc +102 -0
  36. data/ext/libmemcached-0.50/clients/memflush.cc +154 -0
  37. data/ext/libmemcached-0.50/clients/memparse.cc +68 -0
  38. data/ext/libmemcached-0.50/clients/memrm.cc +177 -0
  39. data/ext/libmemcached-0.50/clients/memslap.cc +495 -0
  40. data/ext/libmemcached-0.50/clients/memstat.cc +349 -0
  41. data/ext/libmemcached-0.50/clients/ms_atomic.h +69 -0
  42. data/ext/libmemcached-0.50/clients/ms_conn.c +3413 -0
  43. data/ext/libmemcached-0.50/clients/ms_conn.h +241 -0
  44. data/ext/libmemcached-0.50/clients/ms_memslap.h +132 -0
  45. data/ext/libmemcached-0.50/clients/ms_setting.c +1068 -0
  46. data/ext/libmemcached-0.50/clients/ms_setting.h +181 -0
  47. data/ext/libmemcached-0.50/clients/ms_sigsegv.c +126 -0
  48. data/ext/libmemcached-0.50/clients/ms_sigsegv.h +34 -0
  49. data/ext/libmemcached-0.50/clients/ms_stats.c +307 -0
  50. data/ext/libmemcached-0.50/clients/ms_stats.h +69 -0
  51. data/ext/libmemcached-0.50/clients/ms_task.c +1114 -0
  52. data/ext/libmemcached-0.50/clients/ms_task.h +94 -0
  53. data/ext/libmemcached-0.50/clients/ms_thread.c +351 -0
  54. data/ext/libmemcached-0.50/clients/ms_thread.h +78 -0
  55. data/ext/libmemcached-0.50/clients/utilities.cc +231 -0
  56. data/ext/libmemcached-0.50/clients/utilities.h +64 -0
  57. data/ext/libmemcached-0.50/config.h.in +647 -0
  58. data/ext/libmemcached-0.50/config/autorun.sh +126 -0
  59. data/ext/libmemcached-0.50/config/compile +143 -0
  60. data/ext/libmemcached-0.50/config/config.guess +1517 -0
  61. data/ext/libmemcached-0.50/config/config.rpath +666 -0
  62. data/ext/libmemcached-0.50/config/config.sub +1760 -0
  63. data/ext/libmemcached-0.50/config/depcomp +630 -0
  64. data/ext/libmemcached-0.50/config/install-sh +520 -0
  65. data/ext/libmemcached-0.50/config/ltmain.sh +9642 -0
  66. data/ext/libmemcached-0.50/config/missing +376 -0
  67. data/ext/libmemcached-0.50/config/pandora-plugin +752 -0
  68. data/ext/libmemcached-0.50/config/uncrustify.cfg +1112 -0
  69. data/ext/libmemcached-0.50/configure +27103 -0
  70. data/ext/libmemcached-0.50/configure.ac +186 -0
  71. data/ext/libmemcached-0.50/docs/conf.py.in +354 -0
  72. data/ext/libmemcached-0.50/docs/include.am +240 -0
  73. data/ext/libmemcached-0.50/docs/man/hashkit_clone.3 +88 -0
  74. data/ext/libmemcached-0.50/docs/man/hashkit_crc32.3 +105 -0
  75. data/ext/libmemcached-0.50/docs/man/hashkit_create.3 +88 -0
  76. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_32.3 +105 -0
  77. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_64.3 +105 -0
  78. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_32.3 +105 -0
  79. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_64.3 +105 -0
  80. data/ext/libmemcached-0.50/docs/man/hashkit_free.3 +88 -0
  81. data/ext/libmemcached-0.50/docs/man/hashkit_functions.3 +105 -0
  82. data/ext/libmemcached-0.50/docs/man/hashkit_hsieh.3 +105 -0
  83. data/ext/libmemcached-0.50/docs/man/hashkit_is_allocated.3 +88 -0
  84. data/ext/libmemcached-0.50/docs/man/hashkit_jenkins.3 +105 -0
  85. data/ext/libmemcached-0.50/docs/man/hashkit_md5.3 +105 -0
  86. data/ext/libmemcached-0.50/docs/man/hashkit_murmur.3 +105 -0
  87. data/ext/libmemcached-0.50/docs/man/hashkit_value.3 +66 -0
  88. data/ext/libmemcached-0.50/docs/man/libhashkit.3 +57 -0
  89. data/ext/libmemcached-0.50/docs/man/libmemcached.3 +208 -0
  90. data/ext/libmemcached-0.50/docs/man/libmemcached_check_configuration.3 +293 -0
  91. data/ext/libmemcached-0.50/docs/man/libmemcached_configuration.3 +293 -0
  92. data/ext/libmemcached-0.50/docs/man/libmemcached_examples.3 +144 -0
  93. data/ext/libmemcached-0.50/docs/man/libmemcachedutil.3 +68 -0
  94. data/ext/libmemcached-0.50/docs/man/memaslap.1 +1222 -0
  95. data/ext/libmemcached-0.50/docs/man/memcached.3 +293 -0
  96. data/ext/libmemcached-0.50/docs/man/memcached_add.3 +132 -0
  97. data/ext/libmemcached-0.50/docs/man/memcached_add_by_key.3 +132 -0
  98. data/ext/libmemcached-0.50/docs/man/memcached_analyze.3 +77 -0
  99. data/ext/libmemcached-0.50/docs/man/memcached_append.3 +111 -0
  100. data/ext/libmemcached-0.50/docs/man/memcached_append_by_key.3 +111 -0
  101. data/ext/libmemcached-0.50/docs/man/memcached_behavior_get.3 +333 -0
  102. data/ext/libmemcached-0.50/docs/man/memcached_behavior_set.3 +333 -0
  103. data/ext/libmemcached-0.50/docs/man/memcached_callback_get.3 +159 -0
  104. data/ext/libmemcached-0.50/docs/man/memcached_callback_set.3 +159 -0
  105. data/ext/libmemcached-0.50/docs/man/memcached_cas.3 +91 -0
  106. data/ext/libmemcached-0.50/docs/man/memcached_cas_by_key.3 +91 -0
  107. data/ext/libmemcached-0.50/docs/man/memcached_clone.3 +99 -0
  108. data/ext/libmemcached-0.50/docs/man/memcached_create.3 +99 -0
  109. data/ext/libmemcached-0.50/docs/man/memcached_decrement.3 +124 -0
  110. data/ext/libmemcached-0.50/docs/man/memcached_decrement_with_initial.3 +124 -0
  111. data/ext/libmemcached-0.50/docs/man/memcached_delete.3 +83 -0
  112. data/ext/libmemcached-0.50/docs/man/memcached_delete_by_key.3 +83 -0
  113. data/ext/libmemcached-0.50/docs/man/memcached_destroy_sasl_auth_data.3 +95 -0
  114. data/ext/libmemcached-0.50/docs/man/memcached_dump.3 +77 -0
  115. data/ext/libmemcached-0.50/docs/man/memcached_fetch.3 +174 -0
  116. data/ext/libmemcached-0.50/docs/man/memcached_fetch_execute.3 +174 -0
  117. data/ext/libmemcached-0.50/docs/man/memcached_fetch_result.3 +174 -0
  118. data/ext/libmemcached-0.50/docs/man/memcached_flush_buffers.3 +72 -0
  119. data/ext/libmemcached-0.50/docs/man/memcached_free.3 +99 -0
  120. data/ext/libmemcached-0.50/docs/man/memcached_generate_hash.3 +85 -0
  121. data/ext/libmemcached-0.50/docs/man/memcached_generate_hash_value.3 +85 -0
  122. data/ext/libmemcached-0.50/docs/man/memcached_get.3 +174 -0
  123. data/ext/libmemcached-0.50/docs/man/memcached_get_by_key.3 +174 -0
  124. data/ext/libmemcached-0.50/docs/man/memcached_get_memory_allocators.3 +111 -0
  125. data/ext/libmemcached-0.50/docs/man/memcached_get_sasl_callbacks.3 +95 -0
  126. data/ext/libmemcached-0.50/docs/man/memcached_get_user_data.3 +79 -0
  127. data/ext/libmemcached-0.50/docs/man/memcached_increment.3 +124 -0
  128. data/ext/libmemcached-0.50/docs/man/memcached_increment_with_initial.3 +124 -0
  129. data/ext/libmemcached-0.50/docs/man/memcached_lib_version.3 +76 -0
  130. data/ext/libmemcached-0.50/docs/man/memcached_mget.3 +174 -0
  131. data/ext/libmemcached-0.50/docs/man/memcached_mget_by_key.3 +174 -0
  132. data/ext/libmemcached-0.50/docs/man/memcached_mget_execute.3 +174 -0
  133. data/ext/libmemcached-0.50/docs/man/memcached_mget_execute_by_key.3 +174 -0
  134. data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_get.3 +139 -0
  135. data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_set.3 +139 -0
  136. data/ext/libmemcached-0.50/docs/man/memcached_pool_create.3 +139 -0
  137. data/ext/libmemcached-0.50/docs/man/memcached_pool_destroy.3 +139 -0
  138. data/ext/libmemcached-0.50/docs/man/memcached_pool_pop.3 +139 -0
  139. data/ext/libmemcached-0.50/docs/man/memcached_pool_push.3 +139 -0
  140. data/ext/libmemcached-0.50/docs/man/memcached_pool_st.3 +139 -0
  141. data/ext/libmemcached-0.50/docs/man/memcached_prepend.3 +111 -0
  142. data/ext/libmemcached-0.50/docs/man/memcached_prepend_by_key.3 +111 -0
  143. data/ext/libmemcached-0.50/docs/man/memcached_quit.3 +74 -0
  144. data/ext/libmemcached-0.50/docs/man/memcached_replace.3 +132 -0
  145. data/ext/libmemcached-0.50/docs/man/memcached_replace_by_key.3 +132 -0
  146. data/ext/libmemcached-0.50/docs/man/memcached_sasl_set_auth_data.3 +95 -0
  147. data/ext/libmemcached-0.50/docs/man/memcached_server_add.3 +141 -0
  148. data/ext/libmemcached-0.50/docs/man/memcached_server_count.3 +141 -0
  149. data/ext/libmemcached-0.50/docs/man/memcached_server_cursor.3 +141 -0
  150. data/ext/libmemcached-0.50/docs/man/memcached_server_list.3 +141 -0
  151. data/ext/libmemcached-0.50/docs/man/memcached_server_list_append.3 +111 -0
  152. data/ext/libmemcached-0.50/docs/man/memcached_server_list_count.3 +111 -0
  153. data/ext/libmemcached-0.50/docs/man/memcached_server_list_free.3 +111 -0
  154. data/ext/libmemcached-0.50/docs/man/memcached_server_push.3 +141 -0
  155. data/ext/libmemcached-0.50/docs/man/memcached_servers_parse.3 +111 -0
  156. data/ext/libmemcached-0.50/docs/man/memcached_set.3 +132 -0
  157. data/ext/libmemcached-0.50/docs/man/memcached_set_by_key.3 +132 -0
  158. data/ext/libmemcached-0.50/docs/man/memcached_set_memory_allocators.3 +111 -0
  159. data/ext/libmemcached-0.50/docs/man/memcached_set_sasl_callbacks.3 +95 -0
  160. data/ext/libmemcached-0.50/docs/man/memcached_set_user_data.3 +79 -0
  161. data/ext/libmemcached-0.50/docs/man/memcached_stat.3 +116 -0
  162. data/ext/libmemcached-0.50/docs/man/memcached_stat_execute.3 +116 -0
  163. data/ext/libmemcached-0.50/docs/man/memcached_stat_get_keys.3 +116 -0
  164. data/ext/libmemcached-0.50/docs/man/memcached_stat_get_value.3 +116 -0
  165. data/ext/libmemcached-0.50/docs/man/memcached_stat_servername.3 +116 -0
  166. data/ext/libmemcached-0.50/docs/man/memcached_strerror.3 +69 -0
  167. data/ext/libmemcached-0.50/docs/man/memcached_verbosity.3 +66 -0
  168. data/ext/libmemcached-0.50/docs/man/memcached_version.3 +76 -0
  169. data/ext/libmemcached-0.50/docs/man/memcapable.1 +92 -0
  170. data/ext/libmemcached-0.50/docs/man/memcat.1 +71 -0
  171. data/ext/libmemcached-0.50/docs/man/memcp.1 +77 -0
  172. data/ext/libmemcached-0.50/docs/man/memdump.1 +66 -0
  173. data/ext/libmemcached-0.50/docs/man/memerror.1 +65 -0
  174. data/ext/libmemcached-0.50/docs/man/memflush.1 +73 -0
  175. data/ext/libmemcached-0.50/docs/man/memrm.1 +72 -0
  176. data/ext/libmemcached-0.50/docs/man/memslap.1 +59 -0
  177. data/ext/libmemcached-0.50/docs/man/memstat.1 +70 -0
  178. data/ext/libmemcached-0.50/example/include.am +24 -0
  179. data/ext/libmemcached-0.50/example/interface_v0.c +594 -0
  180. data/ext/libmemcached-0.50/example/interface_v1.c +411 -0
  181. data/ext/libmemcached-0.50/example/memcached_light.c +474 -0
  182. data/ext/libmemcached-0.50/example/memcached_light.h +7 -0
  183. data/ext/libmemcached-0.50/example/storage.c +172 -0
  184. data/ext/libmemcached-0.50/example/storage.h +27 -0
  185. data/ext/libmemcached-0.50/example/storage_innodb.c +535 -0
  186. data/ext/libmemcached-0.50/libhashkit/algorithm.cc +69 -0
  187. data/ext/libmemcached-0.50/libhashkit/algorithm.h +96 -0
  188. data/ext/libmemcached-0.50/libhashkit/behavior.cc +9 -0
  189. data/ext/libmemcached-0.50/libhashkit/behavior.h +26 -0
  190. data/ext/libmemcached-0.50/libhashkit/common.h +33 -0
  191. data/ext/libmemcached-0.50/libhashkit/configure.h.in +19 -0
  192. data/ext/libmemcached-0.50/libhashkit/crc32.cc +86 -0
  193. data/ext/libmemcached-0.50/libhashkit/digest.cc +62 -0
  194. data/ext/libmemcached-0.50/libhashkit/digest.h +30 -0
  195. data/ext/libmemcached-0.50/libhashkit/fnv.cc +75 -0
  196. data/ext/libmemcached-0.50/libhashkit/function.cc +156 -0
  197. data/ext/libmemcached-0.50/libhashkit/function.h +44 -0
  198. data/ext/libmemcached-0.50/libhashkit/hashkit.cc +100 -0
  199. data/ext/libmemcached-0.50/libhashkit/hashkit.h +95 -0
  200. data/ext/libmemcached-0.50/libhashkit/hashkit.hpp +97 -0
  201. data/ext/libmemcached-0.50/libhashkit/hsieh.cc +70 -0
  202. data/ext/libmemcached-0.50/libhashkit/include.am +69 -0
  203. data/ext/libmemcached-0.50/libhashkit/jenkins.cc +214 -0
  204. data/ext/libmemcached-0.50/libhashkit/ketama.cc +164 -0
  205. data/ext/libmemcached-0.50/libhashkit/md5.cc +367 -0
  206. data/ext/libmemcached-0.50/libhashkit/murmur.cc +77 -0
  207. data/ext/libmemcached-0.50/libhashkit/one_at_a_time.cc +34 -0
  208. data/ext/libmemcached-0.50/libhashkit/str_algorithm.cc +58 -0
  209. data/ext/libmemcached-0.50/libhashkit/str_algorithm.h +48 -0
  210. data/ext/libmemcached-0.50/libhashkit/strerror.cc +25 -0
  211. data/ext/libmemcached-0.50/libhashkit/strerror.h +23 -0
  212. data/ext/libmemcached-0.50/libhashkit/types.h +90 -0
  213. data/ext/libmemcached-0.50/libhashkit/visibility.h +48 -0
  214. data/ext/libmemcached-0.50/libmemcached/allocators.cc +119 -0
  215. data/ext/libmemcached-0.50/libmemcached/allocators.h +87 -0
  216. data/ext/libmemcached-0.50/libmemcached/analyze.cc +110 -0
  217. data/ext/libmemcached-0.50/libmemcached/analyze.h +66 -0
  218. data/ext/libmemcached-0.50/libmemcached/array.c +128 -0
  219. data/ext/libmemcached-0.50/libmemcached/array.h +75 -0
  220. data/ext/libmemcached-0.50/libmemcached/auto.cc +383 -0
  221. data/ext/libmemcached-0.50/libmemcached/auto.h +111 -0
  222. data/ext/libmemcached-0.50/libmemcached/basic_string.h +55 -0
  223. data/ext/libmemcached-0.50/libmemcached/behavior.cc +590 -0
  224. data/ext/libmemcached-0.50/libmemcached/behavior.h +86 -0
  225. data/ext/libmemcached-0.50/libmemcached/byteorder.cc +90 -0
  226. data/ext/libmemcached-0.50/libmemcached/byteorder.h +52 -0
  227. data/ext/libmemcached-0.50/libmemcached/callback.cc +160 -0
  228. data/ext/libmemcached-0.50/libmemcached/callback.h +61 -0
  229. data/ext/libmemcached-0.50/libmemcached/common.h +182 -0
  230. data/ext/libmemcached-0.50/libmemcached/configure.h.in +52 -0
  231. data/ext/libmemcached-0.50/libmemcached/connect.cc +626 -0
  232. data/ext/libmemcached-0.50/libmemcached/constants.h +167 -0
  233. data/ext/libmemcached-0.50/libmemcached/delete.cc +266 -0
  234. data/ext/libmemcached-0.50/libmemcached/delete.h +57 -0
  235. data/ext/libmemcached-0.50/libmemcached/do.cc +100 -0
  236. data/ext/libmemcached-0.50/libmemcached/do.hpp +49 -0
  237. data/ext/libmemcached-0.50/libmemcached/dump.cc +107 -0
  238. data/ext/libmemcached-0.50/libmemcached/dump.h +51 -0
  239. data/ext/libmemcached-0.50/libmemcached/error.cc +419 -0
  240. data/ext/libmemcached-0.50/libmemcached/error.h +61 -0
  241. data/ext/libmemcached-0.50/libmemcached/error.hpp +87 -0
  242. data/ext/libmemcached-0.50/libmemcached/exception.hpp +63 -0
  243. data/ext/libmemcached-0.50/libmemcached/fetch.cc +267 -0
  244. data/ext/libmemcached-0.50/libmemcached/fetch.h +53 -0
  245. data/ext/libmemcached-0.50/libmemcached/flush.cc +149 -0
  246. data/ext/libmemcached-0.50/libmemcached/flush.h +49 -0
  247. data/ext/libmemcached-0.50/libmemcached/flush_buffers.cc +66 -0
  248. data/ext/libmemcached-0.50/libmemcached/flush_buffers.h +49 -0
  249. data/ext/libmemcached-0.50/libmemcached/get.cc +842 -0
  250. data/ext/libmemcached-0.50/libmemcached/get.h +135 -0
  251. data/ext/libmemcached-0.50/libmemcached/hash.cc +178 -0
  252. data/ext/libmemcached-0.50/libmemcached/hash.h +68 -0
  253. data/ext/libmemcached-0.50/libmemcached/hosts.cc +516 -0
  254. data/ext/libmemcached-0.50/libmemcached/include.am +183 -0
  255. data/ext/libmemcached-0.50/libmemcached/initialize_query.cc +70 -0
  256. data/ext/libmemcached-0.50/libmemcached/initialize_query.h +51 -0
  257. data/ext/libmemcached-0.50/libmemcached/internal.h +46 -0
  258. data/ext/libmemcached-0.50/libmemcached/io.cc +920 -0
  259. data/ext/libmemcached-0.50/libmemcached/io.h +119 -0
  260. data/ext/libmemcached-0.50/libmemcached/is.h +48 -0
  261. data/ext/libmemcached-0.50/libmemcached/key.cc +23 -0
  262. data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.d +30 -0
  263. data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.h +118 -0
  264. data/ext/libmemcached-0.50/libmemcached/memcached.cc +437 -0
  265. data/ext/libmemcached-0.50/libmemcached/memcached.h +214 -0
  266. data/ext/libmemcached-0.50/libmemcached/memcached.hpp +799 -0
  267. data/ext/libmemcached-0.50/libmemcached/memcached/README.txt +7 -0
  268. data/ext/libmemcached-0.50/libmemcached/memcached/protocol_binary.h +726 -0
  269. data/ext/libmemcached-0.50/libmemcached/memcached/vbucket.h +26 -0
  270. data/ext/libmemcached-0.50/libmemcached/memcached_util.h +44 -0
  271. data/ext/libmemcached-0.50/libmemcached/memory.h +79 -0
  272. data/ext/libmemcached-0.50/libmemcached/options.cc +178 -0
  273. data/ext/libmemcached-0.50/libmemcached/options.h +49 -0
  274. data/ext/libmemcached-0.50/libmemcached/options.hpp +56 -0
  275. data/ext/libmemcached-0.50/libmemcached/options/context.h +151 -0
  276. data/ext/libmemcached-0.50/libmemcached/options/include.am +19 -0
  277. data/ext/libmemcached-0.50/libmemcached/options/parser.am +0 -0
  278. data/ext/libmemcached-0.50/libmemcached/options/parser.cc +2324 -0
  279. data/ext/libmemcached-0.50/libmemcached/options/parser.h +122 -0
  280. data/ext/libmemcached-0.50/libmemcached/options/scanner.cc +3203 -0
  281. data/ext/libmemcached-0.50/libmemcached/options/scanner.h +479 -0
  282. data/ext/libmemcached-0.50/libmemcached/options/server.h +60 -0
  283. data/ext/libmemcached-0.50/libmemcached/options/symbol.h +57 -0
  284. data/ext/libmemcached-0.50/libmemcached/parse.cc +110 -0
  285. data/ext/libmemcached-0.50/libmemcached/parse.h +23 -0
  286. data/ext/libmemcached-0.50/libmemcached/platform.h +56 -0
  287. data/ext/libmemcached-0.50/libmemcached/prefix_key.cc +65 -0
  288. data/ext/libmemcached-0.50/libmemcached/prefix_key.h +49 -0
  289. data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.c +963 -0
  290. data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.h +40 -0
  291. data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.c +1121 -0
  292. data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.h +47 -0
  293. data/ext/libmemcached-0.50/libmemcached/protocol/cache.c +149 -0
  294. data/ext/libmemcached-0.50/libmemcached/protocol/cache.h +116 -0
  295. data/ext/libmemcached-0.50/libmemcached/protocol/callback.h +418 -0
  296. data/ext/libmemcached-0.50/libmemcached/protocol/common.h +163 -0
  297. data/ext/libmemcached-0.50/libmemcached/protocol/include.am +26 -0
  298. data/ext/libmemcached-0.50/libmemcached/protocol/pedantic.c +202 -0
  299. data/ext/libmemcached-0.50/libmemcached/protocol/protocol_handler.c +365 -0
  300. data/ext/libmemcached-0.50/libmemcached/protocol_handler.h +215 -0
  301. data/ext/libmemcached-0.50/libmemcached/purge.cc +90 -0
  302. data/ext/libmemcached-0.50/libmemcached/quit.cc +139 -0
  303. data/ext/libmemcached-0.50/libmemcached/quit.h +55 -0
  304. data/ext/libmemcached-0.50/libmemcached/response.cc +619 -0
  305. data/ext/libmemcached-0.50/libmemcached/response.h +57 -0
  306. data/ext/libmemcached-0.50/libmemcached/result.cc +173 -0
  307. data/ext/libmemcached-0.50/libmemcached/result.h +100 -0
  308. data/ext/libmemcached-0.50/libmemcached/return.h +98 -0
  309. data/ext/libmemcached-0.50/libmemcached/sasl.c +408 -0
  310. data/ext/libmemcached-0.50/libmemcached/sasl.h +86 -0
  311. data/ext/libmemcached-0.50/libmemcached/server.cc +351 -0
  312. data/ext/libmemcached-0.50/libmemcached/server.h +169 -0
  313. data/ext/libmemcached-0.50/libmemcached/server_list.cc +88 -0
  314. data/ext/libmemcached-0.50/libmemcached/server_list.h +77 -0
  315. data/ext/libmemcached-0.50/libmemcached/stats.cc +623 -0
  316. data/ext/libmemcached-0.50/libmemcached/stats.h +96 -0
  317. data/ext/libmemcached-0.50/libmemcached/storage.cc +567 -0
  318. data/ext/libmemcached-0.50/libmemcached/storage.h +133 -0
  319. data/ext/libmemcached-0.50/libmemcached/strerror.cc +189 -0
  320. data/ext/libmemcached-0.50/libmemcached/strerror.h +50 -0
  321. data/ext/libmemcached-0.50/libmemcached/string.cc +253 -0
  322. data/ext/libmemcached-0.50/libmemcached/string.h +121 -0
  323. data/ext/libmemcached-0.50/libmemcached/touch.cc +106 -0
  324. data/ext/libmemcached-0.50/libmemcached/touch.h +59 -0
  325. data/ext/libmemcached-0.50/libmemcached/types.h +117 -0
  326. data/ext/libmemcached-0.50/libmemcached/util.h +40 -0
  327. data/ext/libmemcached-0.50/libmemcached/util/flush.cc +61 -0
  328. data/ext/libmemcached-0.50/libmemcached/util/flush.h +50 -0
  329. data/ext/libmemcached-0.50/libmemcached/util/include.am +34 -0
  330. data/ext/libmemcached-0.50/libmemcached/util/ping.cc +62 -0
  331. data/ext/libmemcached-0.50/libmemcached/util/ping.h +49 -0
  332. data/ext/libmemcached-0.50/libmemcached/util/pool.cc +392 -0
  333. data/ext/libmemcached-0.50/libmemcached/util/pool.h +78 -0
  334. data/ext/libmemcached-0.50/libmemcached/util/version.cc +87 -0
  335. data/ext/libmemcached-0.50/libmemcached/util/version.h +53 -0
  336. data/ext/libmemcached-0.50/libmemcached/verbosity.cc +97 -0
  337. data/ext/libmemcached-0.50/libmemcached/verbosity.h +50 -0
  338. data/ext/libmemcached-0.50/libmemcached/version.cc +214 -0
  339. data/ext/libmemcached-0.50/libmemcached/version.h +52 -0
  340. data/ext/libmemcached-0.50/libmemcached/virtual_bucket.c +118 -0
  341. data/ext/libmemcached-0.50/libmemcached/virtual_bucket.h +59 -0
  342. data/ext/libmemcached-0.50/libmemcached/visibility.h +51 -0
  343. data/ext/libmemcached-0.50/libmemcached/watchpoint.h +110 -0
  344. data/ext/libmemcached-0.50/libtest/callbacks.h +21 -0
  345. data/ext/libmemcached-0.50/libtest/collection.h +19 -0
  346. data/ext/libmemcached-0.50/libtest/common.h +50 -0
  347. data/ext/libmemcached-0.50/libtest/core.h +11 -0
  348. data/ext/libmemcached-0.50/libtest/error.h +18 -0
  349. data/ext/libmemcached-0.50/libtest/failed.h +52 -0
  350. data/ext/libmemcached-0.50/libtest/framework.cc +57 -0
  351. data/ext/libmemcached-0.50/libtest/framework.h +137 -0
  352. data/ext/libmemcached-0.50/libtest/get.h +22 -0
  353. data/ext/libmemcached-0.50/libtest/include.am +52 -0
  354. data/ext/libmemcached-0.50/libtest/runner.h +19 -0
  355. data/ext/libmemcached-0.50/libtest/server.c +355 -0
  356. data/ext/libmemcached-0.50/libtest/server.h +43 -0
  357. data/ext/libmemcached-0.50/libtest/stats.h +30 -0
  358. data/ext/libmemcached-0.50/libtest/strerror.h +14 -0
  359. data/ext/libmemcached-0.50/libtest/test.cc +319 -0
  360. data/ext/libmemcached-0.50/libtest/test.h +162 -0
  361. data/ext/libmemcached-0.50/libtest/test.hpp +46 -0
  362. data/ext/libmemcached-0.50/libtest/visibility.h +69 -0
  363. data/ext/libmemcached-0.50/m4/ac_cxx_header_stdcxx_98.m4 +83 -0
  364. data/ext/libmemcached-0.50/m4/acx_pthread.m4 +271 -0
  365. data/ext/libmemcached-0.50/m4/byteorder.m4 +19 -0
  366. data/ext/libmemcached-0.50/m4/deprecated.m4 +17 -0
  367. data/ext/libmemcached-0.50/m4/eagain.m4 +28 -0
  368. data/ext/libmemcached-0.50/m4/enable_utillib.m4 +16 -0
  369. data/ext/libmemcached-0.50/m4/gettext.m4 +379 -0
  370. data/ext/libmemcached-0.50/m4/hsieh.m4 +18 -0
  371. data/ext/libmemcached-0.50/m4/iconv.m4 +214 -0
  372. data/ext/libmemcached-0.50/m4/lib-ld.m4 +110 -0
  373. data/ext/libmemcached-0.50/m4/lib-link.m4 +767 -0
  374. data/ext/libmemcached-0.50/m4/lib-prefix.m4 +221 -0
  375. data/ext/libmemcached-0.50/m4/libtool.m4 +7851 -0
  376. data/ext/libmemcached-0.50/m4/ltoptions.m4 +369 -0
  377. data/ext/libmemcached-0.50/m4/ltsugar.m4 +123 -0
  378. data/ext/libmemcached-0.50/m4/ltversion.m4 +23 -0
  379. data/ext/libmemcached-0.50/m4/lt~obsolete.m4 +98 -0
  380. data/ext/libmemcached-0.50/m4/memaslap.m4 +9 -0
  381. data/ext/libmemcached-0.50/m4/memcached.m4 +31 -0
  382. data/ext/libmemcached-0.50/m4/murmur.m4 +18 -0
  383. data/ext/libmemcached-0.50/m4/pandora_64bit.m4 +60 -0
  384. data/ext/libmemcached-0.50/m4/pandora_bison.m4 +33 -0
  385. data/ext/libmemcached-0.50/m4/pandora_canonical.m4 +418 -0
  386. data/ext/libmemcached-0.50/m4/pandora_check_compiler_version.m4 +37 -0
  387. data/ext/libmemcached-0.50/m4/pandora_check_cxx_standard.m4 +23 -0
  388. data/ext/libmemcached-0.50/m4/pandora_cinttypes.m4 +39 -0
  389. data/ext/libmemcached-0.50/m4/pandora_clock_gettime.m4 +15 -0
  390. data/ext/libmemcached-0.50/m4/pandora_compile_stdcxx_0x.m4 +103 -0
  391. data/ext/libmemcached-0.50/m4/pandora_cstdint.m4 +38 -0
  392. data/ext/libmemcached-0.50/m4/pandora_cxx_demangle.m4 +27 -0
  393. data/ext/libmemcached-0.50/m4/pandora_enable_dtrace.m4 +60 -0
  394. data/ext/libmemcached-0.50/m4/pandora_ensure_gcc_version.m4 +62 -0
  395. data/ext/libmemcached-0.50/m4/pandora_extensions.m4 +16 -0
  396. data/ext/libmemcached-0.50/m4/pandora_fdatasync.m4 +25 -0
  397. data/ext/libmemcached-0.50/m4/pandora_flex.m4 +33 -0
  398. data/ext/libmemcached-0.50/m4/pandora_have_better_malloc.m4 +66 -0
  399. data/ext/libmemcached-0.50/m4/pandora_have_boost.m4 +93 -0
  400. data/ext/libmemcached-0.50/m4/pandora_have_gcc_atomics.m4 +37 -0
  401. data/ext/libmemcached-0.50/m4/pandora_have_innodb.m4 +41 -0
  402. data/ext/libmemcached-0.50/m4/pandora_have_libaio.m4 +56 -0
  403. data/ext/libmemcached-0.50/m4/pandora_have_libavahi.m4 +41 -0
  404. data/ext/libmemcached-0.50/m4/pandora_have_libbdb.m4 +40 -0
  405. data/ext/libmemcached-0.50/m4/pandora_have_libboost_date_time.m4 +46 -0
  406. data/ext/libmemcached-0.50/m4/pandora_have_libboost_filesystem.m4 +47 -0
  407. data/ext/libmemcached-0.50/m4/pandora_have_libboost_iostreams.m4 +49 -0
  408. data/ext/libmemcached-0.50/m4/pandora_have_libboost_options.m4 +47 -0
  409. data/ext/libmemcached-0.50/m4/pandora_have_libboost_regex.m4 +54 -0
  410. data/ext/libmemcached-0.50/m4/pandora_have_libboost_test.m4 +45 -0
  411. data/ext/libmemcached-0.50/m4/pandora_have_libboost_thread.m4 +54 -0
  412. data/ext/libmemcached-0.50/m4/pandora_have_libcassandra.m4 +44 -0
  413. data/ext/libmemcached-0.50/m4/pandora_have_libcurl.m4 +62 -0
  414. data/ext/libmemcached-0.50/m4/pandora_have_libdl.m4 +51 -0
  415. data/ext/libmemcached-0.50/m4/pandora_have_libdrizzle.m4 +61 -0
  416. data/ext/libmemcached-0.50/m4/pandora_have_libevent.m4 +66 -0
  417. data/ext/libmemcached-0.50/m4/pandora_have_libgearman.m4 +41 -0
  418. data/ext/libmemcached-0.50/m4/pandora_have_libgtest.m4 +47 -0
  419. data/ext/libmemcached-0.50/m4/pandora_have_libhaildb.m4 +43 -0
  420. data/ext/libmemcached-0.50/m4/pandora_have_libhashkit.m4 +42 -0
  421. data/ext/libmemcached-0.50/m4/pandora_have_libinnodb.m4 +64 -0
  422. data/ext/libmemcached-0.50/m4/pandora_have_libldap.m4 +73 -0
  423. data/ext/libmemcached-0.50/m4/pandora_have_libmemcached.m4 +106 -0
  424. data/ext/libmemcached-0.50/m4/pandora_have_libmysqlclient.m4 +146 -0
  425. data/ext/libmemcached-0.50/m4/pandora_have_libndbclient.m4 +80 -0
  426. data/ext/libmemcached-0.50/m4/pandora_have_libpcre.m4 +73 -0
  427. data/ext/libmemcached-0.50/m4/pandora_have_libpq.m4 +46 -0
  428. data/ext/libmemcached-0.50/m4/pandora_have_libpqxx.m4 +44 -0
  429. data/ext/libmemcached-0.50/m4/pandora_have_libsqlite3.m4 +42 -0
  430. data/ext/libmemcached-0.50/m4/pandora_have_libtokyocabinet.m4 +54 -0
  431. data/ext/libmemcached-0.50/m4/pandora_have_libuuid.m4 +55 -0
  432. data/ext/libmemcached-0.50/m4/pandora_have_libvbucket.m4 +40 -0
  433. data/ext/libmemcached-0.50/m4/pandora_have_libxml2.m4 +52 -0
  434. data/ext/libmemcached-0.50/m4/pandora_have_libz.m4 +51 -0
  435. data/ext/libmemcached-0.50/m4/pandora_have_protobuf.m4 +82 -0
  436. data/ext/libmemcached-0.50/m4/pandora_have_sasl.m4 +133 -0
  437. data/ext/libmemcached-0.50/m4/pandora_have_thrift.m4 +45 -0
  438. data/ext/libmemcached-0.50/m4/pandora_header_assert.m4 +23 -0
  439. data/ext/libmemcached-0.50/m4/pandora_header_stdcxx_98.m4 +83 -0
  440. data/ext/libmemcached-0.50/m4/pandora_intltool.m4 +225 -0
  441. data/ext/libmemcached-0.50/m4/pandora_libtool.m4 +25 -0
  442. data/ext/libmemcached-0.50/m4/pandora_optimize.m4 +75 -0
  443. data/ext/libmemcached-0.50/m4/pandora_platform.m4 +117 -0
  444. data/ext/libmemcached-0.50/m4/pandora_plugins.m4 +62 -0
  445. data/ext/libmemcached-0.50/m4/pandora_print_callstack.m4 +61 -0
  446. data/ext/libmemcached-0.50/m4/pandora_pthread.m4 +258 -0
  447. data/ext/libmemcached-0.50/m4/pandora_python3_devel.m4 +236 -0
  448. data/ext/libmemcached-0.50/m4/pandora_run_cpplint.m4 +8 -0
  449. data/ext/libmemcached-0.50/m4/pandora_sasl.m4 +133 -0
  450. data/ext/libmemcached-0.50/m4/pandora_shared_ptr.m4 +59 -0
  451. data/ext/libmemcached-0.50/m4/pandora_stack_direction.m4 +39 -0
  452. data/ext/libmemcached-0.50/m4/pandora_stl_hash.m4 +94 -0
  453. data/ext/libmemcached-0.50/m4/pandora_swig.m4 +39 -0
  454. data/ext/libmemcached-0.50/m4/pandora_use_pipe.m4 +36 -0
  455. data/ext/libmemcached-0.50/m4/pandora_vc_build.m4 +168 -0
  456. data/ext/libmemcached-0.50/m4/pandora_version.m4 +11 -0
  457. data/ext/libmemcached-0.50/m4/pandora_visibility.m4 +75 -0
  458. data/ext/libmemcached-0.50/m4/pandora_warnings.m4 +447 -0
  459. data/ext/libmemcached-0.50/m4/pandora_with_gettext.m4 +44 -0
  460. data/ext/libmemcached-0.50/m4/pandora_with_lua.m4 +55 -0
  461. data/ext/libmemcached-0.50/m4/pandora_with_memcached.m4 +41 -0
  462. data/ext/libmemcached-0.50/m4/pandora_with_perl.m4 +81 -0
  463. data/ext/libmemcached-0.50/m4/pandora_with_php.m4 +56 -0
  464. data/ext/libmemcached-0.50/m4/pandora_with_python.m4 +37 -0
  465. data/ext/libmemcached-0.50/m4/pandora_with_python3.m4 +44 -0
  466. data/ext/libmemcached-0.50/m4/pandora_with_r.m4 +33 -0
  467. data/ext/libmemcached-0.50/m4/pandora_with_ruby.m4 +79 -0
  468. data/ext/libmemcached-0.50/m4/pandora_with_valgrind.m4 +17 -0
  469. data/ext/libmemcached-0.50/m4/pkg.m4 +157 -0
  470. data/ext/libmemcached-0.50/m4/po.m4 +449 -0
  471. data/ext/libmemcached-0.50/m4/progtest.m4 +92 -0
  472. data/ext/libmemcached-0.50/m4/protocol_binary.m4 +36 -0
  473. data/ext/libmemcached-0.50/m4/setsockopt.m4 +73 -0
  474. data/ext/libmemcached-0.50/m4/socket_send_flags.m4 +66 -0
  475. data/ext/libmemcached-0.50/poll/include.am +8 -0
  476. data/ext/libmemcached-0.50/poll/poll.c +77 -0
  477. data/ext/libmemcached-0.50/poll/poll.h +45 -0
  478. data/ext/libmemcached-0.50/support/include.am +11 -0
  479. data/ext/libmemcached-0.50/support/libmemcached-fc.spec.in +105 -0
  480. data/ext/libmemcached-0.50/support/libmemcached.pc.in +10 -0
  481. data/ext/libmemcached-0.50/support/libmemcached.spec.in +281 -0
  482. data/ext/libmemcached-0.50/support/set_benchmark.sh +5 -0
  483. data/ext/libmemcached-0.50/tests/atomsmasher.cc +295 -0
  484. data/ext/libmemcached-0.50/tests/basic.cc +134 -0
  485. data/ext/libmemcached-0.50/tests/basic.h +66 -0
  486. data/ext/libmemcached-0.50/tests/cpp_example.cc +195 -0
  487. data/ext/libmemcached-0.50/tests/deprecated.cc +72 -0
  488. data/ext/libmemcached-0.50/tests/deprecated.h +49 -0
  489. data/ext/libmemcached-0.50/tests/error_conditions.cc +63 -0
  490. data/ext/libmemcached-0.50/tests/error_conditions.h +48 -0
  491. data/ext/libmemcached-0.50/tests/hash_plus.cc +225 -0
  492. data/ext/libmemcached-0.50/tests/hash_results.h +127 -0
  493. data/ext/libmemcached-0.50/tests/hashkit_functions.cc +619 -0
  494. data/ext/libmemcached-0.50/tests/include.am +342 -0
  495. data/ext/libmemcached-0.50/tests/ketama_test_cases.h +121 -0
  496. data/ext/libmemcached-0.50/tests/ketama_test_cases_spy.h +118 -0
  497. data/ext/libmemcached-0.50/tests/libmemcached_world.h +205 -0
  498. data/ext/libmemcached-0.50/tests/mem_functions.cc +6648 -0
  499. data/ext/libmemcached-0.50/tests/mem_udp.cc +510 -0
  500. data/ext/libmemcached-0.50/tests/output_plus.res +5 -0
  501. data/ext/libmemcached-0.50/tests/parser.cc +599 -0
  502. data/ext/libmemcached-0.50/tests/parser.h +109 -0
  503. data/ext/libmemcached-0.50/tests/plus.cpp +240 -0
  504. data/ext/libmemcached-0.50/tests/pool.cc +78 -0
  505. data/ext/libmemcached-0.50/tests/pool.h +49 -0
  506. data/ext/libmemcached-0.50/tests/print.cc +58 -0
  507. data/ext/libmemcached-0.50/tests/print.h +51 -0
  508. data/ext/libmemcached-0.50/tests/replication.cc +333 -0
  509. data/ext/libmemcached-0.50/tests/replication.h +64 -0
  510. data/ext/libmemcached-0.50/tests/start.cc +29 -0
  511. data/ext/libmemcached-0.50/tests/string.cc +174 -0
  512. data/ext/libmemcached-0.50/tests/string.h +67 -0
  513. data/ext/libmemcached-0.50/tests/virtual_buckets.cc +143 -0
  514. data/ext/libmemcached-0.50/tests/virtual_buckets.h +51 -0
  515. data/ext/libmemcached-0.50/win32/include.am +11 -0
  516. data/ext/libmemcached-0.50/win32/wrappers.h +55 -0
  517. data/ext/rlibmemcached.i +263 -0
  518. data/ext/rlibmemcached_wrap.c +16732 -0
  519. data/lib/memcached.rb +32 -0
  520. data/lib/memcached/auth.rb +16 -0
  521. data/lib/memcached/behaviors.rb +77 -0
  522. data/lib/memcached/exceptions.rb +84 -0
  523. data/lib/memcached/experimental.rb +48 -0
  524. data/lib/memcached/memcached.rb +660 -0
  525. data/lib/memcached/rails.rb +133 -0
  526. data/test/profile/benchmark.rb +245 -0
  527. data/test/profile/c_profiler.rb +14 -0
  528. data/test/profile/exercise.rb +185 -0
  529. data/test/profile/rb_profiler.rb +21 -0
  530. data/test/profile/valgrind.rb +10 -0
  531. data/test/setup.rb +30 -0
  532. data/test/teardown.rb +0 -0
  533. data/test/test_helper.rb +19 -0
  534. data/test/unit/binding_test.rb +8 -0
  535. data/test/unit/memcached_experimental_test.rb +274 -0
  536. data/test/unit/memcached_test.rb +1293 -0
  537. data/test/unit/rails_test.rb +122 -0
  538. metadata +650 -0
  539. metadata.gz.sig +0 -0
@@ -0,0 +1,62 @@
1
+ dnl Copyright (C) 2009 Sun Microsystems, Inc.
2
+ dnl This file is free software; Sun Microsystems, Inc.
3
+ dnl gives unlimited permission to copy and/or distribute it,
4
+ dnl with or without modifications, as long as this notice is preserved.
5
+ dnl--------------------------------------------------------------------
6
+ dnl PANDORA_PLUGINS
7
+ dnl Declare our plugin modules
8
+ dnl--------------------------------------------------------------------
9
+
10
+ AC_DEFUN([PANDORA_PLUGINS],[
11
+
12
+ dnl We do this to prime the files from a fresh checkout. Normally we want
13
+ dnl these commands to be executed by make. Perhaps we should split them into
14
+ dnl a few shell script snippets in config and make Make call them... we're
15
+ dnl going to get there...
16
+ dnl ANYWAY - syscmd gets called during aclocal - so before automake. It will
17
+ dnl get called probably during autoconf too, so it's important to protect
18
+ dnl with test -f ... if the files exist, we don't have the chicken/egg
19
+ dnl problem and therefore don't need to do anything here
20
+ m4_syscmd([PYTHON=${PYTHON:-python} && $PYTHON config/pandora-plugin > /dev/null])
21
+ m4_syscmd([test -f config/plugin.stamp || touch config/plugin.stamp aclocal.m4])
22
+
23
+ m4_sinclude(config/pandora-plugin.ac)
24
+
25
+ dnl Add code here to read set plugin lists and set drizzled_default_plugin_list
26
+ pandora_builtin_list=`echo $pandora_builtin_list | sed 's/, *$//'`
27
+ pandora_builtin_symbols_list=`echo $pandora_builtin_symbols_list | sed 's/, *$//'`
28
+ pandora_builtin_load_list=`echo $pandora_builtin_load_list | sed 's/, *$//'`
29
+ pandora_builtin_load_symbols_list=`echo $pandora_builtin_load_symbols_list | sed 's/, *$//'`
30
+ AS_IF([test "x$pandora_builtin_symbols_list" = "x"], pandora_builtin_symbols_list="NULL")
31
+ AS_IF([test "x$pandora_builtin_load_symbols_list" = "x"], pandora_builtin_load_symbols_list="NULL")
32
+ AC_SUBST([PANDORA_BUILTIN_LIST],[$pandora_builtin_list])
33
+ AC_SUBST([PANDORA_BUILTIN_SYMBOLS_LIST],[$pandora_builtin_symbols_list])
34
+ AC_SUBST([PANDORA_BUILTIN_LOAD_LIST],[$pandora_builtin_load_list])
35
+ AC_SUBST([PANDORA_BUILTIN_LOAD_SYMBOLS_LIST],[$pandora_builtin_load_symbols_list])
36
+ AC_SUBST([PANDORA_PLUGIN_LIST],[$pandora_default_plugin_list])
37
+ m4_ifval(m4_normalize([$1]),[
38
+ AC_CONFIG_FILES($*)
39
+ ],[
40
+ AC_DEFINE_UNQUOTED([PANDORA_BUILTIN_LIST],["$pandora_builtin_list"],
41
+ [List of plugins to be built in])
42
+ AC_DEFINE_UNQUOTED([PANDORA_BUILTIN_SYMBOLS_LIST],["$pandora_builtin_symbols_list"],
43
+ [List of builtin plugin symbols to be built in])
44
+ AC_DEFINE_UNQUOTED([PANDORA_PLUGIN_LIST],["$pandora_default_plugin_list"],
45
+ [List of plugins that should be loaded on startup if no
46
+ value is given for --plugin-load])
47
+ ])
48
+
49
+
50
+ AC_SUBST(pandora_plugin_test_list)
51
+ AC_SUBST(pandora_plugin_libs)
52
+
53
+ pandora_plugin_defs=`echo $pandora_plugin_defs | sed 's/, *$//'`
54
+ AC_SUBST(pandora_plugin_defs)
55
+
56
+ AC_SUBST(PANDORA_PLUGIN_DEP_LIBS)
57
+ AC_SUBST(pkgplugindir,"\$(pkglibdir)")
58
+ ])
59
+
60
+ AC_DEFUN([PANDORA_ADD_PLUGIN_DEP_LIB],[
61
+ PANDORA_PLUGIN_DEP_LIBS="${PANDORA_PLUGIN_DEP_LIBS} $*"
62
+ ])
@@ -0,0 +1,61 @@
1
+ dnl Copyright (C) 2009 Sun Microsystems, Inc.
2
+ dnl This file is free software; Sun Microsystems, Inc.
3
+ dnl gives unlimited permission to copy and/or distribute it,
4
+ dnl with or without modifications, as long as this notice is preserved.
5
+
6
+ dnl Try to define a macro to dump the current callstack.
7
+ AC_DEFUN([PANDORA_PRINT_CALLSTACK],[
8
+ AC_CHECK_HEADERS([ucontext.h])
9
+ AS_IF([test "x$ac_cv_header_ucontext_h" = "xyes"],
10
+ [ AC_CHECK_FUNCS([printstack]) ])
11
+
12
+
13
+ AS_IF([ test "x$ac_cv_func_printstack" != "xyes"],
14
+ [ AC_CHECK_HEADERS([dlfcn.h])
15
+ AC_CHECK_HEADERS([execinfo.h])
16
+ AC_CHECK_FUNCS([backtrace])
17
+ AC_CHECK_FUNCS([backtrace_symbols_fd]) ])
18
+
19
+ AH_BOTTOM([
20
+ #ifdef __cplusplus
21
+ #include <cstdio>
22
+ #define PANDORA_PRINTSTACK_STD_PREFIX std::
23
+ #else
24
+ #include <stdio.h>
25
+ #define PANDORA_PRINTSTACK_STD_PREFIX
26
+ #endif
27
+
28
+ #if defined(HAVE_UCONTEXT_H) && defined(HAVE_PRINTSTACK)
29
+ #include <ucontext.h>
30
+ #define pandora_print_callstack(a) \
31
+ printstack(PANDORA_PRINTSTACK_STD_PREFIX fileno(a))
32
+ #elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS_FD)
33
+
34
+ #include <execinfo.h>
35
+
36
+ #define pandora_print_callstack(a) \
37
+ { \
38
+ void *stack[100]; \
39
+ int depth = backtrace(stack, 100); \
40
+ backtrace_symbols_fd(stack, depth, PANDORA_PRINTSTACK_STD_PREFIX fileno(a)); \
41
+ }
42
+ #elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS) && !defined(HAVE_BACKTRACE_SYMBOLS_FD)
43
+
44
+ #include <execinfo.h>
45
+
46
+ #define pandora_print_callstack(a) \
47
+ { \
48
+ void *stack[100]; \
49
+ int depth= backtrace(stack, 100); \
50
+ char **symbol= backtrace_symbols(stack, depth); \
51
+ for (int x= 0; x < size; ++x) \
52
+ PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, "%s\n", symbol[x]); \
53
+ }
54
+ #else
55
+ #define pandora_print_callstack(a) \
56
+ PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, \
57
+ "Stackdump not supported for this platform\n");
58
+ #endif
59
+ ])
60
+
61
+ ])
@@ -0,0 +1,258 @@
1
+ dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
+ dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
+ dnl
4
+ dnl pandora-build: A pedantic build system
5
+ dnl Copyright (C) 2009 Sun Microsystems, Inc.
6
+ dnl This file is free software; Sun Microsystems
7
+ dnl gives unlimited permission to copy and/or distribute it,
8
+ dnl with or without modifications, as long as this notice is preserved.
9
+ dnl
10
+ dnl From Monty Taylor
11
+
12
+
13
+ dnl --------------------------------------------------------------------
14
+ dnl Check for libpthread
15
+ dnl --------------------------------------------------------------------
16
+
17
+ AC_DEFUN([PANDORA_PTHREAD_YIELD],[
18
+ AC_REQUIRE([ACX_PTHREAD])
19
+
20
+ save_CFLAGS="${CFLAGS}"
21
+ save_CXXFLAGS="${CXXFLAGS}"
22
+ CFLAGS="${PTHREAD_CFLAGS} ${CFLAGS}"
23
+ CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}"
24
+ dnl Some OSes like Mac OS X have that as a replacement for pthread_yield()
25
+ AC_CHECK_FUNCS(pthread_yield_np)
26
+ AC_CACHE_CHECK([if pthread_yield takes zero arguments],
27
+ [pandora_cv_pthread_yield_zero_arg],
28
+ [AC_LINK_IFELSE([
29
+ AC_LANG_PROGRAM([[
30
+ #include <pthread.h>
31
+ ]],[[
32
+ pthread_yield();
33
+ ]])],
34
+ [pandora_cv_pthread_yield_zero_arg=yes],
35
+ [pandora_cv_pthread_yield_zero_arg=no])])
36
+ AS_IF([test "$pandora_cv_pthread_yield_zero_arg" = "yes"],[
37
+ AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1],
38
+ [pthread_yield that doesn't take any arguments])
39
+ ])
40
+
41
+ AC_CACHE_CHECK([if pthread_yield takes one argument],
42
+ [pandora_cv_pthread_yield_one_arg],
43
+ [AC_LINK_IFELSE([
44
+ AC_LANG_PROGRAM([[
45
+ #include <pthread.h>
46
+ ]],[[
47
+ pthread_yield(0);
48
+ ]])],
49
+ [pandora_cv_pthread_yield_one_arg=yes],
50
+ [pandora_cv_pthread_yield_one_arg=no])])
51
+ AS_IF([test "$pandora_cv_pthread_yield_one_arg" = "yes"],[
52
+ AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1],
53
+ [pthread_yield function with one argument])
54
+ ])
55
+
56
+ AC_CHECK_FUNCS(pthread_attr_getstacksize pthread_attr_setprio \
57
+ pthread_attr_setschedparam \
58
+ pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \
59
+ pthread_key_delete pthread_rwlock_rdlock pthread_setprio \
60
+ pthread_setprio_np pthread_setschedparam pthread_sigmask \
61
+ pthread_attr_create rwlock_init
62
+ )
63
+
64
+
65
+
66
+ # Check definition of pthread_getspecific
67
+ AC_CACHE_CHECK([args to pthread_getspecific], [pandora_cv_getspecific_args],
68
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
69
+ #if !defined(_REENTRANT)
70
+ #define _REENTRANT
71
+ #endif
72
+ #ifndef _POSIX_PTHREAD_SEMANTICS
73
+ #define _POSIX_PTHREAD_SEMANTICS
74
+ #endif
75
+ #include <pthread.h>
76
+ ]], [[
77
+ void *pthread_getspecific(pthread_key_t key);
78
+ pthread_getspecific((pthread_key_t) NULL);
79
+ ]])],
80
+ [pandora_cv_getspecific_args=POSIX],
81
+ [pandora_cv_getspecific_args=other])])
82
+ if test "$pandora_cv_getspecific_args" = "other"
83
+ then
84
+ AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1],
85
+ [For some non posix threads])
86
+ fi
87
+
88
+ # Check definition of pthread_mutex_init
89
+ AC_CACHE_CHECK([args to pthread_mutex_init], [pandora_cv_mutex_init_args],
90
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
91
+ #ifndef _REENTRANT
92
+ #define _REENTRANT
93
+ #endif
94
+ #ifndef _POSIX_PTHREAD_SEMANTICS
95
+ #define _POSIX_PTHREAD_SEMANTICS
96
+ #endif
97
+ #include <pthread.h> ]], [[
98
+ pthread_mutexattr_t attr;
99
+ pthread_mutex_t mp;
100
+ pthread_mutex_init(&mp,&attr); ]])],
101
+ [pandora_cv_mutex_init_args=POSIX],
102
+ [pandora_cv_mutex_init_args=other])])
103
+ if test "$pandora_cv_mutex_init_args" = "other"
104
+ then
105
+ AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1],
106
+ [For some non posix threads])
107
+ fi
108
+ #---END:
109
+
110
+ #---START: Used in for client configure
111
+ # Check definition of readdir_r
112
+ AC_CACHE_CHECK([args to readdir_r], [pandora_cv_readdir_r],
113
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
114
+ #ifndef _REENTRANT
115
+ #define _REENTRANT
116
+ #endif
117
+ #ifndef _POSIX_PTHREAD_SEMANTICS
118
+ #define _POSIX_PTHREAD_SEMANTICS
119
+ #endif
120
+ #include <pthread.h>
121
+ #include <dirent.h>]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
122
+ readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])],
123
+ [pandora_cv_readdir_r=POSIX],
124
+ [pandora_cv_readdir_r=other])])
125
+ if test "$pandora_cv_readdir_r" = "POSIX"
126
+ then
127
+ AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r])
128
+ fi
129
+
130
+ # Check definition of posix sigwait()
131
+ AC_CACHE_CHECK([style of sigwait], [pandora_cv_sigwait],
132
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
133
+ #ifndef _REENTRANT
134
+ #define _REENTRANT
135
+ #endif
136
+ #ifndef _POSIX_PTHREAD_SEMANTICS
137
+ #define _POSIX_PTHREAD_SEMANTICS
138
+ #endif
139
+ #include <pthread.h>
140
+ #include <signal.h>
141
+ ]], [[
142
+ #ifndef _AIX
143
+ sigset_t set;
144
+ int sig;
145
+ sigwait(&set,&sig);
146
+ #endif
147
+ ]])],
148
+ [pandora_cv_sigwait=POSIX],
149
+ [pandora_cv_sigwait=other])])
150
+ if test "$pandora_cv_sigwait" = "POSIX"
151
+ then
152
+ AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait])
153
+ fi
154
+
155
+ if test "$pandora_cv_sigwait" != "POSIX"
156
+ then
157
+ unset pandora_cv_sigwait
158
+ # Check definition of posix sigwait()
159
+ AC_CACHE_CHECK([style of sigwait], [pandora_cv_sigwait],
160
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
161
+ #ifndef _REENTRANT
162
+ #define _REENTRANT
163
+ #endif
164
+ #ifndef _POSIX_PTHREAD_SEMANTICS
165
+ #define _POSIX_PTHREAD_SEMANTICS
166
+ #endif
167
+ #include <pthread.h>
168
+ #include <signal.h>
169
+ ]], [[
170
+ sigset_t set;
171
+ int sig;
172
+ sigwait(&set);
173
+ ]])],
174
+ [pandora_cv_sigwait=NONPOSIX],
175
+ [pandora_cv_sigwait=other])])
176
+ if test "$pandora_cv_sigwait" = "NONPOSIX"
177
+ then
178
+ AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument])
179
+ fi
180
+ fi
181
+ #---END:
182
+
183
+ # Check if pthread_attr_setscope() exists
184
+ AC_CACHE_CHECK([for pthread_attr_setscope], [pandora_cv_pthread_attr_setscope],
185
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
186
+ #ifndef _REENTRANT
187
+ #define _REENTRANT
188
+ #endif
189
+ #ifndef _POSIX_PTHREAD_SEMANTICS
190
+ #define _POSIX_PTHREAD_SEMANTICS
191
+ #endif
192
+ #include <pthread.h>
193
+ ]], [[
194
+ pthread_attr_t thr_attr;
195
+ pthread_attr_setscope(&thr_attr,0);
196
+ ]])],
197
+ [pandora_cv_pthread_attr_setscope=yes],
198
+ [pandora_cv_pthread_attr_setscope=no])])
199
+ if test "$pandora_cv_pthread_attr_setscope" = "yes"
200
+ then
201
+ AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope])
202
+ fi
203
+
204
+
205
+ AC_CACHE_CHECK([if pthread_yield takes zero arguments], ac_cv_pthread_yield_zero_arg,
206
+ [AC_TRY_LINK([#define _GNU_SOURCE
207
+ #include <pthread.h>
208
+ #ifdef __cplusplus
209
+ extern "C"
210
+ #endif
211
+ ],
212
+ [
213
+ pthread_yield();
214
+ ], ac_cv_pthread_yield_zero_arg=yes, ac_cv_pthread_yield_zero_arg=yeso)])
215
+ if test "$ac_cv_pthread_yield_zero_arg" = "yes"
216
+ then
217
+ AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1],
218
+ [pthread_yield that doesn't take any arguments])
219
+ fi
220
+ AC_CACHE_CHECK([if pthread_yield takes 1 argument], ac_cv_pthread_yield_one_arg,
221
+ [AC_TRY_LINK([#define _GNU_SOURCE
222
+ #include <pthread.h>
223
+ #ifdef __cplusplus
224
+ extern "C"
225
+ #endif
226
+ ],
227
+ [
228
+ pthread_yield(0);
229
+ ], ac_cv_pthread_yield_one_arg=yes, ac_cv_pthread_yield_one_arg=no)])
230
+ if test "$ac_cv_pthread_yield_one_arg" = "yes"
231
+ then
232
+ AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1],
233
+ [pthread_yield function with one argument])
234
+ fi
235
+
236
+ CFLAGS="${save_CFLAGS}"
237
+ CXXFLAGS="${save_CXXFLAGS}"
238
+ ])
239
+
240
+
241
+ AC_DEFUN([_PANDORA_SEARCH_PTHREAD],[
242
+ AC_REQUIRE([ACX_PTHREAD])
243
+ LIBS="${PTHREAD_LIBS} ${LIBS}"
244
+ AM_CFLAGS="${PTHREAD_CFLAGS} ${AM_CFLAGS}"
245
+ AM_CXXFLAGS="${PTHREAD_CFLAGS} ${AM_CXXFLAGS}"
246
+ PANDORA_PTHREAD_YIELD
247
+ ])
248
+
249
+
250
+ AC_DEFUN([PANDORA_HAVE_PTHREAD],[
251
+ AC_REQUIRE([_PANDORA_SEARCH_PTHREAD])
252
+ ])
253
+
254
+ AC_DEFUN([PANDORA_REQUIRE_PTHREAD],[
255
+ AC_REQUIRE([PANDORA_HAVE_PTHREAD])
256
+ AS_IF([test "x$acx_pthread_ok" != "xyes"],[
257
+ AC_MSG_ERROR(could not find libpthread)])
258
+ ])
@@ -0,0 +1,236 @@
1
+ dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
+ dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
+ dnl
4
+ dnl pandora-build: A pedantic build system
5
+ dnl
6
+ dnl Copyright (C) 2009 Sun Microsystems, Inc.
7
+ dnl Copyright (C) 2008 Sebastian Huber <sebastian-huber@web.de>
8
+ dnl Copyright (C) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
9
+ dnl Copyright (C) 2008 Rafael Laboissiere <rafael@laboissiere.net>
10
+ dnl Copyright (C) 2008 Andrew Collier <colliera@ukzn.ac.za>
11
+ dnl Copyright (C) 2008 Matteo Settenvini <matteo@member.fsf.org>
12
+ dnl Copyright (C) 2008 Horst Knorr <hk_classes@knoda.org>
13
+ dnl
14
+ dnl This program is free software: you can redistribute it and/or modify it
15
+ dnl under the terms of the GNU General Public License as published by the
16
+ dnl Free Software Foundation, either version 3 of the License, or (at your
17
+ dnl option) any later version.
18
+ dnl
19
+ dnl This program is distributed in the hope that it will be useful, but
20
+ dnl WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
22
+ dnl Public License for more details.
23
+ dnl
24
+ dnl You should have received a copy of the GNU General Public License along
25
+ dnl with this program. If not, see <http://www.gnu.org/licenses/>.
26
+ dnl
27
+ dnl As a special exception, the respective Autoconf Macro's copyright owner
28
+ dnl gives unlimited permission to copy, distribute and modify the configure
29
+ dnl scripts that are the output of Autoconf when processing the Macro. You
30
+ dnl need not follow the terms of the GNU General Public License when using
31
+ dnl or distributing such scripts, even though portions of the text of the
32
+ dnl Macro appear in them. The GNU General Public License (GPL) does govern
33
+ dnl all other use of the material that constitutes the Autoconf Macro.
34
+ dnl
35
+ dnl This special exception to the GPL applies to versions of the Autoconf
36
+ dnl Macro released by the Autoconf Macro Archive. When you make and
37
+ dnl distribute a modified version of the Autoconf Macro, you may extend this
38
+ dnl special exception to the GPL to apply to your modified version as well.
39
+
40
+ dnl SYNOPSIS
41
+ dnl
42
+ dnl PANDORA_PYTHON3_DEVEL([version])
43
+ dnl
44
+ dnl DESCRIPTION
45
+ dnl
46
+ dnl Note: Defines as a precious variable "PYTHON3_VERSION". Don't override it
47
+ dnl in your configure.ac.
48
+ dnl
49
+ dnl This macro checks for Python and tries to get the include path to
50
+ dnl 'Python.h'. It provides the $(PYTHON3_CPPFLAGS) and $(PYTHON3_LDFLAGS)
51
+ dnl output variables. It also exports $(PYTHON3_EXTRA_LIBS) and
52
+ dnl $(PYTHON3_EXTRA_LDFLAGS) for embedding Python in your code.
53
+ dnl
54
+ dnl You can search for some particular version of Python by passing a
55
+ dnl parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please
56
+ dnl note that you *have* to pass also an operator along with the version to
57
+ dnl match, and pay special attention to the single quotes surrounding the
58
+ dnl version number. Don't use "PYTHON3_VERSION" for this: that environment
59
+ dnl variable is declared as precious and thus reserved for the end-user.
60
+ dnl
61
+ dnl LAST MODIFICATION
62
+ dnl
63
+ dnl 2009-08-23
64
+
65
+ AC_DEFUN([PANDORA_PYTHON3_DEVEL],[
66
+ #
67
+ # Allow the use of a (user set) custom python version
68
+ #
69
+ AC_ARG_VAR([PYTHON3_VERSION],[The installed Python
70
+ version to use, for example '3.0'. This string
71
+ will be appended to the Python interpreter
72
+ canonical name.])
73
+
74
+
75
+ AS_IF([test -z "$PYTHON3"],[
76
+ AC_PATH_PROG([PYTHON3],[python[$PYTHON3_VERSION]])
77
+ ])
78
+ AS_IF([test -z "$PYTHON3"],[
79
+ AC_MSG_ERROR([Cannot find python$PYTHON3_VERSION in your system path])
80
+ PYTHON3_VERSION=""
81
+ ])
82
+
83
+ #
84
+ # if the macro parameter ``version'' is set, honour it
85
+ #
86
+ if test -n "$1"; then
87
+ AC_MSG_CHECKING([for a version of Python $1])
88
+ ac_supports_python3_ver=`$PYTHON3 -c "import sys, string; \
89
+ ver = string.split(sys.version)[[0]]; \
90
+ print(ver $1)"`
91
+ if test "$ac_supports_python3_ver" = "True"; then
92
+ AC_MSG_RESULT([yes])
93
+ else
94
+ AC_MSG_RESULT([no])
95
+ AC_MSG_ERROR([this package requires Python $1.
96
+ If you have it installed, but it isn't the default Python
97
+ interpreter in your system path, please pass the PYTHON3_VERSION
98
+ variable to configure. See ``configure --help'' for reference.
99
+ ])
100
+ PYTHON_VERSION=""
101
+ fi
102
+ fi
103
+
104
+ #
105
+ # Check if you have distutils, else fail
106
+ #
107
+ AC_MSG_CHECKING([for Python3 distutils package])
108
+ ac_python3_distutils_result=`$PYTHON3 -c "import distutils" 2>&1`
109
+ if test -z "$ac_python3_distutils_result"; then
110
+ AC_MSG_RESULT([yes])
111
+ else
112
+ AC_MSG_RESULT([no])
113
+ AC_MSG_ERROR([cannot import Python3 module "distutils".
114
+ Please check your Python3 installation. The error was:
115
+ $ac_python3_distutils_result])
116
+ PYTHON3_VERSION=""
117
+ fi
118
+
119
+ #
120
+ # Check for Python include path
121
+ #
122
+ AC_MSG_CHECKING([for Python3 include path])
123
+ if test -z "$PYTHON3_CPPFLAGS"; then
124
+ python3_path=`$PYTHON3 -c "import distutils.sysconfig; \
125
+ print(distutils.sysconfig.get_python_inc());"`
126
+ if test -n "${python3_path}"; then
127
+ python3_path="-I$python3_path"
128
+ fi
129
+ PYTHON3_CPPFLAGS=$python3_path
130
+ fi
131
+ AC_MSG_RESULT([$PYTHON3_CPPFLAGS])
132
+ AC_SUBST([PYTHON3_CPPFLAGS])
133
+
134
+ #
135
+ # Check for Python library path
136
+ #
137
+ AC_MSG_CHECKING([for Python3 library path])
138
+ if test -z "$PYTHON3_LDFLAGS"; then
139
+ # (makes two attempts to ensure we've got a version number
140
+ # from the interpreter)
141
+ py3_version=`$PYTHON3 -c "from distutils.sysconfig import *; \
142
+ print(' '.join(get_config_vars('VERSION')))"`
143
+ if test "$py3_version" == "[None]"; then
144
+ if test -n "$PYTHON3_VERSION"; then
145
+ py3_version=$PYTHON3_VERSION
146
+ else
147
+ py3_version=`$PYTHON3 -c "import sys; \
148
+ print(sys.version[[:3]])"`
149
+ fi
150
+ fi
151
+
152
+ PYTHON3_LDFLAGS=`$PYTHON3 -c "from distutils.sysconfig import *; \
153
+ print('-L' + get_python_lib(0,1), \
154
+ '-lpython');"`$py3_version
155
+ fi
156
+ AC_MSG_RESULT([$PYTHON3_LDFLAGS])
157
+ AC_SUBST([PYTHON3_LDFLAGS])
158
+
159
+ #
160
+ # Check for site packages
161
+ #
162
+ AC_MSG_CHECKING([for Python3 site-packages path])
163
+ if test -z "$PYTHON3_SITE_PKG"; then
164
+ PYTHON3_SITE_PKG=`$PYTHON3 -c "import distutils.sysconfig; \
165
+ print(distutils.sysconfig.get_python_lib(0,0));"`
166
+ fi
167
+ AC_MSG_RESULT([$PYTHON3_SITE_PKG])
168
+ AC_SUBST([PYTHON3_SITE_PKG])
169
+
170
+ #
171
+ # libraries which must be linked in when embedding
172
+ #
173
+ AC_MSG_CHECKING(for Python3 embedding libraries)
174
+ if test -z "$PYTHON3_EMBED_LIBS"; then
175
+ PYTHON3_EMBED_LIBS=`$PYTHON3 -c "import distutils.sysconfig; \
176
+ conf = distutils.sysconfig.get_config_var; \
177
+ print(conf('LOCALMODLIBS'), conf('LIBS'))"`
178
+ fi
179
+ AC_MSG_RESULT([$PYTHON3_EMBED_LIBS])
180
+ AC_SUBST(PYTHON3_EMBED_LIBS)
181
+
182
+ #
183
+ # linking flags needed when embedding
184
+ #
185
+ AC_MSG_CHECKING(for Python3 embedding linking flags)
186
+ if test -z "$PYTHON3_EMBED_LDFLAGS"; then
187
+ PYTHON3_EMBED_LDFLAGS=`$PYTHON3 -c "import distutils.sysconfig; \
188
+ conf = distutils.sysconfig.get_config_var; \
189
+ print(conf('LINKFORSHARED'))"`
190
+ fi
191
+ AC_MSG_RESULT([$PYTHON3_EMBED_LDFLAGS])
192
+ AC_SUBST(PYTHON3_EMBED_LDFLAGS)
193
+
194
+ #
195
+ # final check to see if everything compiles alright
196
+ #
197
+ AC_MSG_CHECKING([for Python3 development environment consistency])
198
+ AC_LANG_PUSH([C])
199
+ # save current global flags
200
+ ac_save_LIBS="$LIBS"
201
+ ac_save_CPPFLAGS="$CPPFLAGS"
202
+ LIBS="$ac_save_LIBS $PYTHON3_LDFLAGS"
203
+ CPPFLAGS="$ac_save_CPPFLAGS $PYTHON3_CPPFLAGS"
204
+ AC_TRY_LINK([
205
+ #include <Python.h>
206
+ ],[
207
+ Py_Initialize();
208
+ ],[python3exists=yes],[python3exists=no])
209
+
210
+ AC_MSG_RESULT([$python3exists])
211
+
212
+ if test ! "$python3exists" = "yes"; then
213
+ AC_MSG_WARN([
214
+ Could not link test program to Python3.
215
+ Maybe the main Python3 library has been installed in some non-standard
216
+ library path. If so, pass it to configure, via the LDFLAGS environment
217
+ variable.
218
+ Example: ./configure LDFLAGS="-L/usr/non-standard-path/python3/lib"
219
+ ============================================================================
220
+ ERROR!
221
+ You probably have to install the development version of the Python3 package
222
+ for your distribution. The exact name of this package varies among them.
223
+ ============================================================================
224
+ ])
225
+ PYTHON3_VERSION=""
226
+ fi
227
+ AC_LANG_POP
228
+ # turn back to default flags
229
+ CPPFLAGS="$ac_save_CPPFLAGS"
230
+ LIBS="$ac_save_LIBS"
231
+
232
+ #
233
+ # all done!
234
+ #
235
+ ])
236
+