vinted-memcached 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/BENCHMARKS +142 -0
  3. data/CHANGELOG +176 -0
  4. data/Gemfile +11 -0
  5. data/Gemfile.lock +45 -0
  6. data/LICENSE +184 -0
  7. data/Manifest +209 -0
  8. data/README.rdoc +124 -0
  9. data/Rakefile +134 -0
  10. data/TODO +1 -0
  11. data/ext/extconf-make.rb +25 -0
  12. data/ext/extconf.rb +78 -0
  13. data/ext/libmemcached-0.32/AUTHORS +7 -0
  14. data/ext/libmemcached-0.32/COPYING +32 -0
  15. data/ext/libmemcached-0.32/ChangeLog +303 -0
  16. data/ext/libmemcached-0.32/INSTALL +302 -0
  17. data/ext/libmemcached-0.32/Makefile.am +36 -0
  18. data/ext/libmemcached-0.32/Makefile.in +911 -0
  19. data/ext/libmemcached-0.32/NEWS +1 -0
  20. data/ext/libmemcached-0.32/README +33 -0
  21. data/ext/libmemcached-0.32/THANKS +14 -0
  22. data/ext/libmemcached-0.32/TODO +11 -0
  23. data/ext/libmemcached-0.32/aclocal.m4 +2108 -0
  24. data/ext/libmemcached-0.32/clients/Makefile.am +80 -0
  25. data/ext/libmemcached-0.32/clients/Makefile.in +773 -0
  26. data/ext/libmemcached-0.32/clients/client_options.h +32 -0
  27. data/ext/libmemcached-0.32/clients/execute.c +64 -0
  28. data/ext/libmemcached-0.32/clients/execute.h +5 -0
  29. data/ext/libmemcached-0.32/clients/generator.c +74 -0
  30. data/ext/libmemcached-0.32/clients/generator.h +20 -0
  31. data/ext/libmemcached-0.32/clients/memcat.c +178 -0
  32. data/ext/libmemcached-0.32/clients/memcp.c +251 -0
  33. data/ext/libmemcached-0.32/clients/memdump.c +170 -0
  34. data/ext/libmemcached-0.32/clients/memerror.c +80 -0
  35. data/ext/libmemcached-0.32/clients/memflush.c +143 -0
  36. data/ext/libmemcached-0.32/clients/memrm.c +160 -0
  37. data/ext/libmemcached-0.32/clients/memslap.c +441 -0
  38. data/ext/libmemcached-0.32/clients/memstat.c +326 -0
  39. data/ext/libmemcached-0.32/clients/utilities.c +207 -0
  40. data/ext/libmemcached-0.32/clients/utilities.h +41 -0
  41. data/ext/libmemcached-0.32/config/compile +143 -0
  42. data/ext/libmemcached-0.32/config/config.guess +1561 -0
  43. data/ext/libmemcached-0.32/config/config.rpath +666 -0
  44. data/ext/libmemcached-0.32/config/config.sub +1686 -0
  45. data/ext/libmemcached-0.32/config/depcomp +630 -0
  46. data/ext/libmemcached-0.32/config/install-sh +520 -0
  47. data/ext/libmemcached-0.32/config/ltmain.sh +9636 -0
  48. data/ext/libmemcached-0.32/config/missing +376 -0
  49. data/ext/libmemcached-0.32/config.h.in +254 -0
  50. data/ext/libmemcached-0.32/configure +23843 -0
  51. data/ext/libmemcached-0.32/configure.ac +120 -0
  52. data/ext/libmemcached-0.32/libmemcached/Makefile.am +111 -0
  53. data/ext/libmemcached-0.32/libmemcached/Makefile.in +1069 -0
  54. data/ext/libmemcached-0.32/libmemcached/byteorder.c +31 -0
  55. data/ext/libmemcached-0.32/libmemcached/common.h +189 -0
  56. data/ext/libmemcached-0.32/libmemcached/crc.c +86 -0
  57. data/ext/libmemcached-0.32/libmemcached/hsieh_hash.c +68 -0
  58. data/ext/libmemcached-0.32/libmemcached/jenkins_hash.c +213 -0
  59. data/ext/libmemcached-0.32/libmemcached/libmemcached.ver +1 -0
  60. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.d +30 -0
  61. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.h +82 -0
  62. data/ext/libmemcached-0.32/libmemcached/md5.c +354 -0
  63. data/ext/libmemcached-0.32/libmemcached/memcached/README.txt +7 -0
  64. data/ext/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +385 -0
  65. data/ext/libmemcached-0.32/libmemcached/memcached.c +153 -0
  66. data/ext/libmemcached-0.32/libmemcached/memcached.h +305 -0
  67. data/ext/libmemcached-0.32/libmemcached/memcached.hpp +799 -0
  68. data/ext/libmemcached-0.32/libmemcached/memcached_allocators.c +72 -0
  69. data/ext/libmemcached-0.32/libmemcached/memcached_analyze.c +100 -0
  70. data/ext/libmemcached-0.32/libmemcached/memcached_auto.c +207 -0
  71. data/ext/libmemcached-0.32/libmemcached/memcached_behavior.c +290 -0
  72. data/ext/libmemcached-0.32/libmemcached/memcached_callback.c +175 -0
  73. data/ext/libmemcached-0.32/libmemcached/memcached_configure.h.in +23 -0
  74. data/ext/libmemcached-0.32/libmemcached/memcached_connect.c +371 -0
  75. data/ext/libmemcached-0.32/libmemcached/memcached_constants.h +146 -0
  76. data/ext/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  77. data/ext/libmemcached-0.32/libmemcached/memcached_do.c +72 -0
  78. data/ext/libmemcached-0.32/libmemcached/memcached_dump.c +79 -0
  79. data/ext/libmemcached-0.32/libmemcached/memcached_exist.c +114 -0
  80. data/ext/libmemcached-0.32/libmemcached/memcached_exist.h +20 -0
  81. data/ext/libmemcached-0.32/libmemcached/memcached_fetch.c +102 -0
  82. data/ext/libmemcached-0.32/libmemcached/memcached_flush.c +89 -0
  83. data/ext/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +23 -0
  84. data/ext/libmemcached-0.32/libmemcached/memcached_get.c +494 -0
  85. data/ext/libmemcached-0.32/libmemcached/memcached_get.h +87 -0
  86. data/ext/libmemcached-0.32/libmemcached/memcached_hash.c +252 -0
  87. data/ext/libmemcached-0.32/libmemcached/memcached_hosts.c +510 -0
  88. data/ext/libmemcached-0.32/libmemcached/memcached_internal.h +31 -0
  89. data/ext/libmemcached-0.32/libmemcached/memcached_io.c +594 -0
  90. data/ext/libmemcached-0.32/libmemcached/memcached_io.h +72 -0
  91. data/ext/libmemcached-0.32/libmemcached/memcached_key.c +28 -0
  92. data/ext/libmemcached-0.32/libmemcached/memcached_parse.c +74 -0
  93. data/ext/libmemcached-0.32/libmemcached/memcached_pool.h +38 -0
  94. data/ext/libmemcached-0.32/libmemcached/memcached_purge.c +76 -0
  95. data/ext/libmemcached-0.32/libmemcached/memcached_quit.c +75 -0
  96. data/ext/libmemcached-0.32/libmemcached/memcached_response.c +529 -0
  97. data/ext/libmemcached-0.32/libmemcached/memcached_result.c +57 -0
  98. data/ext/libmemcached-0.32/libmemcached/memcached_result.h +59 -0
  99. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.c +225 -0
  100. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.h +44 -0
  101. data/ext/libmemcached-0.32/libmemcached/memcached_server.c +159 -0
  102. data/ext/libmemcached-0.32/libmemcached/memcached_server.h +93 -0
  103. data/ext/libmemcached-0.32/libmemcached/memcached_stats.c +437 -0
  104. data/ext/libmemcached-0.32/libmemcached/memcached_storage.c +514 -0
  105. data/ext/libmemcached-0.32/libmemcached/memcached_storage.h +107 -0
  106. data/ext/libmemcached-0.32/libmemcached/memcached_strerror.c +92 -0
  107. data/ext/libmemcached-0.32/libmemcached/memcached_string.c +138 -0
  108. data/ext/libmemcached-0.32/libmemcached/memcached_string.h +53 -0
  109. data/ext/libmemcached-0.32/libmemcached/memcached_touch.c +60 -0
  110. data/ext/libmemcached-0.32/libmemcached/memcached_touch.h +31 -0
  111. data/ext/libmemcached-0.32/libmemcached/memcached_types.h +44 -0
  112. data/ext/libmemcached-0.32/libmemcached/memcached_util.h +15 -0
  113. data/ext/libmemcached-0.32/libmemcached/memcached_verbosity.c +36 -0
  114. data/ext/libmemcached-0.32/libmemcached/memcached_version.c +112 -0
  115. data/ext/libmemcached-0.32/libmemcached/memcached_watchpoint.h +38 -0
  116. data/ext/libmemcached-0.32/libmemcached/murmur_hash.c +76 -0
  117. data/ext/libmemcached-0.32/libmemcached/visibility.h +51 -0
  118. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.am +11 -0
  119. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.in +604 -0
  120. data/ext/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +1 -0
  121. data/ext/libmemcached-0.32/libmemcachedutil/memcached_pool.c +170 -0
  122. data/ext/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +103 -0
  123. data/ext/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +67 -0
  124. data/ext/libmemcached-0.32/m4/acx_pthread.m4 +276 -0
  125. data/ext/libmemcached-0.32/m4/byteorder.m4 +40 -0
  126. data/ext/libmemcached-0.32/m4/deprecated.m4 +17 -0
  127. data/ext/libmemcached-0.32/m4/enable_utillib.m4 +16 -0
  128. data/ext/libmemcached-0.32/m4/extensions.m4 +94 -0
  129. data/ext/libmemcached-0.32/m4/hsieh.m4 +18 -0
  130. data/ext/libmemcached-0.32/m4/lib-prefix.m4 +221 -0
  131. data/ext/libmemcached-0.32/m4/libtool.m4 +7831 -0
  132. data/ext/libmemcached-0.32/m4/ltoptions.m4 +369 -0
  133. data/ext/libmemcached-0.32/m4/ltsugar.m4 +123 -0
  134. data/ext/libmemcached-0.32/m4/ltversion.m4 +23 -0
  135. data/ext/libmemcached-0.32/m4/lt~obsolete.m4 +98 -0
  136. data/ext/libmemcached-0.32/m4/memcached.m4 +30 -0
  137. data/ext/libmemcached-0.32/m4/pandora_64bit.m4 +55 -0
  138. data/ext/libmemcached-0.32/m4/pandora_canonical.m4 +151 -0
  139. data/ext/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +37 -0
  140. data/ext/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +16 -0
  141. data/ext/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +41 -0
  142. data/ext/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +36 -0
  143. data/ext/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +54 -0
  144. data/ext/libmemcached-0.32/m4/pandora_have_sasl.m4 +133 -0
  145. data/ext/libmemcached-0.32/m4/pandora_header_assert.m4 +23 -0
  146. data/ext/libmemcached-0.32/m4/pandora_libtool.m4 +15 -0
  147. data/ext/libmemcached-0.32/m4/pandora_optimize.m4 +79 -0
  148. data/ext/libmemcached-0.32/m4/pandora_shared_ptr.m4 +56 -0
  149. data/ext/libmemcached-0.32/m4/pandora_vc_build.m4 +32 -0
  150. data/ext/libmemcached-0.32/m4/pandora_warnings.m4 +262 -0
  151. data/ext/libmemcached-0.32/m4/pod2man.m4 +7 -0
  152. data/ext/libmemcached-0.32/m4/protocol_binary.m4 +23 -0
  153. data/ext/libmemcached-0.32/m4/setsockopt.m4 +57 -0
  154. data/ext/libmemcached-0.32/m4/visibility.m4 +52 -0
  155. data/ext/libmemcached-0.32/support/Makefile.am +4 -0
  156. data/ext/libmemcached-0.32/support/Makefile.in +487 -0
  157. data/ext/libmemcached-0.32/support/libmemcached-fc.spec.in +105 -0
  158. data/ext/libmemcached-0.32/support/libmemcached.pc.in +10 -0
  159. data/ext/libmemcached-0.32/support/libmemcached.spec +105 -0
  160. data/ext/libmemcached-0.32/support/libmemcached.spec.in +105 -0
  161. data/ext/libmemcached-0.32/support/set_benchmark.sh +5 -0
  162. data/ext/libmemcached-0.32/tests/Makefile.am +113 -0
  163. data/ext/libmemcached-0.32/tests/Makefile.in +762 -0
  164. data/ext/libmemcached-0.32/tests/atomsmasher.c +245 -0
  165. data/ext/libmemcached-0.32/tests/function.c +4904 -0
  166. data/ext/libmemcached-0.32/tests/ketama_test_cases.h +108 -0
  167. data/ext/libmemcached-0.32/tests/output.cmp +7 -0
  168. data/ext/libmemcached-0.32/tests/output.res +7 -0
  169. data/ext/libmemcached-0.32/tests/output2.res +46 -0
  170. data/ext/libmemcached-0.32/tests/plus.cpp +293 -0
  171. data/ext/libmemcached-0.32/tests/r/memcat.res +19 -0
  172. data/ext/libmemcached-0.32/tests/r/memcp.res +27 -0
  173. data/ext/libmemcached-0.32/tests/r/memrm.res +19 -0
  174. data/ext/libmemcached-0.32/tests/r/memslap.res +33 -0
  175. data/ext/libmemcached-0.32/tests/r/memstat.res +33 -0
  176. data/ext/libmemcached-0.32/tests/server.c +118 -0
  177. data/ext/libmemcached-0.32/tests/server.h +25 -0
  178. data/ext/libmemcached-0.32/tests/start.c +16 -0
  179. data/ext/libmemcached-0.32/tests/t/memcat.test +4 -0
  180. data/ext/libmemcached-0.32/tests/t/memcp.test +3 -0
  181. data/ext/libmemcached-0.32/tests/t/memrm.test +3 -0
  182. data/ext/libmemcached-0.32/tests/t/memslap.test +5 -0
  183. data/ext/libmemcached-0.32/tests/t/memstat.test +3 -0
  184. data/ext/libmemcached-0.32/tests/test.c +137 -0
  185. data/ext/libmemcached-0.32/tests/test.h +46 -0
  186. data/ext/libmemcached-0.32/tests/udp.c +76 -0
  187. data/ext/rlibmemcached.i +258 -0
  188. data/ext/rlibmemcached_wrap.c +13917 -0
  189. data/lib/memcached/auth.rb +16 -0
  190. data/lib/memcached/behaviors.rb +78 -0
  191. data/lib/memcached/exceptions.rb +84 -0
  192. data/lib/memcached/experimental.rb +48 -0
  193. data/lib/memcached/marshal_codec.rb +10 -0
  194. data/lib/memcached/memcached.rb +732 -0
  195. data/lib/memcached/rails.rb +250 -0
  196. data/lib/memcached.rb +33 -0
  197. data/memcached.gemspec +0 -0
  198. data/test/profile/benchmark.rb +280 -0
  199. data/test/profile/c_profiler.rb +14 -0
  200. data/test/profile/exercise.rb +185 -0
  201. data/test/profile/rb_profiler.rb +21 -0
  202. data/test/profile/valgrind.rb +10 -0
  203. data/test/setup.rb +30 -0
  204. data/test/teardown.rb +0 -0
  205. data/test/test_helper.rb +18 -0
  206. data/test/unit/binding_test.rb +8 -0
  207. data/test/unit/memcached_experimental_test.rb +272 -0
  208. data/test/unit/memcached_test.rb +1487 -0
  209. data/test/unit/rails_test.rb +330 -0
  210. metadata +336 -0
@@ -0,0 +1,94 @@
1
+ # serial 6 -*- Autoconf -*-
2
+ # Enable extensions on systems that normally disable them.
3
+
4
+ # Copyright (C) 2003, 2006-2008 Free Software Foundation, Inc.
5
+ # This file is free software; the Free Software Foundation
6
+ # gives unlimited permission to copy and/or distribute it,
7
+ # with or without modifications, as long as this notice is preserved.
8
+
9
+ # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
10
+ # Autoconf. Perhaps we can remove this once we can assume Autoconf
11
+ # 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
12
+ # enough in this area it's likely we'll need to redefine
13
+ # AC_USE_SYSTEM_EXTENSIONS for quite some time.
14
+
15
+ # AC_USE_SYSTEM_EXTENSIONS
16
+ # ------------------------
17
+ # Enable extensions on systems that normally disable them,
18
+ # typically due to standards-conformance issues.
19
+ # Remember that #undef in AH_VERBATIM gets replaced with #define by
20
+ # AC_DEFINE. The goal here is to define all known feature-enabling
21
+ # macros, then, if reports of conflicts are made, disable macros that
22
+ # cause problems on some platforms (such as __EXTENSIONS__).
23
+ AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
24
+ [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
25
+ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
26
+
27
+ AC_REQUIRE([AC_CANONICAL_HOST])
28
+
29
+ AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
30
+ if test "$MINIX" = yes; then
31
+ AC_DEFINE([_POSIX_SOURCE], [1],
32
+ [Define to 1 if you need to in order for `stat' and other
33
+ things to work.])
34
+ AC_DEFINE([_POSIX_1_SOURCE], [2],
35
+ [Define to 2 if the system does not provide POSIX.1 features
36
+ except with this defined.])
37
+ AC_DEFINE([_MINIX], [1],
38
+ [Define to 1 if on MINIX.])
39
+ fi
40
+
41
+ dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500,
42
+ dnl regardless of whether the flags -Ae or _D_HPUX_SOURCE=1 are already
43
+ dnl provided.
44
+ case "$host_os" in
45
+ hpux*)
46
+ AC_DEFINE([_XOPEN_SOURCE], [500],
47
+ [Define to 500 only on HP-UX.])
48
+ ;;
49
+ esac
50
+
51
+ AH_VERBATIM([__EXTENSIONS__],
52
+ [/* Enable extensions on AIX 3, Interix. */
53
+ #ifndef _ALL_SOURCE
54
+ # undef _ALL_SOURCE
55
+ #endif
56
+ /* Enable GNU extensions on systems that have them. */
57
+ #ifndef _GNU_SOURCE
58
+ # undef _GNU_SOURCE
59
+ #endif
60
+ /* Enable threading extensions on Solaris. */
61
+ #ifndef _POSIX_PTHREAD_SEMANTICS
62
+ # undef _POSIX_PTHREAD_SEMANTICS
63
+ #endif
64
+ /* Enable extensions on HP NonStop. */
65
+ #ifndef _TANDEM_SOURCE
66
+ # undef _TANDEM_SOURCE
67
+ #endif
68
+ /* Enable general extensions on Solaris. */
69
+ #ifndef __EXTENSIONS__
70
+ # undef __EXTENSIONS__
71
+ #endif
72
+ ])
73
+ AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
74
+ [ac_cv_safe_to_define___extensions__],
75
+ [AC_COMPILE_IFELSE(
76
+ [AC_LANG_PROGRAM([[
77
+ # define __EXTENSIONS__ 1
78
+ ]AC_INCLUDES_DEFAULT])],
79
+ [ac_cv_safe_to_define___extensions__=yes],
80
+ [ac_cv_safe_to_define___extensions__=no])])
81
+ test $ac_cv_safe_to_define___extensions__ = yes &&
82
+ AC_DEFINE([__EXTENSIONS__])
83
+ AC_DEFINE([_ALL_SOURCE])
84
+ AC_DEFINE([_GNU_SOURCE])
85
+ AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
86
+ AC_DEFINE([_TANDEM_SOURCE])
87
+ ])# AC_USE_SYSTEM_EXTENSIONS
88
+
89
+ # gl_USE_SYSTEM_EXTENSIONS
90
+ # ------------------------
91
+ # Enable extensions on systems that normally disable them,
92
+ # typically due to standards-conformance issues.
93
+ AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],
94
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])])
@@ -0,0 +1,18 @@
1
+ dnl ---------------------------------------------------------------------------
2
+ dnl Macro: ENABLE_HSIEH_HASH
3
+ dnl ---------------------------------------------------------------------------
4
+ AC_DEFUN([ENABLE_HSIEH_HASH],
5
+ [AC_ARG_ENABLE([hsieh_hash],
6
+ [AS_HELP_STRING([--enable-hsieh_hash],
7
+ [build with support for hsieh hashing. @<:default=off@:>@])],
8
+ [ac_cv_enable_hsieh_hash=yes],
9
+ [ac_cv_enable_hsieh_hash=no])
10
+
11
+ AS_IF([test "$ac_cv_enable_hsieh_hash" = "yes"],
12
+ [AC_DEFINE([HAVE_HSIEH_HASH], [1], [Enables hsieh hashing support])])
13
+
14
+ AM_CONDITIONAL([INCLUDE_HSIEH_SRC], [test "$ac_cv_enable_hsieh_hash" = "yes"])
15
+ ])
16
+ dnl ---------------------------------------------------------------------------
17
+ dnl End Macro: ENABLE_HSIEH_HASH
18
+ dnl ---------------------------------------------------------------------------
@@ -0,0 +1,221 @@
1
+ # lib-prefix.m4 serial 6 (gettext-0.18)
2
+ dnl Copyright (C) 2001-2005, 2008 Free Software Foundation, Inc.
3
+ dnl This file is free software; the Free Software Foundation
4
+ dnl gives unlimited permission to copy and/or distribute it,
5
+ dnl with or without modifications, as long as this notice is preserved.
6
+
7
+ dnl From Bruno Haible.
8
+
9
+ dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
10
+ dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
11
+ dnl require excessive bracketing.
12
+ ifdef([AC_HELP_STRING],
13
+ [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
14
+ [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
15
+
16
+ dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
17
+ dnl to access previously installed libraries. The basic assumption is that
18
+ dnl a user will want packages to use other packages he previously installed
19
+ dnl with the same --prefix option.
20
+ dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
21
+ dnl libraries, but is otherwise very convenient.
22
+ AC_DEFUN([AC_LIB_PREFIX],
23
+ [
24
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
25
+ AC_REQUIRE([AC_PROG_CC])
26
+ AC_REQUIRE([AC_CANONICAL_HOST])
27
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
28
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
29
+ dnl By default, look in $includedir and $libdir.
30
+ use_additional=yes
31
+ AC_LIB_WITH_FINAL_PREFIX([
32
+ eval additional_includedir=\"$includedir\"
33
+ eval additional_libdir=\"$libdir\"
34
+ ])
35
+ AC_LIB_ARG_WITH([lib-prefix],
36
+ [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
37
+ --without-lib-prefix don't search for libraries in includedir and libdir],
38
+ [
39
+ if test "X$withval" = "Xno"; then
40
+ use_additional=no
41
+ else
42
+ if test "X$withval" = "X"; then
43
+ AC_LIB_WITH_FINAL_PREFIX([
44
+ eval additional_includedir=\"$includedir\"
45
+ eval additional_libdir=\"$libdir\"
46
+ ])
47
+ else
48
+ additional_includedir="$withval/include"
49
+ additional_libdir="$withval/$acl_libdirstem"
50
+ fi
51
+ fi
52
+ ])
53
+ if test $use_additional = yes; then
54
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
55
+ dnl But don't add it
56
+ dnl 1. if it's the standard /usr/include,
57
+ dnl 2. if it's already present in $CPPFLAGS,
58
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
59
+ dnl 4. if it doesn't exist as a directory.
60
+ if test "X$additional_includedir" != "X/usr/include"; then
61
+ haveit=
62
+ for x in $CPPFLAGS; do
63
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
64
+ if test "X$x" = "X-I$additional_includedir"; then
65
+ haveit=yes
66
+ break
67
+ fi
68
+ done
69
+ if test -z "$haveit"; then
70
+ if test "X$additional_includedir" = "X/usr/local/include"; then
71
+ if test -n "$GCC"; then
72
+ case $host_os in
73
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
74
+ esac
75
+ fi
76
+ fi
77
+ if test -z "$haveit"; then
78
+ if test -d "$additional_includedir"; then
79
+ dnl Really add $additional_includedir to $CPPFLAGS.
80
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
81
+ fi
82
+ fi
83
+ fi
84
+ fi
85
+ dnl Potentially add $additional_libdir to $LDFLAGS.
86
+ dnl But don't add it
87
+ dnl 1. if it's the standard /usr/lib,
88
+ dnl 2. if it's already present in $LDFLAGS,
89
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
90
+ dnl 4. if it doesn't exist as a directory.
91
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
92
+ haveit=
93
+ for x in $LDFLAGS; do
94
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
95
+ if test "X$x" = "X-L$additional_libdir"; then
96
+ haveit=yes
97
+ break
98
+ fi
99
+ done
100
+ if test -z "$haveit"; then
101
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
102
+ if test -n "$GCC"; then
103
+ case $host_os in
104
+ linux*) haveit=yes;;
105
+ esac
106
+ fi
107
+ fi
108
+ if test -z "$haveit"; then
109
+ if test -d "$additional_libdir"; then
110
+ dnl Really add $additional_libdir to $LDFLAGS.
111
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
112
+ fi
113
+ fi
114
+ fi
115
+ fi
116
+ fi
117
+ ])
118
+
119
+ dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
120
+ dnl acl_final_exec_prefix, containing the values to which $prefix and
121
+ dnl $exec_prefix will expand at the end of the configure script.
122
+ AC_DEFUN([AC_LIB_PREPARE_PREFIX],
123
+ [
124
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
125
+ dnl at the end of configure.
126
+ if test "X$prefix" = "XNONE"; then
127
+ acl_final_prefix="$ac_default_prefix"
128
+ else
129
+ acl_final_prefix="$prefix"
130
+ fi
131
+ if test "X$exec_prefix" = "XNONE"; then
132
+ acl_final_exec_prefix='${prefix}'
133
+ else
134
+ acl_final_exec_prefix="$exec_prefix"
135
+ fi
136
+ acl_save_prefix="$prefix"
137
+ prefix="$acl_final_prefix"
138
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
139
+ prefix="$acl_save_prefix"
140
+ ])
141
+
142
+ dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
143
+ dnl variables prefix and exec_prefix bound to the values they will have
144
+ dnl at the end of the configure script.
145
+ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
146
+ [
147
+ acl_save_prefix="$prefix"
148
+ prefix="$acl_final_prefix"
149
+ acl_save_exec_prefix="$exec_prefix"
150
+ exec_prefix="$acl_final_exec_prefix"
151
+ $1
152
+ exec_prefix="$acl_save_exec_prefix"
153
+ prefix="$acl_save_prefix"
154
+ ])
155
+
156
+ dnl AC_LIB_PREPARE_MULTILIB creates
157
+ dnl - a variable acl_libdirstem, containing the basename of the libdir, either
158
+ dnl "lib" or "lib64" or "lib/64",
159
+ dnl - a variable acl_libdirstem2, as a secondary possible value for
160
+ dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
161
+ dnl "lib/amd64".
162
+ AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
163
+ [
164
+ dnl There is no formal standard regarding lib and lib64.
165
+ dnl On glibc systems, the current practice is that on a system supporting
166
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
167
+ dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
168
+ dnl the compiler's default mode by looking at the compiler's library search
169
+ dnl path. If at least one of its elements ends in /lib64 or points to a
170
+ dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
171
+ dnl Otherwise we use the default, namely "lib".
172
+ dnl On Solaris systems, the current practice is that on a system supporting
173
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
174
+ dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
175
+ dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
176
+ AC_REQUIRE([AC_CANONICAL_HOST])
177
+ acl_libdirstem=lib
178
+ acl_libdirstem2=
179
+ case "$host_os" in
180
+ solaris*)
181
+ dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
182
+ dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
183
+ dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
184
+ dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
185
+ dnl symlink is missing, so we set acl_libdirstem2 too.
186
+ AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
187
+ [AC_RUN_IFELSE([
188
+ AC_LANG_PROGRAM([], [[
189
+ return sizeof(void*) == 8 ? 0 : 1;
190
+ ]])
191
+ ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
192
+ ])
193
+ if test $gl_cv_solaris_64bit = yes; then
194
+ acl_libdirstem=lib/64
195
+ case "$host_cpu" in
196
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
197
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
198
+ esac
199
+ fi
200
+ ;;
201
+ *)
202
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
203
+ if test -n "$searchpath"; then
204
+ acl_save_IFS="${IFS= }"; IFS=":"
205
+ for searchdir in $searchpath; do
206
+ if test -d "$searchdir"; then
207
+ case "$searchdir" in
208
+ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
209
+ *) searchdir=`cd "$searchdir" && pwd`
210
+ case "$searchdir" in
211
+ */lib64 ) acl_libdirstem=lib64 ;;
212
+ esac ;;
213
+ esac
214
+ fi
215
+ done
216
+ IFS="$acl_save_IFS"
217
+ fi
218
+ ;;
219
+ esac
220
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
221
+ ])