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.
- data.tar.gz.sig +2 -0
- data/BENCHMARKS +134 -0
- data/CHANGELOG +127 -0
- data/LICENSE +184 -0
- data/Manifest +535 -0
- data/README +118 -0
- data/Rakefile +83 -0
- data/TODO +4 -0
- data/couchbase-memcached.gemspec +33 -0
- data/ext/extconf-make.rb +25 -0
- data/ext/extconf.rb +91 -0
- data/ext/libmemcached-0.50/AUTHORS +11 -0
- data/ext/libmemcached-0.50/COPYING +33 -0
- data/ext/libmemcached-0.50/ChangeLog +392 -0
- data/ext/libmemcached-0.50/Makefile.am +114 -0
- data/ext/libmemcached-0.50/Makefile.in +4232 -0
- data/ext/libmemcached-0.50/NEWS +1 -0
- data/ext/libmemcached-0.50/README +43 -0
- data/ext/libmemcached-0.50/README.FIRST +31 -0
- data/ext/libmemcached-0.50/README.win32 +25 -0
- data/ext/libmemcached-0.50/THANKS +14 -0
- data/ext/libmemcached-0.50/TODO +11 -0
- data/ext/libmemcached-0.50/aclocal.m4 +1077 -0
- data/ext/libmemcached-0.50/clients/client_options.h +45 -0
- data/ext/libmemcached-0.50/clients/execute.cc +131 -0
- data/ext/libmemcached-0.50/clients/execute.h +30 -0
- data/ext/libmemcached-0.50/clients/generator.cc +96 -0
- data/ext/libmemcached-0.50/clients/generator.h +36 -0
- data/ext/libmemcached-0.50/clients/include.am +116 -0
- data/ext/libmemcached-0.50/clients/memaslap.c +908 -0
- data/ext/libmemcached-0.50/clients/memcapable.cc +2094 -0
- data/ext/libmemcached-0.50/clients/memcat.cc +242 -0
- data/ext/libmemcached-0.50/clients/memcp.cc +317 -0
- data/ext/libmemcached-0.50/clients/memdump.cc +183 -0
- data/ext/libmemcached-0.50/clients/memerror.cc +102 -0
- data/ext/libmemcached-0.50/clients/memflush.cc +154 -0
- data/ext/libmemcached-0.50/clients/memparse.cc +68 -0
- data/ext/libmemcached-0.50/clients/memrm.cc +177 -0
- data/ext/libmemcached-0.50/clients/memslap.cc +495 -0
- data/ext/libmemcached-0.50/clients/memstat.cc +349 -0
- data/ext/libmemcached-0.50/clients/ms_atomic.h +69 -0
- data/ext/libmemcached-0.50/clients/ms_conn.c +3413 -0
- data/ext/libmemcached-0.50/clients/ms_conn.h +241 -0
- data/ext/libmemcached-0.50/clients/ms_memslap.h +132 -0
- data/ext/libmemcached-0.50/clients/ms_setting.c +1068 -0
- data/ext/libmemcached-0.50/clients/ms_setting.h +181 -0
- data/ext/libmemcached-0.50/clients/ms_sigsegv.c +126 -0
- data/ext/libmemcached-0.50/clients/ms_sigsegv.h +34 -0
- data/ext/libmemcached-0.50/clients/ms_stats.c +307 -0
- data/ext/libmemcached-0.50/clients/ms_stats.h +69 -0
- data/ext/libmemcached-0.50/clients/ms_task.c +1114 -0
- data/ext/libmemcached-0.50/clients/ms_task.h +94 -0
- data/ext/libmemcached-0.50/clients/ms_thread.c +351 -0
- data/ext/libmemcached-0.50/clients/ms_thread.h +78 -0
- data/ext/libmemcached-0.50/clients/utilities.cc +231 -0
- data/ext/libmemcached-0.50/clients/utilities.h +64 -0
- data/ext/libmemcached-0.50/config.h.in +647 -0
- data/ext/libmemcached-0.50/config/autorun.sh +126 -0
- data/ext/libmemcached-0.50/config/compile +143 -0
- data/ext/libmemcached-0.50/config/config.guess +1517 -0
- data/ext/libmemcached-0.50/config/config.rpath +666 -0
- data/ext/libmemcached-0.50/config/config.sub +1760 -0
- data/ext/libmemcached-0.50/config/depcomp +630 -0
- data/ext/libmemcached-0.50/config/install-sh +520 -0
- data/ext/libmemcached-0.50/config/ltmain.sh +9642 -0
- data/ext/libmemcached-0.50/config/missing +376 -0
- data/ext/libmemcached-0.50/config/pandora-plugin +752 -0
- data/ext/libmemcached-0.50/config/uncrustify.cfg +1112 -0
- data/ext/libmemcached-0.50/configure +27103 -0
- data/ext/libmemcached-0.50/configure.ac +186 -0
- data/ext/libmemcached-0.50/docs/conf.py.in +354 -0
- data/ext/libmemcached-0.50/docs/include.am +240 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_clone.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_crc32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_create.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_64.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_64.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_free.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_functions.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_hsieh.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_is_allocated.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_jenkins.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_md5.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_murmur.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_value.3 +66 -0
- data/ext/libmemcached-0.50/docs/man/libhashkit.3 +57 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached.3 +208 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_check_configuration.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_configuration.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_examples.3 +144 -0
- data/ext/libmemcached-0.50/docs/man/libmemcachedutil.3 +68 -0
- data/ext/libmemcached-0.50/docs/man/memaslap.1 +1222 -0
- data/ext/libmemcached-0.50/docs/man/memcached.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/memcached_add.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_add_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_analyze.3 +77 -0
- data/ext/libmemcached-0.50/docs/man/memcached_append.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_append_by_key.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_behavior_get.3 +333 -0
- data/ext/libmemcached-0.50/docs/man/memcached_behavior_set.3 +333 -0
- data/ext/libmemcached-0.50/docs/man/memcached_callback_get.3 +159 -0
- data/ext/libmemcached-0.50/docs/man/memcached_callback_set.3 +159 -0
- data/ext/libmemcached-0.50/docs/man/memcached_cas.3 +91 -0
- data/ext/libmemcached-0.50/docs/man/memcached_cas_by_key.3 +91 -0
- data/ext/libmemcached-0.50/docs/man/memcached_clone.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_create.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_decrement.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_decrement_with_initial.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_delete.3 +83 -0
- data/ext/libmemcached-0.50/docs/man/memcached_delete_by_key.3 +83 -0
- data/ext/libmemcached-0.50/docs/man/memcached_destroy_sasl_auth_data.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_dump.3 +77 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch_execute.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch_result.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_flush_buffers.3 +72 -0
- data/ext/libmemcached-0.50/docs/man/memcached_free.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_generate_hash.3 +85 -0
- data/ext/libmemcached-0.50/docs/man/memcached_generate_hash_value.3 +85 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_memory_allocators.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_sasl_callbacks.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_user_data.3 +79 -0
- data/ext/libmemcached-0.50/docs/man/memcached_increment.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_increment_with_initial.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_lib_version.3 +76 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_execute.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_execute_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_get.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_set.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_create.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_destroy.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_pop.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_push.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_st.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_prepend.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_prepend_by_key.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_quit.3 +74 -0
- data/ext/libmemcached-0.50/docs/man/memcached_replace.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_replace_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_sasl_set_auth_data.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_add.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_count.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_cursor.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_append.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_count.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_free.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_push.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_servers_parse.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_memory_allocators.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_sasl_callbacks.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_user_data.3 +79 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_execute.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_get_keys.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_get_value.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_servername.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_strerror.3 +69 -0
- data/ext/libmemcached-0.50/docs/man/memcached_verbosity.3 +66 -0
- data/ext/libmemcached-0.50/docs/man/memcached_version.3 +76 -0
- data/ext/libmemcached-0.50/docs/man/memcapable.1 +92 -0
- data/ext/libmemcached-0.50/docs/man/memcat.1 +71 -0
- data/ext/libmemcached-0.50/docs/man/memcp.1 +77 -0
- data/ext/libmemcached-0.50/docs/man/memdump.1 +66 -0
- data/ext/libmemcached-0.50/docs/man/memerror.1 +65 -0
- data/ext/libmemcached-0.50/docs/man/memflush.1 +73 -0
- data/ext/libmemcached-0.50/docs/man/memrm.1 +72 -0
- data/ext/libmemcached-0.50/docs/man/memslap.1 +59 -0
- data/ext/libmemcached-0.50/docs/man/memstat.1 +70 -0
- data/ext/libmemcached-0.50/example/include.am +24 -0
- data/ext/libmemcached-0.50/example/interface_v0.c +594 -0
- data/ext/libmemcached-0.50/example/interface_v1.c +411 -0
- data/ext/libmemcached-0.50/example/memcached_light.c +474 -0
- data/ext/libmemcached-0.50/example/memcached_light.h +7 -0
- data/ext/libmemcached-0.50/example/storage.c +172 -0
- data/ext/libmemcached-0.50/example/storage.h +27 -0
- data/ext/libmemcached-0.50/example/storage_innodb.c +535 -0
- data/ext/libmemcached-0.50/libhashkit/algorithm.cc +69 -0
- data/ext/libmemcached-0.50/libhashkit/algorithm.h +96 -0
- data/ext/libmemcached-0.50/libhashkit/behavior.cc +9 -0
- data/ext/libmemcached-0.50/libhashkit/behavior.h +26 -0
- data/ext/libmemcached-0.50/libhashkit/common.h +33 -0
- data/ext/libmemcached-0.50/libhashkit/configure.h.in +19 -0
- data/ext/libmemcached-0.50/libhashkit/crc32.cc +86 -0
- data/ext/libmemcached-0.50/libhashkit/digest.cc +62 -0
- data/ext/libmemcached-0.50/libhashkit/digest.h +30 -0
- data/ext/libmemcached-0.50/libhashkit/fnv.cc +75 -0
- data/ext/libmemcached-0.50/libhashkit/function.cc +156 -0
- data/ext/libmemcached-0.50/libhashkit/function.h +44 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.cc +100 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.h +95 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.hpp +97 -0
- data/ext/libmemcached-0.50/libhashkit/hsieh.cc +70 -0
- data/ext/libmemcached-0.50/libhashkit/include.am +69 -0
- data/ext/libmemcached-0.50/libhashkit/jenkins.cc +214 -0
- data/ext/libmemcached-0.50/libhashkit/ketama.cc +164 -0
- data/ext/libmemcached-0.50/libhashkit/md5.cc +367 -0
- data/ext/libmemcached-0.50/libhashkit/murmur.cc +77 -0
- data/ext/libmemcached-0.50/libhashkit/one_at_a_time.cc +34 -0
- data/ext/libmemcached-0.50/libhashkit/str_algorithm.cc +58 -0
- data/ext/libmemcached-0.50/libhashkit/str_algorithm.h +48 -0
- data/ext/libmemcached-0.50/libhashkit/strerror.cc +25 -0
- data/ext/libmemcached-0.50/libhashkit/strerror.h +23 -0
- data/ext/libmemcached-0.50/libhashkit/types.h +90 -0
- data/ext/libmemcached-0.50/libhashkit/visibility.h +48 -0
- data/ext/libmemcached-0.50/libmemcached/allocators.cc +119 -0
- data/ext/libmemcached-0.50/libmemcached/allocators.h +87 -0
- data/ext/libmemcached-0.50/libmemcached/analyze.cc +110 -0
- data/ext/libmemcached-0.50/libmemcached/analyze.h +66 -0
- data/ext/libmemcached-0.50/libmemcached/array.c +128 -0
- data/ext/libmemcached-0.50/libmemcached/array.h +75 -0
- data/ext/libmemcached-0.50/libmemcached/auto.cc +383 -0
- data/ext/libmemcached-0.50/libmemcached/auto.h +111 -0
- data/ext/libmemcached-0.50/libmemcached/basic_string.h +55 -0
- data/ext/libmemcached-0.50/libmemcached/behavior.cc +590 -0
- data/ext/libmemcached-0.50/libmemcached/behavior.h +86 -0
- data/ext/libmemcached-0.50/libmemcached/byteorder.cc +90 -0
- data/ext/libmemcached-0.50/libmemcached/byteorder.h +52 -0
- data/ext/libmemcached-0.50/libmemcached/callback.cc +160 -0
- data/ext/libmemcached-0.50/libmemcached/callback.h +61 -0
- data/ext/libmemcached-0.50/libmemcached/common.h +182 -0
- data/ext/libmemcached-0.50/libmemcached/configure.h.in +52 -0
- data/ext/libmemcached-0.50/libmemcached/connect.cc +626 -0
- data/ext/libmemcached-0.50/libmemcached/constants.h +167 -0
- data/ext/libmemcached-0.50/libmemcached/delete.cc +266 -0
- data/ext/libmemcached-0.50/libmemcached/delete.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/do.cc +100 -0
- data/ext/libmemcached-0.50/libmemcached/do.hpp +49 -0
- data/ext/libmemcached-0.50/libmemcached/dump.cc +107 -0
- data/ext/libmemcached-0.50/libmemcached/dump.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/error.cc +419 -0
- data/ext/libmemcached-0.50/libmemcached/error.h +61 -0
- data/ext/libmemcached-0.50/libmemcached/error.hpp +87 -0
- data/ext/libmemcached-0.50/libmemcached/exception.hpp +63 -0
- data/ext/libmemcached-0.50/libmemcached/fetch.cc +267 -0
- data/ext/libmemcached-0.50/libmemcached/fetch.h +53 -0
- data/ext/libmemcached-0.50/libmemcached/flush.cc +149 -0
- data/ext/libmemcached-0.50/libmemcached/flush.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/flush_buffers.cc +66 -0
- data/ext/libmemcached-0.50/libmemcached/flush_buffers.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/get.cc +842 -0
- data/ext/libmemcached-0.50/libmemcached/get.h +135 -0
- data/ext/libmemcached-0.50/libmemcached/hash.cc +178 -0
- data/ext/libmemcached-0.50/libmemcached/hash.h +68 -0
- data/ext/libmemcached-0.50/libmemcached/hosts.cc +516 -0
- data/ext/libmemcached-0.50/libmemcached/include.am +183 -0
- data/ext/libmemcached-0.50/libmemcached/initialize_query.cc +70 -0
- data/ext/libmemcached-0.50/libmemcached/initialize_query.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/internal.h +46 -0
- data/ext/libmemcached-0.50/libmemcached/io.cc +920 -0
- data/ext/libmemcached-0.50/libmemcached/io.h +119 -0
- data/ext/libmemcached-0.50/libmemcached/is.h +48 -0
- data/ext/libmemcached-0.50/libmemcached/key.cc +23 -0
- data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.d +30 -0
- data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.h +118 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.cc +437 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.h +214 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.hpp +799 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/README.txt +7 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/protocol_binary.h +726 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/vbucket.h +26 -0
- data/ext/libmemcached-0.50/libmemcached/memcached_util.h +44 -0
- data/ext/libmemcached-0.50/libmemcached/memory.h +79 -0
- data/ext/libmemcached-0.50/libmemcached/options.cc +178 -0
- data/ext/libmemcached-0.50/libmemcached/options.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/options.hpp +56 -0
- data/ext/libmemcached-0.50/libmemcached/options/context.h +151 -0
- data/ext/libmemcached-0.50/libmemcached/options/include.am +19 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.am +0 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.cc +2324 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.h +122 -0
- data/ext/libmemcached-0.50/libmemcached/options/scanner.cc +3203 -0
- data/ext/libmemcached-0.50/libmemcached/options/scanner.h +479 -0
- data/ext/libmemcached-0.50/libmemcached/options/server.h +60 -0
- data/ext/libmemcached-0.50/libmemcached/options/symbol.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/parse.cc +110 -0
- data/ext/libmemcached-0.50/libmemcached/parse.h +23 -0
- data/ext/libmemcached-0.50/libmemcached/platform.h +56 -0
- data/ext/libmemcached-0.50/libmemcached/prefix_key.cc +65 -0
- data/ext/libmemcached-0.50/libmemcached/prefix_key.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.c +963 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.h +40 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.c +1121 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.h +47 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/cache.c +149 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/cache.h +116 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/callback.h +418 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/common.h +163 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/include.am +26 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/pedantic.c +202 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/protocol_handler.c +365 -0
- data/ext/libmemcached-0.50/libmemcached/protocol_handler.h +215 -0
- data/ext/libmemcached-0.50/libmemcached/purge.cc +90 -0
- data/ext/libmemcached-0.50/libmemcached/quit.cc +139 -0
- data/ext/libmemcached-0.50/libmemcached/quit.h +55 -0
- data/ext/libmemcached-0.50/libmemcached/response.cc +619 -0
- data/ext/libmemcached-0.50/libmemcached/response.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/result.cc +173 -0
- data/ext/libmemcached-0.50/libmemcached/result.h +100 -0
- data/ext/libmemcached-0.50/libmemcached/return.h +98 -0
- data/ext/libmemcached-0.50/libmemcached/sasl.c +408 -0
- data/ext/libmemcached-0.50/libmemcached/sasl.h +86 -0
- data/ext/libmemcached-0.50/libmemcached/server.cc +351 -0
- data/ext/libmemcached-0.50/libmemcached/server.h +169 -0
- data/ext/libmemcached-0.50/libmemcached/server_list.cc +88 -0
- data/ext/libmemcached-0.50/libmemcached/server_list.h +77 -0
- data/ext/libmemcached-0.50/libmemcached/stats.cc +623 -0
- data/ext/libmemcached-0.50/libmemcached/stats.h +96 -0
- data/ext/libmemcached-0.50/libmemcached/storage.cc +567 -0
- data/ext/libmemcached-0.50/libmemcached/storage.h +133 -0
- data/ext/libmemcached-0.50/libmemcached/strerror.cc +189 -0
- data/ext/libmemcached-0.50/libmemcached/strerror.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/string.cc +253 -0
- data/ext/libmemcached-0.50/libmemcached/string.h +121 -0
- data/ext/libmemcached-0.50/libmemcached/touch.cc +106 -0
- data/ext/libmemcached-0.50/libmemcached/touch.h +59 -0
- data/ext/libmemcached-0.50/libmemcached/types.h +117 -0
- data/ext/libmemcached-0.50/libmemcached/util.h +40 -0
- data/ext/libmemcached-0.50/libmemcached/util/flush.cc +61 -0
- data/ext/libmemcached-0.50/libmemcached/util/flush.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/util/include.am +34 -0
- data/ext/libmemcached-0.50/libmemcached/util/ping.cc +62 -0
- data/ext/libmemcached-0.50/libmemcached/util/ping.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/util/pool.cc +392 -0
- data/ext/libmemcached-0.50/libmemcached/util/pool.h +78 -0
- data/ext/libmemcached-0.50/libmemcached/util/version.cc +87 -0
- data/ext/libmemcached-0.50/libmemcached/util/version.h +53 -0
- data/ext/libmemcached-0.50/libmemcached/verbosity.cc +97 -0
- data/ext/libmemcached-0.50/libmemcached/verbosity.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/version.cc +214 -0
- data/ext/libmemcached-0.50/libmemcached/version.h +52 -0
- data/ext/libmemcached-0.50/libmemcached/virtual_bucket.c +118 -0
- data/ext/libmemcached-0.50/libmemcached/virtual_bucket.h +59 -0
- data/ext/libmemcached-0.50/libmemcached/visibility.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/watchpoint.h +110 -0
- data/ext/libmemcached-0.50/libtest/callbacks.h +21 -0
- data/ext/libmemcached-0.50/libtest/collection.h +19 -0
- data/ext/libmemcached-0.50/libtest/common.h +50 -0
- data/ext/libmemcached-0.50/libtest/core.h +11 -0
- data/ext/libmemcached-0.50/libtest/error.h +18 -0
- data/ext/libmemcached-0.50/libtest/failed.h +52 -0
- data/ext/libmemcached-0.50/libtest/framework.cc +57 -0
- data/ext/libmemcached-0.50/libtest/framework.h +137 -0
- data/ext/libmemcached-0.50/libtest/get.h +22 -0
- data/ext/libmemcached-0.50/libtest/include.am +52 -0
- data/ext/libmemcached-0.50/libtest/runner.h +19 -0
- data/ext/libmemcached-0.50/libtest/server.c +355 -0
- data/ext/libmemcached-0.50/libtest/server.h +43 -0
- data/ext/libmemcached-0.50/libtest/stats.h +30 -0
- data/ext/libmemcached-0.50/libtest/strerror.h +14 -0
- data/ext/libmemcached-0.50/libtest/test.cc +319 -0
- data/ext/libmemcached-0.50/libtest/test.h +162 -0
- data/ext/libmemcached-0.50/libtest/test.hpp +46 -0
- data/ext/libmemcached-0.50/libtest/visibility.h +69 -0
- data/ext/libmemcached-0.50/m4/ac_cxx_header_stdcxx_98.m4 +83 -0
- data/ext/libmemcached-0.50/m4/acx_pthread.m4 +271 -0
- data/ext/libmemcached-0.50/m4/byteorder.m4 +19 -0
- data/ext/libmemcached-0.50/m4/deprecated.m4 +17 -0
- data/ext/libmemcached-0.50/m4/eagain.m4 +28 -0
- data/ext/libmemcached-0.50/m4/enable_utillib.m4 +16 -0
- data/ext/libmemcached-0.50/m4/gettext.m4 +379 -0
- data/ext/libmemcached-0.50/m4/hsieh.m4 +18 -0
- data/ext/libmemcached-0.50/m4/iconv.m4 +214 -0
- data/ext/libmemcached-0.50/m4/lib-ld.m4 +110 -0
- data/ext/libmemcached-0.50/m4/lib-link.m4 +767 -0
- data/ext/libmemcached-0.50/m4/lib-prefix.m4 +221 -0
- data/ext/libmemcached-0.50/m4/libtool.m4 +7851 -0
- data/ext/libmemcached-0.50/m4/ltoptions.m4 +369 -0
- data/ext/libmemcached-0.50/m4/ltsugar.m4 +123 -0
- data/ext/libmemcached-0.50/m4/ltversion.m4 +23 -0
- data/ext/libmemcached-0.50/m4/lt~obsolete.m4 +98 -0
- data/ext/libmemcached-0.50/m4/memaslap.m4 +9 -0
- data/ext/libmemcached-0.50/m4/memcached.m4 +31 -0
- data/ext/libmemcached-0.50/m4/murmur.m4 +18 -0
- data/ext/libmemcached-0.50/m4/pandora_64bit.m4 +60 -0
- data/ext/libmemcached-0.50/m4/pandora_bison.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_canonical.m4 +418 -0
- data/ext/libmemcached-0.50/m4/pandora_check_compiler_version.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_check_cxx_standard.m4 +23 -0
- data/ext/libmemcached-0.50/m4/pandora_cinttypes.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_clock_gettime.m4 +15 -0
- data/ext/libmemcached-0.50/m4/pandora_compile_stdcxx_0x.m4 +103 -0
- data/ext/libmemcached-0.50/m4/pandora_cstdint.m4 +38 -0
- data/ext/libmemcached-0.50/m4/pandora_cxx_demangle.m4 +27 -0
- data/ext/libmemcached-0.50/m4/pandora_enable_dtrace.m4 +60 -0
- data/ext/libmemcached-0.50/m4/pandora_ensure_gcc_version.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_extensions.m4 +16 -0
- data/ext/libmemcached-0.50/m4/pandora_fdatasync.m4 +25 -0
- data/ext/libmemcached-0.50/m4/pandora_flex.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_have_better_malloc.m4 +66 -0
- data/ext/libmemcached-0.50/m4/pandora_have_boost.m4 +93 -0
- data/ext/libmemcached-0.50/m4/pandora_have_gcc_atomics.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_have_innodb.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libaio.m4 +56 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libavahi.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libbdb.m4 +40 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_date_time.m4 +46 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_filesystem.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_iostreams.m4 +49 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_options.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_regex.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_test.m4 +45 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_thread.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libcassandra.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libcurl.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libdl.m4 +51 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libdrizzle.m4 +61 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libevent.m4 +66 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libgearman.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libgtest.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libhaildb.m4 +43 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libhashkit.m4 +42 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libinnodb.m4 +64 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libldap.m4 +73 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libmemcached.m4 +106 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libmysqlclient.m4 +146 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libndbclient.m4 +80 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpcre.m4 +73 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpq.m4 +46 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpqxx.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libsqlite3.m4 +42 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libtokyocabinet.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libuuid.m4 +55 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libvbucket.m4 +40 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libxml2.m4 +52 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libz.m4 +51 -0
- data/ext/libmemcached-0.50/m4/pandora_have_protobuf.m4 +82 -0
- data/ext/libmemcached-0.50/m4/pandora_have_sasl.m4 +133 -0
- data/ext/libmemcached-0.50/m4/pandora_have_thrift.m4 +45 -0
- data/ext/libmemcached-0.50/m4/pandora_header_assert.m4 +23 -0
- data/ext/libmemcached-0.50/m4/pandora_header_stdcxx_98.m4 +83 -0
- data/ext/libmemcached-0.50/m4/pandora_intltool.m4 +225 -0
- data/ext/libmemcached-0.50/m4/pandora_libtool.m4 +25 -0
- data/ext/libmemcached-0.50/m4/pandora_optimize.m4 +75 -0
- data/ext/libmemcached-0.50/m4/pandora_platform.m4 +117 -0
- data/ext/libmemcached-0.50/m4/pandora_plugins.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_print_callstack.m4 +61 -0
- data/ext/libmemcached-0.50/m4/pandora_pthread.m4 +258 -0
- data/ext/libmemcached-0.50/m4/pandora_python3_devel.m4 +236 -0
- data/ext/libmemcached-0.50/m4/pandora_run_cpplint.m4 +8 -0
- data/ext/libmemcached-0.50/m4/pandora_sasl.m4 +133 -0
- data/ext/libmemcached-0.50/m4/pandora_shared_ptr.m4 +59 -0
- data/ext/libmemcached-0.50/m4/pandora_stack_direction.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_stl_hash.m4 +94 -0
- data/ext/libmemcached-0.50/m4/pandora_swig.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_use_pipe.m4 +36 -0
- data/ext/libmemcached-0.50/m4/pandora_vc_build.m4 +168 -0
- data/ext/libmemcached-0.50/m4/pandora_version.m4 +11 -0
- data/ext/libmemcached-0.50/m4/pandora_visibility.m4 +75 -0
- data/ext/libmemcached-0.50/m4/pandora_warnings.m4 +447 -0
- data/ext/libmemcached-0.50/m4/pandora_with_gettext.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_with_lua.m4 +55 -0
- data/ext/libmemcached-0.50/m4/pandora_with_memcached.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_with_perl.m4 +81 -0
- data/ext/libmemcached-0.50/m4/pandora_with_php.m4 +56 -0
- data/ext/libmemcached-0.50/m4/pandora_with_python.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_with_python3.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_with_r.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_with_ruby.m4 +79 -0
- data/ext/libmemcached-0.50/m4/pandora_with_valgrind.m4 +17 -0
- data/ext/libmemcached-0.50/m4/pkg.m4 +157 -0
- data/ext/libmemcached-0.50/m4/po.m4 +449 -0
- data/ext/libmemcached-0.50/m4/progtest.m4 +92 -0
- data/ext/libmemcached-0.50/m4/protocol_binary.m4 +36 -0
- data/ext/libmemcached-0.50/m4/setsockopt.m4 +73 -0
- data/ext/libmemcached-0.50/m4/socket_send_flags.m4 +66 -0
- data/ext/libmemcached-0.50/poll/include.am +8 -0
- data/ext/libmemcached-0.50/poll/poll.c +77 -0
- data/ext/libmemcached-0.50/poll/poll.h +45 -0
- data/ext/libmemcached-0.50/support/include.am +11 -0
- data/ext/libmemcached-0.50/support/libmemcached-fc.spec.in +105 -0
- data/ext/libmemcached-0.50/support/libmemcached.pc.in +10 -0
- data/ext/libmemcached-0.50/support/libmemcached.spec.in +281 -0
- data/ext/libmemcached-0.50/support/set_benchmark.sh +5 -0
- data/ext/libmemcached-0.50/tests/atomsmasher.cc +295 -0
- data/ext/libmemcached-0.50/tests/basic.cc +134 -0
- data/ext/libmemcached-0.50/tests/basic.h +66 -0
- data/ext/libmemcached-0.50/tests/cpp_example.cc +195 -0
- data/ext/libmemcached-0.50/tests/deprecated.cc +72 -0
- data/ext/libmemcached-0.50/tests/deprecated.h +49 -0
- data/ext/libmemcached-0.50/tests/error_conditions.cc +63 -0
- data/ext/libmemcached-0.50/tests/error_conditions.h +48 -0
- data/ext/libmemcached-0.50/tests/hash_plus.cc +225 -0
- data/ext/libmemcached-0.50/tests/hash_results.h +127 -0
- data/ext/libmemcached-0.50/tests/hashkit_functions.cc +619 -0
- data/ext/libmemcached-0.50/tests/include.am +342 -0
- data/ext/libmemcached-0.50/tests/ketama_test_cases.h +121 -0
- data/ext/libmemcached-0.50/tests/ketama_test_cases_spy.h +118 -0
- data/ext/libmemcached-0.50/tests/libmemcached_world.h +205 -0
- data/ext/libmemcached-0.50/tests/mem_functions.cc +6648 -0
- data/ext/libmemcached-0.50/tests/mem_udp.cc +510 -0
- data/ext/libmemcached-0.50/tests/output_plus.res +5 -0
- data/ext/libmemcached-0.50/tests/parser.cc +599 -0
- data/ext/libmemcached-0.50/tests/parser.h +109 -0
- data/ext/libmemcached-0.50/tests/plus.cpp +240 -0
- data/ext/libmemcached-0.50/tests/pool.cc +78 -0
- data/ext/libmemcached-0.50/tests/pool.h +49 -0
- data/ext/libmemcached-0.50/tests/print.cc +58 -0
- data/ext/libmemcached-0.50/tests/print.h +51 -0
- data/ext/libmemcached-0.50/tests/replication.cc +333 -0
- data/ext/libmemcached-0.50/tests/replication.h +64 -0
- data/ext/libmemcached-0.50/tests/start.cc +29 -0
- data/ext/libmemcached-0.50/tests/string.cc +174 -0
- data/ext/libmemcached-0.50/tests/string.h +67 -0
- data/ext/libmemcached-0.50/tests/virtual_buckets.cc +143 -0
- data/ext/libmemcached-0.50/tests/virtual_buckets.h +51 -0
- data/ext/libmemcached-0.50/win32/include.am +11 -0
- data/ext/libmemcached-0.50/win32/wrappers.h +55 -0
- data/ext/rlibmemcached.i +263 -0
- data/ext/rlibmemcached_wrap.c +16732 -0
- data/lib/memcached.rb +32 -0
- data/lib/memcached/auth.rb +16 -0
- data/lib/memcached/behaviors.rb +77 -0
- data/lib/memcached/exceptions.rb +84 -0
- data/lib/memcached/experimental.rb +48 -0
- data/lib/memcached/memcached.rb +660 -0
- data/lib/memcached/rails.rb +133 -0
- data/test/profile/benchmark.rb +245 -0
- data/test/profile/c_profiler.rb +14 -0
- data/test/profile/exercise.rb +185 -0
- data/test/profile/rb_profiler.rb +21 -0
- data/test/profile/valgrind.rb +10 -0
- data/test/setup.rb +30 -0
- data/test/teardown.rb +0 -0
- data/test/test_helper.rb +19 -0
- data/test/unit/binding_test.rb +8 -0
- data/test/unit/memcached_experimental_test.rb +274 -0
- data/test/unit/memcached_test.rb +1293 -0
- data/test/unit/rails_test.rb +122 -0
- metadata +650 -0
- 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
|
+
|