nutcracker 0.2.4.mac9 → 0.2.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (296) hide show
  1. data/README.md +13 -46
  2. data/Rakefile +20 -15
  3. data/bin/nutcracker +1 -6
  4. data/ext/nutcracker/ChangeLog +0 -9
  5. data/ext/nutcracker/LICENSE +0 -0
  6. data/ext/nutcracker/Makefile.am +0 -0
  7. data/ext/nutcracker/Makefile.in +149 -66
  8. data/ext/nutcracker/NOTICE +0 -0
  9. data/ext/nutcracker/README.md +11 -13
  10. data/ext/nutcracker/aclocal.m4 +201 -112
  11. data/ext/nutcracker/conf/nutcracker.leaf.yml +0 -0
  12. data/ext/nutcracker/conf/nutcracker.root.yml +0 -0
  13. data/ext/nutcracker/conf/nutcracker.yml +0 -0
  14. data/ext/nutcracker/config.h.in +0 -15
  15. data/ext/nutcracker/config/config.guess +84 -23
  16. data/ext/nutcracker/config/config.sub +93 -23
  17. data/ext/nutcracker/config/depcomp +81 -35
  18. data/ext/nutcracker/config/install-sh +122 -109
  19. data/ext/nutcracker/config/ltmain.sh +721 -1053
  20. data/ext/nutcracker/config/missing +29 -20
  21. data/ext/nutcracker/configure +2311 -2113
  22. data/ext/nutcracker/configure.ac +3 -35
  23. data/ext/nutcracker/contrib/Makefile.am +0 -0
  24. data/ext/nutcracker/contrib/Makefile.in +107 -41
  25. data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
  26. data/ext/nutcracker/extconf.rb +5 -3
  27. data/ext/nutcracker/m4/libtool.m4 +492 -553
  28. data/ext/nutcracker/m4/ltoptions.m4 +6 -7
  29. data/ext/nutcracker/m4/ltversion.m4 +5 -5
  30. data/ext/nutcracker/m4/lt~obsolete.m4 +3 -9
  31. data/ext/nutcracker/notes/c-styleguide.txt +0 -0
  32. data/ext/nutcracker/notes/debug.txt +0 -0
  33. data/ext/nutcracker/notes/memcache.txt +0 -0
  34. data/ext/nutcracker/notes/recommendation.md +2 -21
  35. data/ext/nutcracker/notes/redis.md +9 -9
  36. data/ext/nutcracker/notes/socket.txt +0 -0
  37. data/ext/nutcracker/scripts/nutcracker.init +0 -0
  38. data/ext/nutcracker/scripts/nutcracker.spec +0 -0
  39. data/ext/nutcracker/scripts/redis-check.py +0 -0
  40. data/ext/nutcracker/scripts/redis-check.sh +0 -9
  41. data/ext/nutcracker/src/Makefile.am +1 -1
  42. data/ext/nutcracker/src/Makefile.in +153 -74
  43. data/ext/nutcracker/src/hashkit/Makefile.am +0 -1
  44. data/ext/nutcracker/src/hashkit/Makefile.in +64 -39
  45. data/ext/nutcracker/src/hashkit/nc_crc32.c +0 -0
  46. data/ext/nutcracker/src/hashkit/nc_fnv.c +0 -0
  47. data/ext/nutcracker/src/hashkit/nc_hashkit.h +0 -2
  48. data/ext/nutcracker/src/hashkit/nc_hsieh.c +0 -0
  49. data/ext/nutcracker/src/hashkit/nc_jenkins.c +0 -0
  50. data/ext/nutcracker/src/hashkit/nc_ketama.c +0 -0
  51. data/ext/nutcracker/src/hashkit/nc_md5.c +0 -0
  52. data/ext/nutcracker/src/hashkit/nc_modula.c +6 -18
  53. data/ext/nutcracker/src/hashkit/nc_murmur.c +0 -0
  54. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +0 -0
  55. data/ext/nutcracker/src/hashkit/nc_random.c +0 -0
  56. data/ext/nutcracker/src/nc.c +0 -0
  57. data/ext/nutcracker/src/nc_array.c +0 -0
  58. data/ext/nutcracker/src/nc_array.h +0 -0
  59. data/ext/nutcracker/src/nc_client.c +0 -0
  60. data/ext/nutcracker/src/nc_client.h +0 -0
  61. data/ext/nutcracker/src/nc_conf.c +35 -14
  62. data/ext/nutcracker/src/nc_conf.h +1 -1
  63. data/ext/nutcracker/src/nc_connection.c +0 -0
  64. data/ext/nutcracker/src/nc_connection.h +0 -0
  65. data/ext/nutcracker/src/nc_core.c +26 -29
  66. data/ext/nutcracker/src/nc_core.h +5 -13
  67. data/ext/nutcracker/src/{nc_epoll.c → nc_event.c} +30 -94
  68. data/ext/nutcracker/src/nc_event.h +13 -33
  69. data/ext/nutcracker/src/nc_log.c +0 -0
  70. data/ext/nutcracker/src/nc_log.h +0 -0
  71. data/ext/nutcracker/src/nc_mbuf.c +0 -0
  72. data/ext/nutcracker/src/nc_mbuf.h +0 -0
  73. data/ext/nutcracker/src/nc_message.c +0 -0
  74. data/ext/nutcracker/src/nc_message.h +0 -2
  75. data/ext/nutcracker/src/nc_proxy.c +8 -8
  76. data/ext/nutcracker/src/nc_proxy.h +0 -0
  77. data/ext/nutcracker/src/nc_queue.h +0 -0
  78. data/ext/nutcracker/src/nc_rbtree.c +0 -0
  79. data/ext/nutcracker/src/nc_rbtree.h +0 -0
  80. data/ext/nutcracker/src/nc_request.c +3 -3
  81. data/ext/nutcracker/src/nc_response.c +6 -4
  82. data/ext/nutcracker/src/nc_server.c +12 -14
  83. data/ext/nutcracker/src/nc_server.h +0 -0
  84. data/ext/nutcracker/src/nc_signal.c +0 -0
  85. data/ext/nutcracker/src/nc_signal.h +0 -0
  86. data/ext/nutcracker/src/nc_stats.c +21 -16
  87. data/ext/nutcracker/src/nc_stats.h +4 -3
  88. data/ext/nutcracker/src/nc_string.c +0 -0
  89. data/ext/nutcracker/src/nc_string.h +0 -0
  90. data/ext/nutcracker/src/nc_util.c +0 -16
  91. data/ext/nutcracker/src/nc_util.h +0 -1
  92. data/ext/nutcracker/src/proto/Makefile.am +0 -0
  93. data/ext/nutcracker/src/proto/Makefile.in +60 -32
  94. data/ext/nutcracker/src/proto/nc_memcache.c +0 -0
  95. data/ext/nutcracker/src/proto/nc_proto.h +0 -0
  96. data/ext/nutcracker/src/proto/nc_redis.c +4 -17
  97. data/lib/nutcracker.rb +2 -187
  98. data/lib/nutcracker/version.rb +1 -1
  99. metadata +10 -256
  100. data/ext/nutcracker/Makefile +0 -643
  101. data/ext/nutcracker/autom4te.cache/output.0 +0 -18664
  102. data/ext/nutcracker/autom4te.cache/output.1 +0 -18664
  103. data/ext/nutcracker/autom4te.cache/output.2 +0 -18664
  104. data/ext/nutcracker/autom4te.cache/requests +0 -494
  105. data/ext/nutcracker/autom4te.cache/traces.0 +0 -2415
  106. data/ext/nutcracker/autom4te.cache/traces.1 +0 -945
  107. data/ext/nutcracker/autom4te.cache/traces.2 +0 -2415
  108. data/ext/nutcracker/config.h +0 -332
  109. data/ext/nutcracker/config.log +0 -2684
  110. data/ext/nutcracker/config.status +0 -2317
  111. data/ext/nutcracker/contrib/Makefile +0 -494
  112. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile +0 -736
  113. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +0 -13102
  114. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +0 -13085
  115. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.2 +0 -13085
  116. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +0 -476
  117. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.0 +0 -2339
  118. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +0 -545
  119. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +0 -2339
  120. data/ext/nutcracker/contrib/yaml-0.1.4/config.h +0 -81
  121. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +0 -80
  122. data/ext/nutcracker/contrib/yaml-0.1.4/config.log +0 -688
  123. data/ext/nutcracker/contrib/yaml-0.1.4/config.status +0 -2032
  124. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/annotated.html +0 -51
  125. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/bc_s.png +0 -0
  126. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/classes.html +0 -41
  127. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/closed.png +0 -0
  128. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.css +0 -656
  129. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.png +0 -0
  130. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/files.html +0 -40
  131. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions.html +0 -91
  132. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x62.html +0 -84
  133. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x63.html +0 -87
  134. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x64.html +0 -83
  135. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x65.html +0 -110
  136. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x66.html +0 -79
  137. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x68.html +0 -80
  138. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x69.html +0 -92
  139. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6b.html +0 -71
  140. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6c.html +0 -88
  141. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6d.html +0 -96
  142. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6e.html +0 -71
  143. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6f.html +0 -80
  144. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x70.html +0 -100
  145. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x71.html +0 -71
  146. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x72.html +0 -87
  147. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x73.html +0 -163
  148. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x74.html +0 -115
  149. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x75.html +0 -71
  150. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x76.html +0 -80
  151. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x77.html +0 -77
  152. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars.html +0 -91
  153. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x62.html +0 -84
  154. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x63.html +0 -87
  155. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x64.html +0 -83
  156. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x65.html +0 -110
  157. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x66.html +0 -79
  158. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x68.html +0 -80
  159. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x69.html +0 -92
  160. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6b.html +0 -71
  161. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6c.html +0 -88
  162. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6d.html +0 -96
  163. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6e.html +0 -71
  164. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6f.html +0 -80
  165. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x70.html +0 -100
  166. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x71.html +0 -71
  167. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x72.html +0 -87
  168. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x73.html +0 -163
  169. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x74.html +0 -115
  170. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x75.html +0 -71
  171. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x76.html +0 -80
  172. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x77.html +0 -77
  173. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals.html +0 -667
  174. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_defs.html +0 -81
  175. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_enum.html +0 -78
  176. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_eval.html +0 -373
  177. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_func.html +0 -196
  178. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_type.html +0 -126
  179. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__basic.html +0 -320
  180. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__emitter.html +0 -819
  181. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__events.html +0 -664
  182. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__export.html +0 -60
  183. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__nodes.html +0 -795
  184. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__parser.html +0 -606
  185. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__styles.html +0 -222
  186. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__tokens.html +0 -246
  187. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__version.html +0 -106
  188. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/index.html +0 -31
  189. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/modules.html +0 -42
  190. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_f.png +0 -0
  191. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_h.png +0 -0
  192. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/open.png +0 -0
  193. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__alias__data__s.html +0 -108
  194. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__document__s.html +0 -235
  195. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__emitter__s.html +0 -1300
  196. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__event__s.html +0 -496
  197. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__mark__s.html +0 -108
  198. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__pair__s.html +0 -91
  199. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__s.html +0 -420
  200. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__parser__s.html +0 -1229
  201. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__simple__key__s.html +0 -97
  202. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__tag__directive__s.html +0 -91
  203. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__token__s.html +0 -413
  204. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__version__directive__s.html +0 -91
  205. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_a.png +0 -0
  206. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_b.png +0 -0
  207. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_h.png +0 -0
  208. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_s.png +0 -0
  209. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tabs.css +0 -59
  210. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/yaml_8h.html +0 -525
  211. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.am +0 -17
  212. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.in +0 -470
  213. data/ext/nutcracker/contrib/yaml-0.1.4/libtool +0 -8890
  214. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile +0 -484
  215. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.lo +0 -12
  216. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.o +0 -0
  217. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.lo +0 -12
  218. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.o +0 -0
  219. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.lo +0 -12
  220. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.o +0 -0
  221. data/ext/nutcracker/contrib/yaml-0.1.4/src/libyaml.la +0 -41
  222. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.lo +0 -12
  223. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.o +0 -0
  224. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.lo +0 -12
  225. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.o +0 -0
  226. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.lo +0 -12
  227. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.o +0 -0
  228. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.lo +0 -12
  229. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.o +0 -0
  230. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.lo +0 -12
  231. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.o +0 -0
  232. data/ext/nutcracker/contrib/yaml-0.1.4/stamp-h1 +0 -1
  233. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile +0 -675
  234. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor +0 -0
  235. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt +0 -0
  236. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.o +0 -0
  237. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.o +0 -0
  238. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter +0 -0
  239. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt +0 -0
  240. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.o +0 -0
  241. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.o +0 -0
  242. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper +0 -0
  243. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.o +0 -0
  244. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter +0 -0
  245. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.o +0 -0
  246. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader +0 -0
  247. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.o +0 -0
  248. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser +0 -0
  249. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.o +0 -0
  250. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner +0 -0
  251. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.o +0 -0
  252. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc +0 -10
  253. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc.in +0 -10
  254. data/ext/nutcracker/libtool +0 -9403
  255. data/ext/nutcracker/src/Makefile +0 -647
  256. data/ext/nutcracker/src/hashkit/Makefile +0 -476
  257. data/ext/nutcracker/src/hashkit/libhashkit.a +0 -0
  258. data/ext/nutcracker/src/hashkit/nc_crc16.c +0 -66
  259. data/ext/nutcracker/src/hashkit/nc_crc16.o +0 -0
  260. data/ext/nutcracker/src/hashkit/nc_crc32.o +0 -0
  261. data/ext/nutcracker/src/hashkit/nc_fnv.o +0 -0
  262. data/ext/nutcracker/src/hashkit/nc_hsieh.o +0 -0
  263. data/ext/nutcracker/src/hashkit/nc_jenkins.o +0 -0
  264. data/ext/nutcracker/src/hashkit/nc_ketama.o +0 -0
  265. data/ext/nutcracker/src/hashkit/nc_md5.o +0 -0
  266. data/ext/nutcracker/src/hashkit/nc_modula.o +0 -0
  267. data/ext/nutcracker/src/hashkit/nc_murmur.o +0 -0
  268. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.o +0 -0
  269. data/ext/nutcracker/src/hashkit/nc_random.o +0 -0
  270. data/ext/nutcracker/src/nc.o +0 -0
  271. data/ext/nutcracker/src/nc_array.o +0 -0
  272. data/ext/nutcracker/src/nc_client.o +0 -0
  273. data/ext/nutcracker/src/nc_conf.o +0 -0
  274. data/ext/nutcracker/src/nc_connection.o +0 -0
  275. data/ext/nutcracker/src/nc_core.o +0 -0
  276. data/ext/nutcracker/src/nc_epoll.o +0 -0
  277. data/ext/nutcracker/src/nc_kqueue.c +0 -296
  278. data/ext/nutcracker/src/nc_kqueue.o +0 -0
  279. data/ext/nutcracker/src/nc_log.o +0 -0
  280. data/ext/nutcracker/src/nc_mbuf.o +0 -0
  281. data/ext/nutcracker/src/nc_message.o +0 -0
  282. data/ext/nutcracker/src/nc_proxy.o +0 -0
  283. data/ext/nutcracker/src/nc_rbtree.o +0 -0
  284. data/ext/nutcracker/src/nc_request.o +0 -0
  285. data/ext/nutcracker/src/nc_response.o +0 -0
  286. data/ext/nutcracker/src/nc_server.o +0 -0
  287. data/ext/nutcracker/src/nc_signal.o +0 -0
  288. data/ext/nutcracker/src/nc_stats.o +0 -0
  289. data/ext/nutcracker/src/nc_string.o +0 -0
  290. data/ext/nutcracker/src/nc_util.o +0 -0
  291. data/ext/nutcracker/src/nutcracker +0 -0
  292. data/ext/nutcracker/src/proto/Makefile +0 -454
  293. data/ext/nutcracker/src/proto/libproto.a +0 -0
  294. data/ext/nutcracker/src/proto/nc_memcache.o +0 -0
  295. data/ext/nutcracker/src/proto/nc_redis.o +0 -0
  296. data/ext/nutcracker/stamp-h1 +0 -1
@@ -1,14 +1,13 @@
1
1
  # Helper functions for option handling. -*- Autoconf -*-
2
2
  #
3
- # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
4
- # Inc.
3
+ # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
5
4
  # Written by Gary V. Vaughan, 2004
6
5
  #
7
6
  # This file is free software; the Free Software Foundation gives
8
7
  # unlimited permission to copy and/or distribute it, with or without
9
8
  # modifications, as long as this notice is preserved.
10
9
 
11
- # serial 7 ltoptions.m4
10
+ # serial 6 ltoptions.m4
12
11
 
13
12
  # This is to help aclocal find these macros, as it can't see m4_define.
14
13
  AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -126,7 +125,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
126
125
  [enable_win32_dll=yes
127
126
 
128
127
  case $host in
129
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
128
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
130
129
  AC_CHECK_TOOL(AS, as, false)
131
130
  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
132
131
  AC_CHECK_TOOL(OBJDUMP, objdump, false)
@@ -134,13 +133,13 @@ case $host in
134
133
  esac
135
134
 
136
135
  test -z "$AS" && AS=as
137
- _LT_DECL([], [AS], [1], [Assembler program])dnl
136
+ _LT_DECL([], [AS], [0], [Assembler program])dnl
138
137
 
139
138
  test -z "$DLLTOOL" && DLLTOOL=dlltool
140
- _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
139
+ _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
141
140
 
142
141
  test -z "$OBJDUMP" && OBJDUMP=objdump
143
- _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
142
+ _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
144
143
  ])# win32-dll
145
144
 
146
145
  AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
@@ -9,15 +9,15 @@
9
9
 
10
10
  # Generated from ltversion.in.
11
11
 
12
- # serial 3175 ltversion.m4
12
+ # serial 3012 ltversion.m4
13
13
  # This file is part of GNU Libtool
14
14
 
15
- m4_define([LT_PACKAGE_VERSION], [2.2.10])
16
- m4_define([LT_PACKAGE_REVISION], [1.3175])
15
+ m4_define([LT_PACKAGE_VERSION], [2.2.6])
16
+ m4_define([LT_PACKAGE_REVISION], [1.3012])
17
17
 
18
18
  AC_DEFUN([LTVERSION_VERSION],
19
- [macro_version='2.2.10'
20
- macro_revision='1.3175'
19
+ [macro_version='2.2.6'
20
+ macro_revision='1.3012'
21
21
  _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
22
22
  _LT_DECL(, macro_revision, 0)
23
23
  ])
@@ -1,13 +1,13 @@
1
1
  # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
2
2
  #
3
- # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
3
+ # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
4
4
  # Written by Scott James Remnant, 2004.
5
5
  #
6
6
  # This file is free software; the Free Software Foundation gives
7
7
  # unlimited permission to copy and/or distribute it, with or without
8
8
  # modifications, as long as this notice is preserved.
9
9
 
10
- # serial 5 lt~obsolete.m4
10
+ # serial 4 lt~obsolete.m4
11
11
 
12
12
  # These exist entirely to fool aclocal when bootstrapping libtool.
13
13
  #
@@ -77,6 +77,7 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
77
77
  m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
78
78
  m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
79
79
  m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
80
+ m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])])
80
81
  m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
81
82
  m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
82
83
  m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
@@ -89,10 +90,3 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
89
90
  m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
90
91
  m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
91
92
  m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
92
- m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
93
- m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
94
- m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
95
- m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
96
- m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
97
- m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
98
- m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
File without changes
File without changes
File without changes
@@ -34,8 +34,6 @@ Failures are a fact of life, especially when things are distributed. To be resil
34
34
 
35
35
  Enabling `auto_eject_hosts:` ensures that a dead server can be ejected out of the hash ring after `server_failure_limit:` consecutive failures have been encountered on that said server. A non-zero `server_retry_timeout:` ensures that we don't incorrectly mark a server as dead forever especially when the failures were really transient. The combination of `server_retry_timeout:` and `server_failure_limit:` controls the tradeoff between resiliency to permanent and transient failures.
36
36
 
37
- Note that an ejected server will not be included in the hash ring for any requests until the retry timeout passes. This will lead to data partitioning as keys originally on the ejected server will now be written to a server still in the pool.
38
-
39
37
  To ensure that requests always succeed in the face of server ejections (`auto_eject_hosts:` is enabled), some form of retry must be implemented at the client layer since nutcracker itself does not retry a request. This client-side retry count must be greater than `server_failure_limit:` value, which ensures that the original request has a chance to make it to a live server.
40
38
 
41
39
  ## Timeout
@@ -54,7 +52,7 @@ By default, nutcracker waits indefinitely for any request sent to the server. Ho
54
52
 
55
53
  ## Error Response
56
54
 
57
- Whenever a request encounters failure on a server we usually send to the client a response with the general form - `SERVER_ERROR <errno description>\r\n` (memcached) or `-ERR <errno description>` (redis).
55
+ Whenever a request encounters failure on a server we usually send to the client a response with the general form - `SERVER_ERROR <errno description>\r\n` (memcached) or `-ERR <errno description>` (redis).
58
56
 
59
57
  For example, when a memcache server is down, this error response is usually:
60
58
 
@@ -74,7 +72,7 @@ All memory for incoming requests and outgoing responses is allocated in mbuf. Mb
74
72
  If nutcracker is meant to handle a large number of concurrent client connections, you should set the mbuf size to 512 or 1K bytes.
75
73
 
76
74
  ## Maximum Key Length
77
- The memcache ascii protocol [specification](notes/memcache.txt) limits the maximum length of the key to 250 characters. The key should not include whitespace, or '\r' or '\n' character. For redis, we have no such limitation. However, nutcracker requires the key to be stored in a contiguous memory region. Since all requests and responses in nutcracker are stored in mbuf, the maximum length of the redis key is limited by the size of the maximum available space for data in mbuf (mbuf_data_size()). This means that if you want your redis instances to handle large keys, you might want to choose large mbuf size set using -m or --mbuf-size=N command-line argument.
75
+ The memcache ascii protocol [specification](https://github.com/twitter/twemproxy/blob/master/notes/memcache.txt) limits the maximum length of the key to 250 characters. The key should not include whitespace, or '\r' or '\n' character. For redis, we have no such limitation. However, nutcracker requires the key to be stored in a contiguous memory region. Since all requests and responses in nutcracker are stored in mbuf, the maximum length of the redis key is limited by the size of the maximum available space for data in mbuf (mbuf_data_size()). This means that if you want your redis instances to handle large keys, you might want to choose large mbuf size set using -m or --mbuf-size=N command-line argument.
78
76
 
79
77
  ## Node Names for Consistent Hashing
80
78
 
@@ -118,20 +116,3 @@ For example, the configuration of server pool _beta_, aslo shown below, specifie
118
116
  - 127.0.0.1:6381:1 server2
119
117
  - 127.0.0.1:6382:1 server3
120
118
  - 127.0.0.1:6383:1 server4
121
-
122
-
123
- ## Graphing Cache-pool State
124
-
125
- When running nutcracker in production, you often would like to know the list of live and ejected servers at any given time. You can easily answer this question, by generating a time series graph of live and/or dead servers that are part of any cache pool. To do this your graphing client must collect the following stats exposed by nutcracker:
126
-
127
- - **server_eof** which is incremented when server closes the connection normally which should not happen because we use persistent connections.
128
- - **server_timedout** is incremented when the connection / request to server timedout.
129
- - **server_err** is incremented for any other kinds of errors.
130
-
131
- So, on a given server, the cumulative number of times a server is ejected can be computed as:
132
-
133
- ```c
134
- (server_err + server_timedout + server_eof) / server_failure_limit
135
- ```
136
-
137
- A diff of the above value between two successive time intervals would generate a nice timeseries graph for ejected servers.
@@ -7,7 +7,7 @@
7
7
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
8
8
  | DEL | Yes | DEL key [key …] |
9
9
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
10
- | DUMP | Yes | DUMP key |
10
+ | DUMP | No | DUMP key |
11
11
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
12
12
  | EXISTS | Yes | EXISTS key |
13
13
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
@@ -37,7 +37,7 @@
37
37
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
38
38
  | RENAMENX | No | RENAMENX key newkey |
39
39
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
40
- | RESTORE | Yes | RESTORE key ttl serialized-value |
40
+ | RESTORE | No | RESTORE key ttl serialized-value |
41
41
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
42
42
  | SORT | No | SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] |
43
43
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
@@ -168,7 +168,7 @@
168
168
  | RPUSHX | Yes | RPUSHX key value |
169
169
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
170
170
 
171
- * RPOPLPUSH support requires that source and destination keys hash to the same server. You can ensure this by using the same [hashtag](notes/recommendation.md#hash-tags) for source and destination key. Twemproxy does no checking on its end to verify that source and destination key hash to the same server, and the RPOPLPUSH command is forwarded to the server that the source key hashes to
171
+ * RPOPLPUSH support requires that source and destination keys hash to the same server. You can ensure this by using the same [hashtag](https://github.com/twitter/twemproxy/blob/master/notes/recommendation.md#hash-tags) for source and destination key. Twemproxy does no checking on its end to verify that source and destination key hash to the same server, and the RPOPLPUSH command is forwarded to the server that the source key hashes to
172
172
 
173
173
  ### Sets
174
174
 
@@ -204,7 +204,7 @@
204
204
  | SUNIONSTORE | Yes* | SUNIONSTORE destination key [key ...] |
205
205
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
206
206
 
207
- * SIDFF, SDIFFSTORE, SINTER, SINTERSTORE, SMOVE, SUNION and SUNIONSTORE support requires that the supplied keys hash to the same server. You can ensure this by using the same [hashtag](notes/recommendation.md#hash-tags) for all keys in the command. Twemproxy does no checking on its end to verify that all the keys hash to the same server, and the given command is forwarded to the server that the first key hashes to.
207
+ * SIDFF, SDIFFSTORE, SINTER, SINTERSTORE, SMOVE, SUNION and SUNIONSTORE support requires that the supplied keys hash to the same server. You can ensure this by using the same [hashtag](https://github.com/twitter/twemproxy/blob/master/notes/recommendation.md#hash-tags) for all keys in the command. Twemproxy does no checking on its end to verify that all the keys hash to the same server, and the given command is forwarded to the server that the first key hashes to.
208
208
 
209
209
 
210
210
  ### Sorted Sets
@@ -245,7 +245,7 @@
245
245
  | ZUNIONSTORE | Yes* | ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] |
246
246
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
247
247
 
248
- * ZINTERSTORE and ZUNIONSTORE support requires that the supplied keys hash to the same server. You can ensure this by using the same [hashtag](notes/recommendation.md#hash-tags) for all keys in the command. Twemproxy does no checking on its end to verify that all the keys hash to the same server, and the given command is forwarded to the server that the first key hashes to.
248
+ * ZINTERSTORE and ZUNIONSTORE support requires that the supplied keys hash to the same server. You can ensure this by using the same [hashtag](https://github.com/twitter/twemproxy/blob/master/notes/recommendation.md#hash-tags) for all keys in the command. Twemproxy does no checking on its end to verify that all the keys hash to the same server, and the given command is forwarded to the server that the first key hashes to.
249
249
 
250
250
 
251
251
  ### Pub/Sub
@@ -297,8 +297,8 @@
297
297
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
298
298
  | SCRIPT LOAD | No | SCRIPT LOAD script |
299
299
  +-------------------+------------+---------------------------------------------------------------------------------------------------------------------+
300
-
301
- * EVAL and EVALSHA support is limited to scripts that take at least 1 key. If multiple keys are used, all keys must hash to the same server. You can ensure this by using the same [hashtag](notes/recommendation.md#hash-tags) for all keys. If you use more than 1 key, the proxy does no checking to verify that all keys hash to the same server, and the entire command is forwarded to the server that the first key hashes to
300
+
301
+ * EVAL and EVALSHA support is limited to scripts that take at least 1 key. If multiple keys are used, all keys must hash to the same server. You can ensure this by using the same [hashtag](https://github.com/twitter/twemproxy/blob/master/notes/recommendation.md#hash-tags) for all keys. If you use more than 1 key, the proxy does no checking to verify that all keys hash to the same server, and the entire command is forwarded to the server that the first key hashes to
302
302
 
303
303
  ### Connection
304
304
 
@@ -383,7 +383,7 @@
383
383
 
384
384
  ### redis-benchmark against redis-server
385
385
 
386
- $ redis-benchmark -h <machine-A> -q -t set,get,incr,lpush,lpop,sadd,spop,lpush,lrange -c 100 -p 6379
386
+ $ redis-benchmark -h <machine-A> -q -t set,get,incr,lpush,lpop,sadd,spop,lpush,lrange -c 100 -p 6379
387
387
  SET: 89285.71 requests per second
388
388
  GET: 92592.59 requests per second
389
389
  INCR: 89285.71 requests per second
@@ -412,4 +412,4 @@
412
412
  LRANGE_300 (first 300 elements): 12376.24 requests per second
413
413
  LRANGE_500 (first 450 elements): 8605.85 requests per second
414
414
  LRANGE_600 (first 600 elements): 6587.62 requests per second
415
-
415
+
File without changes
File without changes
File without changes
File without changes
@@ -18,11 +18,6 @@ printf '*3\r\n$3\r\nset\r\n$3\r\nfoo\r\n$3\r\noof\r\n' | socat ${debug} ${timeou
18
18
  printf '*3\r\n$3\r\nset\r\n$3\r\nbar\r\n$3\r\nrab\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
19
19
  printf '*4\r\n$3\r\ndel\r\n$3\r\nfoo\r\n$3\r\nbar\r\n$6\r\nfoobar\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
20
20
 
21
- printf '\ndump\n'
22
- printf '*2\r\n$4\r\ndump\r\n$3\r\nfoo\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
23
- printf '*3\r\n$3\r\nset\r\n$3\r\nfoo\r\n$3\r\noof\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
24
- printf '*2\r\n$4\r\ndump\r\n$3\r\nfoo\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
25
-
26
21
  printf '\nexists\n'
27
22
  printf '*2\r\n$6\r\nexists\r\n$3\r\nfoo\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
28
23
  printf '*3\r\n$3\r\nset\r\n$3\r\nfoo\r\n$3\r\noof\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
@@ -51,10 +46,6 @@ printf '*3\r\n$7\r\npexpire\r\n$3\r\nfoo\r\n$1\r\n0\r\n' | socat ${debug} ${time
51
46
  printf '*3\r\n$3\r\nset\r\n$3\r\nfoo\r\n$3\r\noof\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
52
47
  printf '*3\r\n$7\r\npexpire\r\n$3\r\nfoo\r\n$1\r\n0\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
53
48
 
54
- printf '\nrestore\n'
55
- printf '*2\r\n$3\r\ndel\r\n$3\r\nfoo\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
56
- printf '*4\r\n$7\r\nrestore\r\n$3\r\nfoo\r\n$1\r\n0\r\n$3\r\noof\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
57
-
58
49
  printf '\npttl\n'
59
50
  printf '*2\r\n$4\r\npttl\r\n$3\r\nfoo\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
60
51
  printf '*3\r\n$3\r\nset\r\n$3\r\nfoo\r\n$3\r\noof\r\n' | socat ${debug} ${timeout} - TCP:localhost:${port},shut-close
@@ -29,7 +29,7 @@ nutcracker_SOURCES = \
29
29
  nc_request.c \
30
30
  nc_response.c \
31
31
  nc_mbuf.c nc_mbuf.h \
32
- nc_epoll.c nc_kqueue.c nc_event.h \
32
+ nc_event.c nc_event.h \
33
33
  nc_conf.c nc_conf.h \
34
34
  nc_stats.c nc_stats.h \
35
35
  nc_signal.c nc_signal.h \
@@ -1,8 +1,9 @@
1
- # Makefile.in generated by automake 1.10 from Makefile.am.
1
+ # Makefile.in generated by automake 1.11 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5
+ # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6
+ # Inc.
6
7
  # This Makefile.in is free software; the Free Software Foundation
7
8
  # gives unlimited permission to copy and/or distribute it,
8
9
  # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
16
17
 
17
18
  VPATH = @srcdir@
18
19
  pkgdatadir = $(datadir)/@PACKAGE@
19
- pkglibdir = $(libdir)/@PACKAGE@
20
20
  pkgincludedir = $(includedir)/@PACKAGE@
21
+ pkglibdir = $(libdir)/@PACKAGE@
22
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
21
23
  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
22
24
  install_sh_DATA = $(install_sh) -c -m 644
23
25
  install_sh_PROGRAM = $(install_sh) -c
@@ -45,24 +47,24 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
45
47
  mkinstalldirs = $(install_sh) -d
46
48
  CONFIG_HEADER = $(top_builddir)/config.h
47
49
  CONFIG_CLEAN_FILES =
50
+ CONFIG_CLEAN_VPATH_FILES =
48
51
  am__installdirs = "$(DESTDIR)$(bindir)"
49
- binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
50
52
  PROGRAMS = $(bin_PROGRAMS)
51
53
  am_nutcracker_OBJECTS = nc_core.$(OBJEXT) nc_connection.$(OBJEXT) \
52
54
  nc_client.$(OBJEXT) nc_server.$(OBJEXT) nc_proxy.$(OBJEXT) \
53
55
  nc_message.$(OBJEXT) nc_request.$(OBJEXT) \
54
- nc_response.$(OBJEXT) nc_mbuf.$(OBJEXT) nc_epoll.$(OBJEXT) \
55
- nc_kqueue.$(OBJEXT) nc_conf.$(OBJEXT) nc_stats.$(OBJEXT) \
56
- nc_signal.$(OBJEXT) nc_rbtree.$(OBJEXT) nc_log.$(OBJEXT) \
57
- nc_string.$(OBJEXT) nc_array.$(OBJEXT) nc_util.$(OBJEXT) \
58
- nc.$(OBJEXT)
56
+ nc_response.$(OBJEXT) nc_mbuf.$(OBJEXT) nc_event.$(OBJEXT) \
57
+ nc_conf.$(OBJEXT) nc_stats.$(OBJEXT) nc_signal.$(OBJEXT) \
58
+ nc_rbtree.$(OBJEXT) nc_log.$(OBJEXT) nc_string.$(OBJEXT) \
59
+ nc_array.$(OBJEXT) nc_util.$(OBJEXT) nc.$(OBJEXT)
59
60
  nutcracker_OBJECTS = $(am_nutcracker_OBJECTS)
60
61
  nutcracker_DEPENDENCIES = $(top_builddir)/src/hashkit/libhashkit.a \
61
62
  $(top_builddir)/src/proto/libproto.a \
62
63
  $(top_builddir)/contrib/yaml-0.1.4/src/.libs/libyaml.a
63
- DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
64
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
64
65
  depcomp = $(SHELL) $(top_srcdir)/config/depcomp
65
66
  am__depfiles_maybe = depfiles
67
+ am__mv = mv -f
66
68
  COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
67
69
  $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
68
70
  LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -83,10 +85,38 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
83
85
  ps-recursive uninstall-recursive
84
86
  RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
85
87
  distclean-recursive maintainer-clean-recursive
88
+ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
89
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
90
+ distdir
86
91
  ETAGS = etags
87
92
  CTAGS = ctags
88
93
  DIST_SUBDIRS = $(SUBDIRS)
89
94
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
95
+ am__relativize = \
96
+ dir0=`pwd`; \
97
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
98
+ sed_rest='s,^[^/]*/*,,'; \
99
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
100
+ sed_butlast='s,/*[^/]*$$,,'; \
101
+ while test -n "$$dir1"; do \
102
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
103
+ if test "$$first" != "."; then \
104
+ if test "$$first" = ".."; then \
105
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
106
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
107
+ else \
108
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
109
+ if test "$$first2" = "$$first"; then \
110
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
111
+ else \
112
+ dir2="../$$dir2"; \
113
+ fi; \
114
+ dir0="$$dir0"/"$$first"; \
115
+ fi; \
116
+ fi; \
117
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
118
+ done; \
119
+ reldir="$$dir2"
90
120
  ACLOCAL = @ACLOCAL@
91
121
  AMTAR = @AMTAR@
92
122
  AR = @AR@
@@ -187,6 +217,7 @@ libdir = @libdir@
187
217
  libexecdir = @libexecdir@
188
218
  localedir = @localedir@
189
219
  localstatedir = @localstatedir@
220
+ lt_ECHO = @lt_ECHO@
190
221
  mandir = @mandir@
191
222
  mkdir_p = @mkdir_p@
192
223
  oldincludedir = @oldincludedir@
@@ -224,7 +255,7 @@ nutcracker_SOURCES = \
224
255
  nc_request.c \
225
256
  nc_response.c \
226
257
  nc_mbuf.c nc_mbuf.h \
227
- nc_epoll.c nc_kqueue.c nc_event.h \
258
+ nc_event.c nc_event.h \
228
259
  nc_conf.c nc_conf.h \
229
260
  nc_stats.c nc_stats.h \
230
261
  nc_signal.c nc_signal.h \
@@ -247,14 +278,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
247
278
  @for dep in $?; do \
248
279
  case '$(am__configure_deps)' in \
249
280
  *$$dep*) \
250
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
251
- && exit 0; \
281
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
282
+ && { if test -f $@; then exit 0; else break; fi; }; \
252
283
  exit 1;; \
253
284
  esac; \
254
285
  done; \
255
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
256
- cd $(top_srcdir) && \
257
- $(AUTOMAKE) --foreign src/Makefile
286
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
287
+ $(am__cd) $(top_srcdir) && \
288
+ $(AUTOMAKE) --foreign src/Makefile
258
289
  .PRECIOUS: Makefile
259
290
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
260
291
  @case '$?' in \
@@ -272,34 +303,50 @@ $(top_srcdir)/configure: $(am__configure_deps)
272
303
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
273
304
  $(ACLOCAL_M4): $(am__aclocal_m4_deps)
274
305
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
306
+ $(am__aclocal_m4_deps):
275
307
  install-binPROGRAMS: $(bin_PROGRAMS)
276
308
  @$(NORMAL_INSTALL)
277
309
  test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
278
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
279
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
280
- if test -f $$p \
281
- || test -f $$p1 \
282
- ; then \
283
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
284
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
285
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
286
- else :; fi; \
287
- done
310
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
311
+ for p in $$list; do echo "$$p $$p"; done | \
312
+ sed 's/$(EXEEXT)$$//' | \
313
+ while read p p1; do if test -f $$p || test -f $$p1; \
314
+ then echo "$$p"; echo "$$p"; else :; fi; \
315
+ done | \
316
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
317
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
318
+ sed 'N;N;N;s,\n, ,g' | \
319
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
320
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
321
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
322
+ else { print "f", $$3 "/" $$4, $$1; } } \
323
+ END { for (d in files) print "f", d, files[d] }' | \
324
+ while read type dir files; do \
325
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
326
+ test -z "$$files" || { \
327
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
328
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
329
+ } \
330
+ ; done
288
331
 
289
332
  uninstall-binPROGRAMS:
290
333
  @$(NORMAL_UNINSTALL)
291
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
292
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
293
- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
294
- rm -f "$(DESTDIR)$(bindir)/$$f"; \
295
- done
334
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
335
+ files=`for p in $$list; do echo "$$p"; done | \
336
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
337
+ -e 's/$$/$(EXEEXT)/' `; \
338
+ test -n "$$list" || exit 0; \
339
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
340
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
296
341
 
297
342
  clean-binPROGRAMS:
298
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
299
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
300
- echo " rm -f $$p $$f"; \
301
- rm -f $$p $$f ; \
302
- done
343
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
344
+ echo " rm -f" $$list; \
345
+ rm -f $$list || exit $$?; \
346
+ test -n "$(EXEEXT)" || exit 0; \
347
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
348
+ echo " rm -f" $$list; \
349
+ rm -f $$list
303
350
  nutcracker$(EXEEXT): $(nutcracker_OBJECTS) $(nutcracker_DEPENDENCIES)
304
351
  @rm -f nutcracker$(EXEEXT)
305
352
  $(LINK) $(nutcracker_OBJECTS) $(nutcracker_LDADD) $(LIBS)
@@ -316,8 +363,7 @@ distclean-compile:
316
363
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_conf.Po@am__quote@
317
364
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_connection.Po@am__quote@
318
365
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_core.Po@am__quote@
319
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_epoll.Po@am__quote@
320
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_kqueue.Po@am__quote@
366
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_event.Po@am__quote@
321
367
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_log.Po@am__quote@
322
368
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_mbuf.Po@am__quote@
323
369
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_message.Po@am__quote@
@@ -333,21 +379,21 @@ distclean-compile:
333
379
 
334
380
  .c.o:
335
381
  @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
336
- @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
382
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
337
383
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
338
384
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
339
385
  @am__fastdepCC_FALSE@ $(COMPILE) -c $<
340
386
 
341
387
  .c.obj:
342
388
  @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
343
- @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
389
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
344
390
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
345
391
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
346
392
  @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
347
393
 
348
394
  .c.lo:
349
395
  @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
350
- @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
396
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
351
397
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
352
398
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
353
399
  @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
@@ -382,7 +428,7 @@ $(RECURSIVE_TARGETS):
382
428
  else \
383
429
  local_target="$$target"; \
384
430
  fi; \
385
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
431
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
386
432
  || eval $$failcom; \
387
433
  done; \
388
434
  if test "$$dot_seen" = "no"; then \
@@ -416,16 +462,16 @@ $(RECURSIVE_CLEAN_TARGETS):
416
462
  else \
417
463
  local_target="$$target"; \
418
464
  fi; \
419
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
465
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
420
466
  || eval $$failcom; \
421
467
  done && test -z "$$fail"
422
468
  tags-recursive:
423
469
  list='$(SUBDIRS)'; for subdir in $$list; do \
424
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
470
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
425
471
  done
426
472
  ctags-recursive:
427
473
  list='$(SUBDIRS)'; for subdir in $$list; do \
428
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
474
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
429
475
  done
430
476
 
431
477
  ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -433,14 +479,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
433
479
  unique=`for i in $$list; do \
434
480
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
435
481
  done | \
436
- $(AWK) ' { files[$$0] = 1; } \
437
- END { for (i in files) print i; }'`; \
482
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
483
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
438
484
  mkid -fID $$unique
439
485
  tags: TAGS
440
486
 
441
487
  TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
442
488
  $(TAGS_FILES) $(LISP)
443
- tags=; \
489
+ set x; \
444
490
  here=`pwd`; \
445
491
  if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
446
492
  include_option=--etags-include; \
@@ -452,39 +498,43 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
452
498
  list='$(SUBDIRS)'; for subdir in $$list; do \
453
499
  if test "$$subdir" = .; then :; else \
454
500
  test ! -f $$subdir/TAGS || \
455
- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
501
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
456
502
  fi; \
457
503
  done; \
458
504
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
459
505
  unique=`for i in $$list; do \
460
506
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
461
507
  done | \
462
- $(AWK) ' { files[$$0] = 1; } \
463
- END { for (i in files) print i; }'`; \
464
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
508
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
509
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
510
+ shift; \
511
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
465
512
  test -n "$$unique" || unique=$$empty_fix; \
466
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
467
- $$tags $$unique; \
513
+ if test $$# -gt 0; then \
514
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
515
+ "$$@" $$unique; \
516
+ else \
517
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
518
+ $$unique; \
519
+ fi; \
468
520
  fi
469
521
  ctags: CTAGS
470
522
  CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
471
523
  $(TAGS_FILES) $(LISP)
472
- tags=; \
473
- here=`pwd`; \
474
524
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
475
525
  unique=`for i in $$list; do \
476
526
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
477
527
  done | \
478
- $(AWK) ' { files[$$0] = 1; } \
479
- END { for (i in files) print i; }'`; \
480
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
528
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
529
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
530
+ test -z "$(CTAGS_ARGS)$$unique" \
481
531
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
482
- $$tags $$unique
532
+ $$unique
483
533
 
484
534
  GTAGS:
485
535
  here=`$(am__cd) $(top_builddir) && pwd` \
486
- && cd $(top_srcdir) \
487
- && gtags -i $(GTAGS_ARGS) $$here
536
+ && $(am__cd) $(top_srcdir) \
537
+ && gtags -i $(GTAGS_ARGS) "$$here"
488
538
 
489
539
  distclean-tags:
490
540
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -505,29 +555,44 @@ distdir: $(DISTFILES)
505
555
  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
506
556
  if test -d $$d/$$file; then \
507
557
  dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
558
+ if test -d "$(distdir)/$$file"; then \
559
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
560
+ fi; \
508
561
  if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
509
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
562
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
563
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
510
564
  fi; \
511
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
565
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
512
566
  else \
513
- test -f $(distdir)/$$file \
514
- || cp -p $$d/$$file $(distdir)/$$file \
567
+ test -f "$(distdir)/$$file" \
568
+ || cp -p $$d/$$file "$(distdir)/$$file" \
515
569
  || exit 1; \
516
570
  fi; \
517
571
  done
518
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
572
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
519
573
  if test "$$subdir" = .; then :; else \
520
574
  test -d "$(distdir)/$$subdir" \
521
575
  || $(MKDIR_P) "$(distdir)/$$subdir" \
522
576
  || exit 1; \
523
- distdir=`$(am__cd) $(distdir) && pwd`; \
524
- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
525
- (cd $$subdir && \
577
+ fi; \
578
+ done
579
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
580
+ if test "$$subdir" = .; then :; else \
581
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
582
+ $(am__relativize); \
583
+ new_distdir=$$reldir; \
584
+ dir1=$$subdir; dir2="$(top_distdir)"; \
585
+ $(am__relativize); \
586
+ new_top_distdir=$$reldir; \
587
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
588
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
589
+ ($(am__cd) $$subdir && \
526
590
  $(MAKE) $(AM_MAKEFLAGS) \
527
- top_distdir="$$top_distdir" \
528
- distdir="$$distdir/$$subdir" \
591
+ top_distdir="$$new_top_distdir" \
592
+ distdir="$$new_distdir" \
529
593
  am__remove_distdir=: \
530
594
  am__skip_length_check=: \
595
+ am__skip_mode_fix=: \
531
596
  distdir) \
532
597
  || exit 1; \
533
598
  fi; \
@@ -560,6 +625,7 @@ clean-generic:
560
625
 
561
626
  distclean-generic:
562
627
  -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
628
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
563
629
 
564
630
  maintainer-clean-generic:
565
631
  @echo "This command is intended for maintainers to use"
@@ -581,6 +647,8 @@ dvi-am:
581
647
 
582
648
  html: html-recursive
583
649
 
650
+ html-am:
651
+
584
652
  info: info-recursive
585
653
 
586
654
  info-am:
@@ -589,18 +657,28 @@ install-data-am:
589
657
 
590
658
  install-dvi: install-dvi-recursive
591
659
 
660
+ install-dvi-am:
661
+
592
662
  install-exec-am: install-binPROGRAMS
593
663
 
594
664
  install-html: install-html-recursive
595
665
 
666
+ install-html-am:
667
+
596
668
  install-info: install-info-recursive
597
669
 
670
+ install-info-am:
671
+
598
672
  install-man:
599
673
 
600
674
  install-pdf: install-pdf-recursive
601
675
 
676
+ install-pdf-am:
677
+
602
678
  install-ps: install-ps-recursive
603
679
 
680
+ install-ps-am:
681
+
604
682
  installcheck-am:
605
683
 
606
684
  maintainer-clean: maintainer-clean-recursive
@@ -623,8 +701,8 @@ ps-am:
623
701
 
624
702
  uninstall-am: uninstall-binPROGRAMS
625
703
 
626
- .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
627
- install-strip
704
+ .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
705
+ install-am install-strip tags-recursive
628
706
 
629
707
  .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
630
708
  all all-am check check-am clean clean-binPROGRAMS \
@@ -642,6 +720,7 @@ uninstall-am: uninstall-binPROGRAMS
642
720
  tags tags-recursive uninstall uninstall-am \
643
721
  uninstall-binPROGRAMS
644
722
 
723
+
645
724
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
646
725
  # Otherwise a system limit (for SysV at least) may be exceeded.
647
726
  .NOEXPORT: