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
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -71,7 +71,6 @@ typedef enum msg_type {
71
71
  MSG_REQ_REDIS_BITCOUNT,
72
72
  MSG_REQ_REDIS_DECR,
73
73
  MSG_REQ_REDIS_DECRBY,
74
- MSG_REQ_REDIS_DUMP,
75
74
  MSG_REQ_REDIS_GET,
76
75
  MSG_REQ_REDIS_GETBIT,
77
76
  MSG_REQ_REDIS_GETRANGE,
@@ -81,7 +80,6 @@ typedef enum msg_type {
81
80
  MSG_REQ_REDIS_INCRBYFLOAT,
82
81
  MSG_REQ_REDIS_MGET,
83
82
  MSG_REQ_REDIS_PSETEX,
84
- MSG_REQ_REDIS_RESTORE,
85
83
  MSG_REQ_REDIS_SET,
86
84
  MSG_REQ_REDIS_SETBIT,
87
85
  MSG_REQ_REDIS_SETEX,
@@ -163,18 +163,18 @@ proxy_listen(struct context *ctx, struct conn *p)
163
163
  return NC_ERROR;
164
164
  }
165
165
 
166
- status = event_add_conn(ctx->evb, p);
166
+ status = event_add_conn(ctx->ep, p);
167
167
  if (status < 0) {
168
- log_error("event add conn p %d on addr '%.*s' failed: %s",
169
- p->sd, pool->addrstr.len, pool->addrstr.data,
168
+ log_error("event add conn e %d p %d on addr '%.*s' failed: %s",
169
+ ctx->ep, p->sd, pool->addrstr.len, pool->addrstr.data,
170
170
  strerror(errno));
171
171
  return NC_ERROR;
172
172
  }
173
173
 
174
- status = event_del_out(ctx->evb, p);
174
+ status = event_del_out(ctx->ep, p);
175
175
  if (status < 0) {
176
- log_error("event del out p %d on addr '%.*s' failed: %s",
177
- p->sd, pool->addrstr.len, pool->addrstr.data,
176
+ log_error("event del out e %d p %d on addr '%.*s' failed: %s",
177
+ ctx->ep, p->sd, pool->addrstr.len, pool->addrstr.data,
178
178
  strerror(errno));
179
179
  return NC_ERROR;
180
180
  }
@@ -325,9 +325,9 @@ proxy_accept(struct context *ctx, struct conn *p)
325
325
  }
326
326
  }
327
327
 
328
- status = event_add_conn(ctx->evb, c);
328
+ status = event_add_conn(ctx->ep, c);
329
329
  if (status < 0) {
330
- log_error("event add conn from p %d failed: %s", p->sd,
330
+ log_error("event add conn of c %d from p %d failed: %s", c->sd, p->sd,
331
331
  strerror(errno));
332
332
  c->close(ctx, c);
333
333
  return status;
File without changes
File without changes
File without changes
File without changes
@@ -413,7 +413,7 @@ req_forward_error(struct context *ctx, struct conn *conn, struct msg *msg)
413
413
  }
414
414
 
415
415
  if (req_done(conn, TAILQ_FIRST(&conn->omsg_q))) {
416
- status = event_add_out(ctx->evb, conn);
416
+ status = event_add_out(ctx->ep, conn);
417
417
  if (status != NC_OK) {
418
418
  conn->err = errno;
419
419
  }
@@ -482,7 +482,7 @@ req_forward(struct context *ctx, struct conn *c_conn, struct msg *msg)
482
482
 
483
483
  /* enqueue the message (request) into server inq */
484
484
  if (TAILQ_EMPTY(&s_conn->imsg_q)) {
485
- status = event_add_out(ctx->evb, s_conn);
485
+ status = event_add_out(ctx->ep, s_conn);
486
486
  if (status != NC_OK) {
487
487
  req_forward_error(ctx, c_conn, msg);
488
488
  s_conn->err = errno;
@@ -533,7 +533,7 @@ req_send_next(struct context *ctx, struct conn *conn)
533
533
  nmsg = TAILQ_FIRST(&conn->imsg_q);
534
534
  if (nmsg == NULL) {
535
535
  /* nothing to send as the server inq is empty */
536
- status = event_del_out(ctx->evb, conn);
536
+ status = event_del_out(ctx->ep, conn);
537
537
  if (status != NC_OK) {
538
538
  conn->err = errno;
539
539
  }
@@ -157,9 +157,11 @@ rsp_filter(struct context *ctx, struct conn *conn, struct msg *msg)
157
157
 
158
158
  pmsg = TAILQ_FIRST(&conn->omsg_q);
159
159
  if (pmsg == NULL) {
160
- log_debug(LOG_ERR, "filter stray rsp %"PRIu64" len %"PRIu32" on s %d",
161
- msg->id, msg->mlen, conn->sd);
160
+ log_error("filter stray rsp %"PRIu64" len %"PRIu32" on s %d", msg->id,
161
+ msg->mlen, conn->sd);
162
162
  rsp_put(msg);
163
+ errno = EINVAL;
164
+ conn->err = errno;
163
165
  return true;
164
166
  }
165
167
  ASSERT(pmsg->peer == NULL);
@@ -220,7 +222,7 @@ rsp_forward(struct context *ctx, struct conn *s_conn, struct msg *msg)
220
222
  ASSERT(c_conn->client && !c_conn->proxy);
221
223
 
222
224
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
223
- status = event_add_out(ctx->evb, c_conn);
225
+ status = event_add_out(ctx->ep, c_conn);
224
226
  if (status != NC_OK) {
225
227
  c_conn->err = errno;
226
228
  }
@@ -265,7 +267,7 @@ rsp_send_next(struct context *ctx, struct conn *conn)
265
267
  log_debug(LOG_INFO, "c %d is done", conn->sd);
266
268
  }
267
269
 
268
- status = event_del_out(ctx->evb, conn);
270
+ status = event_del_out(ctx->ep, conn);
269
271
  if (status != NC_OK) {
270
272
  conn->err = errno;
271
273
  }
@@ -367,7 +367,7 @@ server_close(struct context *ctx, struct conn *conn)
367
367
  msg->err = conn->err;
368
368
 
369
369
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
370
- event_add_out(ctx->evb, msg->owner);
370
+ event_add_out(ctx->ep, msg->owner);
371
371
  }
372
372
 
373
373
  log_debug(LOG_INFO, "close s %d schedule error for req %"PRIu64" "
@@ -397,7 +397,7 @@ server_close(struct context *ctx, struct conn *conn)
397
397
  msg->err = conn->err;
398
398
 
399
399
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
400
- event_add_out(ctx->evb, msg->owner);
400
+ event_add_out(ctx->ep, msg->owner);
401
401
  }
402
402
 
403
403
  log_debug(LOG_INFO, "close s %d schedule error for req %"PRIu64" "
@@ -451,7 +451,7 @@ server_connect(struct context *ctx, struct server *server, struct conn *conn)
451
451
  log_debug(LOG_VVERB, "connect to server '%.*s'", server->pname.len,
452
452
  server->pname.data);
453
453
 
454
- conn->sd = socket(conn->family, SOCK_STREAM, 0);
454
+ conn->sd = socket(conn->family, SOCK_STREAM, 0);
455
455
  if (conn->sd < 0) {
456
456
  log_error("socket for server '%.*s' failed: %s", server->pname.len,
457
457
  server->pname.data, strerror(errno));
@@ -467,26 +467,24 @@ server_connect(struct context *ctx, struct server *server, struct conn *conn)
467
467
  goto error;
468
468
  }
469
469
 
470
- if (server->pname.data[0] != '/') {
471
- status = nc_set_tcpnodelay(conn->sd);
472
- if (status != NC_OK) {
473
- log_warn("set tcpnodelay on s %d for server '%.*s' failed, ignored: %s",
474
- conn->sd, server->pname.len, server->pname.data,
475
- strerror(errno));
476
- }
470
+ status = nc_set_tcpnodelay(conn->sd);
471
+ if (status != NC_OK) {
472
+ log_warn("set tcpnodelay on s %d for server '%.*s' failed, ignored: %s",
473
+ conn->sd, server->pname.len, server->pname.data,
474
+ strerror(errno));
477
475
  }
478
476
 
479
- status = event_add_conn(ctx->evb, conn);
477
+ status = event_add_conn(ctx->ep, conn);
480
478
  if (status != NC_OK) {
481
- log_error("event add conn s %d for server '%.*s' failed: %s",
482
- conn->sd, server->pname.len, server->pname.data,
479
+ log_error("event add conn e %d s %d for server '%.*s' failed: %s",
480
+ ctx->ep, conn->sd, server->pname.len, server->pname.data,
483
481
  strerror(errno));
484
482
  goto error;
485
483
  }
486
484
 
487
485
  ASSERT(!conn->connecting && !conn->connected);
488
486
 
489
- status = connect(conn->sd, conn->addr, conn->addrlen);
487
+ status = connect(conn->sd, conn->addr, conn->addrlen);
490
488
  if (status != NC_OK) {
491
489
  if (errno == EINPROGRESS) {
492
490
  conn->connecting = 1;
File without changes
File without changes
File without changes
@@ -21,11 +21,11 @@
21
21
 
22
22
  #include <sys/types.h>
23
23
  #include <sys/socket.h>
24
+ #include <sys/epoll.h>
24
25
  #include <netinet/in.h>
25
26
 
26
27
  #include <nc_core.h>
27
28
  #include <nc_server.h>
28
- #include <nc_event.h>
29
29
 
30
30
  struct stats_desc {
31
31
  char *name; /* stats name */
@@ -777,7 +777,15 @@ stats_loop(void *arg)
777
777
  int n;
778
778
 
779
779
  for (;;) {
780
- n = event_wait(st->st_evb, st->interval);
780
+ n = epoll_wait(st->ep, &st->event, 1, st->interval);
781
+ if (n < 0) {
782
+ if (errno == EINTR) {
783
+ continue;
784
+ }
785
+ log_error("epoll wait on e %d with event m %d failed: %s",
786
+ st->ep, st->sd, strerror(errno));
787
+ break;
788
+ }
781
789
 
782
790
  /* aggregate stats from shadow (b) -> sum (c) */
783
791
  stats_aggregate(st);
@@ -839,6 +847,7 @@ static rstatus_t
839
847
  stats_start_aggregator(struct stats *st)
840
848
  {
841
849
  rstatus_t status;
850
+ struct epoll_event ev;
842
851
 
843
852
  if (!stats_enabled) {
844
853
  return NC_OK;
@@ -849,28 +858,25 @@ stats_start_aggregator(struct stats *st)
849
858
  return status;
850
859
  }
851
860
 
852
- st->st_evb = evbase_create(1, NULL);
853
- if (st->st_evb == NULL) {
854
- log_error("stats aggregator create failed: %s", strerror(errno));
861
+ st->ep = epoll_create(10);
862
+ if (st->ep < 0) {
863
+ log_error("epoll create failed: %s", strerror(errno));
855
864
  return NC_ERROR;
856
865
  }
857
866
 
858
- ASSERT(st->st_evb != NULL);
859
- ASSERT(st->sd >= 0);
867
+ ev.data.fd = st->sd;
868
+ ev.events = EPOLLIN;
860
869
 
861
- status = event_add_st(st->st_evb, st->sd);
870
+ status = epoll_ctl(st->ep, EPOLL_CTL_ADD, st->sd, &ev);
862
871
  if (status < 0) {
863
- log_error("stats aggregator create failed: %s", strerror(errno));
864
- evbase_destroy(st->st_evb);
865
- st->st_evb = NULL;
872
+ log_error("epoll ctl on e %d sd %d failed: %s", st->ep, st->sd,
873
+ strerror(errno));
866
874
  return NC_ERROR;
867
875
  }
868
876
 
869
877
  status = pthread_create(&st->tid, NULL, stats_loop, st);
870
878
  if (status < 0) {
871
879
  log_error("stats aggregator create failed: %s", strerror(status));
872
- evbase_destroy(st->st_evb);
873
- st->st_evb = NULL;
874
880
  return NC_ERROR;
875
881
  }
876
882
 
@@ -885,8 +891,7 @@ stats_stop_aggregator(struct stats *st)
885
891
  }
886
892
 
887
893
  close(st->sd);
888
- evbase_destroy(st->st_evb);
889
- st->st_evb = NULL;
894
+ close(st->ep);
890
895
  }
891
896
 
892
897
  struct stats *
@@ -916,7 +921,7 @@ stats_create(uint16_t stats_port, char *stats_ip, int stats_interval,
916
921
  array_null(&st->sum);
917
922
 
918
923
  st->tid = (pthread_t) -1;
919
- st->st_evb = NULL;
924
+ st->ep = -1;
920
925
  st->sd = -1;
921
926
 
922
927
  string_set_text(&st->service_str, "service");
@@ -18,8 +18,9 @@
18
18
  #ifndef _NC_STATS_H_
19
19
  #define _NC_STATS_H_
20
20
 
21
+ #include <sys/epoll.h>
22
+
21
23
  #include <nc_core.h>
22
- #include <nc_event.h>
23
24
 
24
25
  #define STATS_POOL_CODEC(ACTION) \
25
26
  /* client behavior */ \
@@ -100,8 +101,8 @@ struct stats {
100
101
 
101
102
  pthread_t tid; /* stats aggregator thread */
102
103
  int sd; /* stats descriptor */
103
-
104
- struct evbase *st_evb;
104
+ int ep; /* epoll device */
105
+ struct epoll_event event; /* epoll event */
105
106
 
106
107
  struct string service_str; /* service string */
107
108
  struct string service; /* service */
File without changes
File without changes
@@ -22,10 +22,7 @@
22
22
  #include <unistd.h>
23
23
  #include <fcntl.h>
24
24
  #include <netdb.h>
25
-
26
- #ifdef NC_HAVE_BACKTRACE
27
25
  #include <execinfo.h>
28
- #endif
29
26
 
30
27
  #include <sys/time.h>
31
28
  #include <sys/types.h>
@@ -278,7 +275,6 @@ _nc_free(void *ptr, const char *name, int line)
278
275
  void
279
276
  nc_stacktrace(int skip_count)
280
277
  {
281
- #ifdef NC_HAVE_BACKTRACE
282
278
  void *stack[64];
283
279
  char **symbols;
284
280
  int size, i, j;
@@ -296,7 +292,6 @@ nc_stacktrace(int skip_count)
296
292
  }
297
293
 
298
294
  free(symbols);
299
- #endif
300
295
  }
301
296
 
302
297
  void
@@ -622,14 +617,3 @@ nc_unresolve_desc(int sd)
622
617
 
623
618
  return nc_unresolve_addr(addr, addrlen);
624
619
  }
625
-
626
- struct timespec
627
- nc_millisec_to_timespec (int n_millisec)
628
- {
629
- struct timeval tv = {n_millisec/1000LL, (n_millisec%1000LL)*1000LL};
630
- struct timespec ts;
631
-
632
- TIMEVAL_TO_TIMESPEC(&tv, &ts);
633
-
634
- return ts;
635
- }
@@ -190,7 +190,6 @@ int _scnprintf(char *buf, size_t size, const char *fmt, ...);
190
190
  int _vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
191
191
  int64_t nc_usec_now(void);
192
192
  int64_t nc_msec_now(void);
193
- struct timespec nc_millisec_to_timespec(int millisec);
194
193
 
195
194
  /*
196
195
  * Address resolution for internet (ipv4 and ipv6) and unix domain
File without changes
@@ -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.
@@ -17,8 +18,9 @@
17
18
 
18
19
  VPATH = @srcdir@
19
20
  pkgdatadir = $(datadir)/@PACKAGE@
20
- pkglibdir = $(libdir)/@PACKAGE@
21
21
  pkgincludedir = $(includedir)/@PACKAGE@
22
+ pkglibdir = $(libdir)/@PACKAGE@
23
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
22
24
  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23
25
  install_sh_DATA = $(install_sh) -c -m 644
24
26
  install_sh_PROGRAM = $(install_sh) -c
@@ -46,15 +48,17 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
46
48
  mkinstalldirs = $(install_sh) -d
47
49
  CONFIG_HEADER = $(top_builddir)/config.h
48
50
  CONFIG_CLEAN_FILES =
51
+ CONFIG_CLEAN_VPATH_FILES =
49
52
  LIBRARIES = $(noinst_LIBRARIES)
50
53
  ARFLAGS = cru
51
54
  libproto_a_AR = $(AR) $(ARFLAGS)
52
55
  libproto_a_LIBADD =
53
56
  am_libproto_a_OBJECTS = nc_memcache.$(OBJEXT) nc_redis.$(OBJEXT)
54
57
  libproto_a_OBJECTS = $(am_libproto_a_OBJECTS)
55
- DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
58
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
56
59
  depcomp = $(SHELL) $(top_srcdir)/config/depcomp
57
60
  am__depfiles_maybe = depfiles
61
+ am__mv = mv -f
58
62
  COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
59
63
  $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
60
64
  LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -170,6 +174,7 @@ libdir = @libdir@
170
174
  libexecdir = @libexecdir@
171
175
  localedir = @localedir@
172
176
  localstatedir = @localstatedir@
177
+ lt_ECHO = @lt_ECHO@
173
178
  mandir = @mandir@
174
179
  mkdir_p = @mkdir_p@
175
180
  oldincludedir = @oldincludedir@
@@ -203,14 +208,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
203
208
  @for dep in $?; do \
204
209
  case '$(am__configure_deps)' in \
205
210
  *$$dep*) \
206
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
207
- && exit 0; \
211
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
212
+ && { if test -f $@; then exit 0; else break; fi; }; \
208
213
  exit 1;; \
209
214
  esac; \
210
215
  done; \
211
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/proto/Makefile'; \
212
- cd $(top_srcdir) && \
213
- $(AUTOMAKE) --foreign src/proto/Makefile
216
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/proto/Makefile'; \
217
+ $(am__cd) $(top_srcdir) && \
218
+ $(AUTOMAKE) --foreign src/proto/Makefile
214
219
  .PRECIOUS: Makefile
215
220
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
216
221
  @case '$?' in \
@@ -228,6 +233,7 @@ $(top_srcdir)/configure: $(am__configure_deps)
228
233
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
229
234
  $(ACLOCAL_M4): $(am__aclocal_m4_deps)
230
235
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
236
+ $(am__aclocal_m4_deps):
231
237
 
232
238
  clean-noinstLIBRARIES:
233
239
  -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
@@ -247,21 +253,21 @@ distclean-compile:
247
253
 
248
254
  .c.o:
249
255
  @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
250
- @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
256
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
251
257
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
252
258
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
253
259
  @am__fastdepCC_FALSE@ $(COMPILE) -c $<
254
260
 
255
261
  .c.obj:
256
262
  @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
257
- @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
263
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
258
264
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
259
265
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
260
266
  @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
261
267
 
262
268
  .c.lo:
263
269
  @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
264
- @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
270
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
265
271
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
266
272
  @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
267
273
  @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
@@ -277,45 +283,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
277
283
  unique=`for i in $$list; do \
278
284
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
279
285
  done | \
280
- $(AWK) ' { files[$$0] = 1; } \
281
- END { for (i in files) print i; }'`; \
286
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
287
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
282
288
  mkid -fID $$unique
283
289
  tags: TAGS
284
290
 
285
291
  TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
286
292
  $(TAGS_FILES) $(LISP)
287
- tags=; \
293
+ set x; \
288
294
  here=`pwd`; \
289
295
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
290
296
  unique=`for i in $$list; do \
291
297
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
292
298
  done | \
293
- $(AWK) ' { files[$$0] = 1; } \
294
- END { for (i in files) print i; }'`; \
295
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
299
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
300
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
301
+ shift; \
302
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
296
303
  test -n "$$unique" || unique=$$empty_fix; \
297
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
298
- $$tags $$unique; \
304
+ if test $$# -gt 0; then \
305
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
306
+ "$$@" $$unique; \
307
+ else \
308
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
309
+ $$unique; \
310
+ fi; \
299
311
  fi
300
312
  ctags: CTAGS
301
313
  CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
302
314
  $(TAGS_FILES) $(LISP)
303
- tags=; \
304
- here=`pwd`; \
305
315
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
306
316
  unique=`for i in $$list; do \
307
317
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
308
318
  done | \
309
- $(AWK) ' { files[$$0] = 1; } \
310
- END { for (i in files) print i; }'`; \
311
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
319
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
320
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
321
+ test -z "$(CTAGS_ARGS)$$unique" \
312
322
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
313
- $$tags $$unique
323
+ $$unique
314
324
 
315
325
  GTAGS:
316
326
  here=`$(am__cd) $(top_builddir) && pwd` \
317
- && cd $(top_srcdir) \
318
- && gtags -i $(GTAGS_ARGS) $$here
327
+ && $(am__cd) $(top_srcdir) \
328
+ && gtags -i $(GTAGS_ARGS) "$$here"
319
329
 
320
330
  distclean-tags:
321
331
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -336,13 +346,17 @@ distdir: $(DISTFILES)
336
346
  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
337
347
  if test -d $$d/$$file; then \
338
348
  dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
349
+ if test -d "$(distdir)/$$file"; then \
350
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
351
+ fi; \
339
352
  if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
340
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
353
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
354
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
341
355
  fi; \
342
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
356
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
343
357
  else \
344
- test -f $(distdir)/$$file \
345
- || cp -p $$d/$$file $(distdir)/$$file \
358
+ test -f "$(distdir)/$$file" \
359
+ || cp -p $$d/$$file "$(distdir)/$$file" \
346
360
  || exit 1; \
347
361
  fi; \
348
362
  done
@@ -370,6 +384,7 @@ clean-generic:
370
384
 
371
385
  distclean-generic:
372
386
  -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
387
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
373
388
 
374
389
  maintainer-clean-generic:
375
390
  @echo "This command is intended for maintainers to use"
@@ -392,6 +407,8 @@ dvi-am:
392
407
 
393
408
  html: html-am
394
409
 
410
+ html-am:
411
+
395
412
  info: info-am
396
413
 
397
414
  info-am:
@@ -400,18 +417,28 @@ install-data-am:
400
417
 
401
418
  install-dvi: install-dvi-am
402
419
 
420
+ install-dvi-am:
421
+
403
422
  install-exec-am:
404
423
 
405
424
  install-html: install-html-am
406
425
 
426
+ install-html-am:
427
+
407
428
  install-info: install-info-am
408
429
 
430
+ install-info-am:
431
+
409
432
  install-man:
410
433
 
411
434
  install-pdf: install-pdf-am
412
435
 
436
+ install-pdf-am:
437
+
413
438
  install-ps: install-ps-am
414
439
 
440
+ install-ps-am:
441
+
415
442
  installcheck-am:
416
443
 
417
444
  maintainer-clean: maintainer-clean-am
@@ -449,6 +476,7 @@ uninstall-am:
449
476
  mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
450
477
  pdf pdf-am ps ps-am tags uninstall uninstall-am
451
478
 
479
+
452
480
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
453
481
  # Otherwise a system limit (for SysV at least) may be exceeded.
454
482
  .NOEXPORT: