nutcracker 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. data/README.md +22 -0
  2. data/Rakefile +55 -0
  3. data/bin/nutcracker +2 -0
  4. data/ext/nutcracker/ChangeLog +66 -0
  5. data/ext/nutcracker/LICENSE +177 -0
  6. data/ext/nutcracker/Makefile.am +7 -0
  7. data/ext/nutcracker/Makefile.in +726 -0
  8. data/ext/nutcracker/NOTICE +124 -0
  9. data/ext/nutcracker/README.md +240 -0
  10. data/ext/nutcracker/aclocal.m4 +956 -0
  11. data/ext/nutcracker/conf/nutcracker.leaf.yml +10 -0
  12. data/ext/nutcracker/conf/nutcracker.root.yml +8 -0
  13. data/ext/nutcracker/conf/nutcracker.yml +67 -0
  14. data/ext/nutcracker/config.h.in +316 -0
  15. data/ext/nutcracker/config/config.guess +1561 -0
  16. data/ext/nutcracker/config/config.sub +1686 -0
  17. data/ext/nutcracker/config/depcomp +630 -0
  18. data/ext/nutcracker/config/install-sh +520 -0
  19. data/ext/nutcracker/config/ltmain.sh +8413 -0
  20. data/ext/nutcracker/config/missing +376 -0
  21. data/ext/nutcracker/configure +18862 -0
  22. data/ext/nutcracker/configure.ac +155 -0
  23. data/ext/nutcracker/contrib/Makefile.am +3 -0
  24. data/ext/nutcracker/contrib/Makefile.in +560 -0
  25. data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
  26. data/ext/nutcracker/contrib/yaml-0.1.4/LICENSE +19 -0
  27. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.am +20 -0
  28. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.in +736 -0
  29. data/ext/nutcracker/contrib/yaml-0.1.4/README +27 -0
  30. data/ext/nutcracker/contrib/yaml-0.1.4/aclocal.m4 +956 -0
  31. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in +80 -0
  32. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.guess +1561 -0
  33. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.sub +1686 -0
  34. data/ext/nutcracker/contrib/yaml-0.1.4/config/depcomp +630 -0
  35. data/ext/nutcracker/contrib/yaml-0.1.4/config/install-sh +520 -0
  36. data/ext/nutcracker/contrib/yaml-0.1.4/config/ltmain.sh +8406 -0
  37. data/ext/nutcracker/contrib/yaml-0.1.4/config/missing +376 -0
  38. data/ext/nutcracker/contrib/yaml-0.1.4/configure +13085 -0
  39. data/ext/nutcracker/contrib/yaml-0.1.4/configure.ac +75 -0
  40. data/ext/nutcracker/contrib/yaml-0.1.4/doc/doxygen.cfg +222 -0
  41. data/ext/nutcracker/contrib/yaml-0.1.4/include/yaml.h +1971 -0
  42. data/ext/nutcracker/contrib/yaml-0.1.4/m4/libtool.m4 +7357 -0
  43. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltoptions.m4 +368 -0
  44. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltsugar.m4 +123 -0
  45. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltversion.m4 +23 -0
  46. data/ext/nutcracker/contrib/yaml-0.1.4/m4/lt~obsolete.m4 +92 -0
  47. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.am +4 -0
  48. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.in +484 -0
  49. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.c +1392 -0
  50. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.c +394 -0
  51. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.c +2329 -0
  52. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.c +432 -0
  53. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.c +1374 -0
  54. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.c +465 -0
  55. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.c +3570 -0
  56. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.c +141 -0
  57. data/ext/nutcracker/contrib/yaml-0.1.4/src/yaml_private.h +640 -0
  58. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.am +8 -0
  59. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.in +675 -0
  60. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.c +800 -0
  61. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.c +1130 -0
  62. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.c +217 -0
  63. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.c +202 -0
  64. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.c +311 -0
  65. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.c +327 -0
  66. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.c +63 -0
  67. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.c +63 -0
  68. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.c +63 -0
  69. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-reader.c +354 -0
  70. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-version.c +29 -0
  71. data/ext/nutcracker/extconf.rb +5 -0
  72. data/ext/nutcracker/m4/libtool.m4 +7376 -0
  73. data/ext/nutcracker/m4/ltoptions.m4 +368 -0
  74. data/ext/nutcracker/m4/ltsugar.m4 +123 -0
  75. data/ext/nutcracker/m4/ltversion.m4 +23 -0
  76. data/ext/nutcracker/m4/lt~obsolete.m4 +92 -0
  77. data/ext/nutcracker/notes/c-styleguide.txt +425 -0
  78. data/ext/nutcracker/notes/debug.txt +96 -0
  79. data/ext/nutcracker/notes/memcache.txt +123 -0
  80. data/ext/nutcracker/notes/recommendation.md +118 -0
  81. data/ext/nutcracker/notes/redis.md +415 -0
  82. data/ext/nutcracker/notes/socket.txt +131 -0
  83. data/ext/nutcracker/scripts/multi_get.sh +26 -0
  84. data/ext/nutcracker/scripts/nutcracker.init +73 -0
  85. data/ext/nutcracker/scripts/nutcracker.spec +52 -0
  86. data/ext/nutcracker/scripts/pipelined_read.sh +23 -0
  87. data/ext/nutcracker/scripts/pipelined_write.sh +29 -0
  88. data/ext/nutcracker/scripts/populate_memcached.sh +24 -0
  89. data/ext/nutcracker/scripts/redis-check.py +23 -0
  90. data/ext/nutcracker/scripts/redis-check.sh +564 -0
  91. data/ext/nutcracker/src/Makefile.am +46 -0
  92. data/ext/nutcracker/src/Makefile.in +726 -0
  93. data/ext/nutcracker/src/hashkit/Makefile.am +22 -0
  94. data/ext/nutcracker/src/hashkit/Makefile.in +501 -0
  95. data/ext/nutcracker/src/hashkit/nc_crc32.c +105 -0
  96. data/ext/nutcracker/src/hashkit/nc_fnv.c +82 -0
  97. data/ext/nutcracker/src/hashkit/nc_hashkit.h +74 -0
  98. data/ext/nutcracker/src/hashkit/nc_hsieh.c +93 -0
  99. data/ext/nutcracker/src/hashkit/nc_jenkins.c +230 -0
  100. data/ext/nutcracker/src/hashkit/nc_ketama.c +240 -0
  101. data/ext/nutcracker/src/hashkit/nc_md5.c +379 -0
  102. data/ext/nutcracker/src/hashkit/nc_modula.c +144 -0
  103. data/ext/nutcracker/src/hashkit/nc_murmur.c +99 -0
  104. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +51 -0
  105. data/ext/nutcracker/src/hashkit/nc_random.c +146 -0
  106. data/ext/nutcracker/src/nc.c +573 -0
  107. data/ext/nutcracker/src/nc_array.c +204 -0
  108. data/ext/nutcracker/src/nc_array.h +73 -0
  109. data/ext/nutcracker/src/nc_client.c +189 -0
  110. data/ext/nutcracker/src/nc_client.h +28 -0
  111. data/ext/nutcracker/src/nc_conf.c +1766 -0
  112. data/ext/nutcracker/src/nc_conf.h +134 -0
  113. data/ext/nutcracker/src/nc_connection.c +392 -0
  114. data/ext/nutcracker/src/nc_connection.h +99 -0
  115. data/ext/nutcracker/src/nc_core.c +334 -0
  116. data/ext/nutcracker/src/nc_core.h +131 -0
  117. data/ext/nutcracker/src/nc_event.c +214 -0
  118. data/ext/nutcracker/src/nc_event.h +39 -0
  119. data/ext/nutcracker/src/nc_log.c +254 -0
  120. data/ext/nutcracker/src/nc_log.h +120 -0
  121. data/ext/nutcracker/src/nc_mbuf.c +285 -0
  122. data/ext/nutcracker/src/nc_mbuf.h +67 -0
  123. data/ext/nutcracker/src/nc_message.c +828 -0
  124. data/ext/nutcracker/src/nc_message.h +253 -0
  125. data/ext/nutcracker/src/nc_proxy.c +359 -0
  126. data/ext/nutcracker/src/nc_proxy.h +34 -0
  127. data/ext/nutcracker/src/nc_queue.h +788 -0
  128. data/ext/nutcracker/src/nc_rbtree.c +348 -0
  129. data/ext/nutcracker/src/nc_rbtree.h +47 -0
  130. data/ext/nutcracker/src/nc_request.c +588 -0
  131. data/ext/nutcracker/src/nc_response.c +332 -0
  132. data/ext/nutcracker/src/nc_server.c +841 -0
  133. data/ext/nutcracker/src/nc_server.h +143 -0
  134. data/ext/nutcracker/src/nc_signal.c +131 -0
  135. data/ext/nutcracker/src/nc_signal.h +34 -0
  136. data/ext/nutcracker/src/nc_stats.c +1188 -0
  137. data/ext/nutcracker/src/nc_stats.h +206 -0
  138. data/ext/nutcracker/src/nc_string.c +109 -0
  139. data/ext/nutcracker/src/nc_string.h +112 -0
  140. data/ext/nutcracker/src/nc_util.c +619 -0
  141. data/ext/nutcracker/src/nc_util.h +214 -0
  142. data/ext/nutcracker/src/proto/Makefile.am +14 -0
  143. data/ext/nutcracker/src/proto/Makefile.in +482 -0
  144. data/ext/nutcracker/src/proto/nc_memcache.c +1306 -0
  145. data/ext/nutcracker/src/proto/nc_proto.h +155 -0
  146. data/ext/nutcracker/src/proto/nc_redis.c +2102 -0
  147. data/lib/nutcracker.rb +7 -0
  148. data/lib/nutcracker/version.rb +3 -0
  149. metadata +194 -0
@@ -0,0 +1,214 @@
1
+ /*
2
+ * twemproxy - A fast and lightweight proxy for memcached protocol.
3
+ * Copyright (C) 2011 Twitter, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #ifndef _NC_UTIL_H_
19
+ #define _NC_UTIL_H_
20
+
21
+ #include <stdarg.h>
22
+
23
+ #define LF (uint8_t) 10
24
+ #define CR (uint8_t) 13
25
+ #define CRLF "\x0d\x0a"
26
+ #define CRLF_LEN (sizeof("\x0d\x0a") - 1)
27
+
28
+ #define NELEMS(a) ((sizeof(a)) / sizeof((a)[0]))
29
+
30
+ #define MIN(a, b) ((a) < (b) ? (a) : (b))
31
+ #define MAX(a, b) ((a) > (b) ? (a) : (b))
32
+
33
+ #define SQUARE(d) ((d) * (d))
34
+ #define VAR(s, s2, n) (((n) < 2) ? 0.0 : ((s2) - SQUARE(s)/(n)) / ((n) - 1))
35
+ #define STDDEV(s, s2, n) (((n) < 2) ? 0.0 : sqrt(VAR((s), (s2), (n))))
36
+
37
+ #define NC_INET4_ADDRSTRLEN (sizeof("255.255.255.255") - 1)
38
+ #define NC_INET6_ADDRSTRLEN \
39
+ (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") - 1)
40
+ #define NC_INET_ADDRSTRLEN MAX(NC_INET4_ADDRSTRLEN, NC_INET6_ADDRSTRLEN)
41
+ #define NC_UNIX_ADDRSTRLEN \
42
+ (sizeof(struct sockaddr_un) - offsetof(struct sockaddr_un, sun_path))
43
+
44
+ #define NC_MAXHOSTNAMELEN 256
45
+
46
+ /*
47
+ * Length of 1 byte, 2 bytes, 4 bytes, 8 bytes and largest integral
48
+ * type (uintmax_t) in ascii, including the null terminator '\0'
49
+ *
50
+ * From stdint.h, we have:
51
+ * # define UINT8_MAX (255)
52
+ * # define UINT16_MAX (65535)
53
+ * # define UINT32_MAX (4294967295U)
54
+ * # define UINT64_MAX (__UINT64_C(18446744073709551615))
55
+ */
56
+ #define NC_UINT8_MAXLEN (3 + 1)
57
+ #define NC_UINT16_MAXLEN (5 + 1)
58
+ #define NC_UINT32_MAXLEN (10 + 1)
59
+ #define NC_UINT64_MAXLEN (20 + 1)
60
+ #define NC_UINTMAX_MAXLEN NC_UINT64_MAXLEN
61
+
62
+ /*
63
+ * Make data 'd' or pointer 'p', n-byte aligned, where n is a power of 2
64
+ * of 2.
65
+ */
66
+ #define NC_ALIGNMENT sizeof(unsigned long) /* platform word */
67
+ #define NC_ALIGN(d, n) (((d) + (n - 1)) & ~(n - 1))
68
+ #define NC_ALIGN_PTR(p, n) \
69
+ (void *) (((uintptr_t) (p) + ((uintptr_t) n - 1)) & ~((uintptr_t) n - 1))
70
+
71
+ /*
72
+ * Wrapper to workaround well known, safe, implicit type conversion when
73
+ * invoking system calls.
74
+ */
75
+ #define nc_gethostname(_name, _len) \
76
+ gethostname((char *)_name, (size_t)_len)
77
+
78
+ #define nc_atoi(_line, _n) \
79
+ _nc_atoi((uint8_t *)_line, (size_t)_n)
80
+
81
+ int nc_set_blocking(int sd);
82
+ int nc_set_nonblocking(int sd);
83
+ int nc_set_reuseaddr(int sd);
84
+ int nc_set_tcpnodelay(int sd);
85
+ int nc_set_linger(int sd, int timeout);
86
+ int nc_set_sndbuf(int sd, int size);
87
+ int nc_set_rcvbuf(int sd, int size);
88
+ int nc_get_soerror(int sd);
89
+ int nc_get_sndbuf(int sd);
90
+ int nc_get_rcvbuf(int sd);
91
+
92
+ int _nc_atoi(uint8_t *line, size_t n);
93
+ bool nc_valid_port(int n);
94
+
95
+ /*
96
+ * Memory allocation and free wrappers.
97
+ *
98
+ * These wrappers enables us to loosely detect double free, dangling
99
+ * pointer access and zero-byte alloc.
100
+ */
101
+ #define nc_alloc(_s) \
102
+ _nc_alloc((size_t)(_s), __FILE__, __LINE__)
103
+
104
+ #define nc_zalloc(_s) \
105
+ _nc_zalloc((size_t)(_s), __FILE__, __LINE__)
106
+
107
+ #define nc_calloc(_n, _s) \
108
+ _nc_calloc((size_t)(_n), (size_t)(_s), __FILE__, __LINE__)
109
+
110
+ #define nc_realloc(_p, _s) \
111
+ _nc_realloc(_p, (size_t)(_s), __FILE__, __LINE__)
112
+
113
+ #define nc_free(_p) do { \
114
+ _nc_free(_p, __FILE__, __LINE__); \
115
+ (_p) = NULL; \
116
+ } while (0)
117
+
118
+ void *_nc_alloc(size_t size, const char *name, int line);
119
+ void *_nc_zalloc(size_t size, const char *name, int line);
120
+ void *_nc_calloc(size_t nmemb, size_t size, const char *name, int line);
121
+ void *_nc_realloc(void *ptr, size_t size, const char *name, int line);
122
+ void _nc_free(void *ptr, const char *name, int line);
123
+
124
+ /*
125
+ * Wrappers to send or receive n byte message on a blocking
126
+ * socket descriptor.
127
+ */
128
+ #define nc_sendn(_s, _b, _n) \
129
+ _nc_sendn(_s, _b, (size_t)(_n))
130
+
131
+ #define nc_recvn(_s, _b, _n) \
132
+ _nc_recvn(_s, _b, (size_t)(_n))
133
+
134
+ /*
135
+ * Wrappers to read or write data to/from (multiple) buffers
136
+ * to a file or socket descriptor.
137
+ */
138
+ #define nc_read(_d, _b, _n) \
139
+ read(_d, _b, (size_t)(_n))
140
+
141
+ #define nc_readv(_d, _b, _n) \
142
+ readv(_d, _b, (int)(_n))
143
+
144
+ #define nc_write(_d, _b, _n) \
145
+ write(_d, _b, (size_t)(_n))
146
+
147
+ #define nc_writev(_d, _b, _n) \
148
+ writev(_d, _b, (int)(_n))
149
+
150
+ ssize_t _nc_sendn(int sd, const void *vptr, size_t n);
151
+ ssize_t _nc_recvn(int sd, void *vptr, size_t n);
152
+
153
+ /*
154
+ * Wrappers for defining custom assert based on whether macro
155
+ * NC_ASSERT_PANIC or NC_ASSERT_LOG was defined at the moment
156
+ * ASSERT was called.
157
+ */
158
+ #ifdef NC_ASSERT_PANIC
159
+
160
+ #define ASSERT(_x) do { \
161
+ if (!(_x)) { \
162
+ nc_assert(#_x, __FILE__, __LINE__, 1); \
163
+ } \
164
+ } while (0)
165
+
166
+ #define NOT_REACHED() ASSERT(0)
167
+
168
+ #elif NC_ASSERT_LOG
169
+
170
+ #define ASSERT(_x) do { \
171
+ if (!(_x)) { \
172
+ nc_assert(#_x, __FILE__, __LINE__, 0); \
173
+ } \
174
+ } while (0)
175
+
176
+ #define NOT_REACHED() ASSERT(0)
177
+
178
+ #else
179
+
180
+ #define ASSERT(_x)
181
+
182
+ #define NOT_REACHED()
183
+
184
+ #endif
185
+
186
+ void nc_assert(const char *cond, const char *file, int line, int panic);
187
+ void nc_stacktrace(int skip_count);
188
+
189
+ int _scnprintf(char *buf, size_t size, const char *fmt, ...);
190
+ int _vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
191
+ int64_t nc_usec_now(void);
192
+ int64_t nc_msec_now(void);
193
+
194
+ /*
195
+ * Address resolution for internet (ipv4 and ipv6) and unix domain
196
+ * socket address.
197
+ */
198
+
199
+ struct sockinfo {
200
+ int family; /* socket address family */
201
+ socklen_t addrlen; /* socket address length */
202
+ union {
203
+ struct sockaddr_in in; /* ipv4 socket address */
204
+ struct sockaddr_in6 in6; /* ipv6 socket address */
205
+ struct sockaddr_un un; /* unix domain address */
206
+ } addr;
207
+ };
208
+
209
+ int nc_resolve(struct string *name, int port, struct sockinfo *si);
210
+ char *nc_unresolve_addr(struct sockaddr *addr, socklen_t addrlen);
211
+ char *nc_unresolve_peer_desc(int sd);
212
+ char *nc_unresolve_desc(int sd);
213
+
214
+ #endif
@@ -0,0 +1,14 @@
1
+ MAINTAINERCLEANFILES = Makefile.in
2
+
3
+ AM_CPPFLAGS = -I $(top_srcdir)/src
4
+
5
+ AM_CFLAGS = -Wall -Wshadow
6
+ AM_CFLAGS += -Wno-unused-parameter -Wno-unused-value
7
+
8
+ noinst_LIBRARIES = libproto.a
9
+
10
+ noinst_HEADERS = nc_proto.h
11
+
12
+ libproto_a_SOURCES = \
13
+ nc_memcache.c \
14
+ nc_redis.c
@@ -0,0 +1,482 @@
1
+ # Makefile.in generated by automake 1.11 from Makefile.am.
2
+ # @configure_input@
3
+
4
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
+ # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6
+ # Inc.
7
+ # This Makefile.in is free software; the Free Software Foundation
8
+ # gives unlimited permission to copy and/or distribute it,
9
+ # with or without modifications, as long as this notice is preserved.
10
+
11
+ # This program is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14
+ # PARTICULAR PURPOSE.
15
+
16
+ @SET_MAKE@
17
+
18
+
19
+ VPATH = @srcdir@
20
+ pkgdatadir = $(datadir)/@PACKAGE@
21
+ pkgincludedir = $(includedir)/@PACKAGE@
22
+ pkglibdir = $(libdir)/@PACKAGE@
23
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
24
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25
+ install_sh_DATA = $(install_sh) -c -m 644
26
+ install_sh_PROGRAM = $(install_sh) -c
27
+ install_sh_SCRIPT = $(install_sh) -c
28
+ INSTALL_HEADER = $(INSTALL_DATA)
29
+ transform = $(program_transform_name)
30
+ NORMAL_INSTALL = :
31
+ PRE_INSTALL = :
32
+ POST_INSTALL = :
33
+ NORMAL_UNINSTALL = :
34
+ PRE_UNINSTALL = :
35
+ POST_UNINSTALL = :
36
+ build_triplet = @build@
37
+ host_triplet = @host@
38
+ subdir = src/proto
39
+ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
40
+ $(srcdir)/Makefile.in
41
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42
+ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
43
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
44
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
45
+ $(top_srcdir)/configure.ac
46
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
47
+ $(ACLOCAL_M4)
48
+ mkinstalldirs = $(install_sh) -d
49
+ CONFIG_HEADER = $(top_builddir)/config.h
50
+ CONFIG_CLEAN_FILES =
51
+ CONFIG_CLEAN_VPATH_FILES =
52
+ LIBRARIES = $(noinst_LIBRARIES)
53
+ ARFLAGS = cru
54
+ libproto_a_AR = $(AR) $(ARFLAGS)
55
+ libproto_a_LIBADD =
56
+ am_libproto_a_OBJECTS = nc_memcache.$(OBJEXT) nc_redis.$(OBJEXT)
57
+ libproto_a_OBJECTS = $(am_libproto_a_OBJECTS)
58
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
59
+ depcomp = $(SHELL) $(top_srcdir)/config/depcomp
60
+ am__depfiles_maybe = depfiles
61
+ am__mv = mv -f
62
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
63
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
64
+ LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
65
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
66
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
67
+ CCLD = $(CC)
68
+ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
69
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
70
+ $(LDFLAGS) -o $@
71
+ SOURCES = $(libproto_a_SOURCES)
72
+ DIST_SOURCES = $(libproto_a_SOURCES)
73
+ HEADERS = $(noinst_HEADERS)
74
+ ETAGS = etags
75
+ CTAGS = ctags
76
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
77
+ ACLOCAL = @ACLOCAL@
78
+ AMTAR = @AMTAR@
79
+ AR = @AR@
80
+ AUTOCONF = @AUTOCONF@
81
+ AUTOHEADER = @AUTOHEADER@
82
+ AUTOMAKE = @AUTOMAKE@
83
+ AWK = @AWK@
84
+ CC = @CC@
85
+ CCDEPMODE = @CCDEPMODE@
86
+ CFLAGS = @CFLAGS@
87
+ CPP = @CPP@
88
+ CPPFLAGS = @CPPFLAGS@
89
+ CXX = @CXX@
90
+ CXXCPP = @CXXCPP@
91
+ CXXDEPMODE = @CXXDEPMODE@
92
+ CXXFLAGS = @CXXFLAGS@
93
+ CYGPATH_W = @CYGPATH_W@
94
+ DEFS = @DEFS@
95
+ DEPDIR = @DEPDIR@
96
+ DSYMUTIL = @DSYMUTIL@
97
+ DUMPBIN = @DUMPBIN@
98
+ ECHO_C = @ECHO_C@
99
+ ECHO_N = @ECHO_N@
100
+ ECHO_T = @ECHO_T@
101
+ EGREP = @EGREP@
102
+ EXEEXT = @EXEEXT@
103
+ FGREP = @FGREP@
104
+ GREP = @GREP@
105
+ INSTALL = @INSTALL@
106
+ INSTALL_DATA = @INSTALL_DATA@
107
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
108
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
109
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
110
+ LD = @LD@
111
+ LDFLAGS = @LDFLAGS@
112
+ LIBOBJS = @LIBOBJS@
113
+ LIBS = @LIBS@
114
+ LIBTOOL = @LIBTOOL@
115
+ LIPO = @LIPO@
116
+ LN_S = @LN_S@
117
+ LTLIBOBJS = @LTLIBOBJS@
118
+ MAKEINFO = @MAKEINFO@
119
+ MKDIR_P = @MKDIR_P@
120
+ NM = @NM@
121
+ NMEDIT = @NMEDIT@
122
+ OBJDUMP = @OBJDUMP@
123
+ OBJEXT = @OBJEXT@
124
+ OTOOL = @OTOOL@
125
+ OTOOL64 = @OTOOL64@
126
+ PACKAGE = @PACKAGE@
127
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
128
+ PACKAGE_NAME = @PACKAGE_NAME@
129
+ PACKAGE_STRING = @PACKAGE_STRING@
130
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
131
+ PACKAGE_URL = @PACKAGE_URL@
132
+ PACKAGE_VERSION = @PACKAGE_VERSION@
133
+ PATH_SEPARATOR = @PATH_SEPARATOR@
134
+ RANLIB = @RANLIB@
135
+ SED = @SED@
136
+ SET_MAKE = @SET_MAKE@
137
+ SHELL = @SHELL@
138
+ STRIP = @STRIP@
139
+ VERSION = @VERSION@
140
+ abs_builddir = @abs_builddir@
141
+ abs_srcdir = @abs_srcdir@
142
+ abs_top_builddir = @abs_top_builddir@
143
+ abs_top_srcdir = @abs_top_srcdir@
144
+ ac_ct_CC = @ac_ct_CC@
145
+ ac_ct_CXX = @ac_ct_CXX@
146
+ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
147
+ am__include = @am__include@
148
+ am__leading_dot = @am__leading_dot@
149
+ am__quote = @am__quote@
150
+ am__tar = @am__tar@
151
+ am__untar = @am__untar@
152
+ bindir = @bindir@
153
+ build = @build@
154
+ build_alias = @build_alias@
155
+ build_cpu = @build_cpu@
156
+ build_os = @build_os@
157
+ build_vendor = @build_vendor@
158
+ builddir = @builddir@
159
+ datadir = @datadir@
160
+ datarootdir = @datarootdir@
161
+ docdir = @docdir@
162
+ dvidir = @dvidir@
163
+ exec_prefix = @exec_prefix@
164
+ host = @host@
165
+ host_alias = @host_alias@
166
+ host_cpu = @host_cpu@
167
+ host_os = @host_os@
168
+ host_vendor = @host_vendor@
169
+ htmldir = @htmldir@
170
+ includedir = @includedir@
171
+ infodir = @infodir@
172
+ install_sh = @install_sh@
173
+ libdir = @libdir@
174
+ libexecdir = @libexecdir@
175
+ localedir = @localedir@
176
+ localstatedir = @localstatedir@
177
+ lt_ECHO = @lt_ECHO@
178
+ mandir = @mandir@
179
+ mkdir_p = @mkdir_p@
180
+ oldincludedir = @oldincludedir@
181
+ pdfdir = @pdfdir@
182
+ prefix = @prefix@
183
+ program_transform_name = @program_transform_name@
184
+ psdir = @psdir@
185
+ sbindir = @sbindir@
186
+ sharedstatedir = @sharedstatedir@
187
+ srcdir = @srcdir@
188
+ subdirs = @subdirs@
189
+ sysconfdir = @sysconfdir@
190
+ target_alias = @target_alias@
191
+ top_build_prefix = @top_build_prefix@
192
+ top_builddir = @top_builddir@
193
+ top_srcdir = @top_srcdir@
194
+ MAINTAINERCLEANFILES = Makefile.in
195
+ AM_CPPFLAGS = -I $(top_srcdir)/src
196
+ AM_CFLAGS = -Wall -Wshadow -Wno-unused-parameter -Wno-unused-value
197
+ noinst_LIBRARIES = libproto.a
198
+ noinst_HEADERS = nc_proto.h
199
+ libproto_a_SOURCES = \
200
+ nc_memcache.c \
201
+ nc_redis.c
202
+
203
+ all: all-am
204
+
205
+ .SUFFIXES:
206
+ .SUFFIXES: .c .lo .o .obj
207
+ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
208
+ @for dep in $?; do \
209
+ case '$(am__configure_deps)' in \
210
+ *$$dep*) \
211
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
212
+ && { if test -f $@; then exit 0; else break; fi; }; \
213
+ exit 1;; \
214
+ esac; \
215
+ done; \
216
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/proto/Makefile'; \
217
+ $(am__cd) $(top_srcdir) && \
218
+ $(AUTOMAKE) --foreign src/proto/Makefile
219
+ .PRECIOUS: Makefile
220
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
221
+ @case '$?' in \
222
+ *config.status*) \
223
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
224
+ *) \
225
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
226
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
227
+ esac;
228
+
229
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
230
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
231
+
232
+ $(top_srcdir)/configure: $(am__configure_deps)
233
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
234
+ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
235
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
236
+ $(am__aclocal_m4_deps):
237
+
238
+ clean-noinstLIBRARIES:
239
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
240
+ libproto.a: $(libproto_a_OBJECTS) $(libproto_a_DEPENDENCIES)
241
+ -rm -f libproto.a
242
+ $(libproto_a_AR) libproto.a $(libproto_a_OBJECTS) $(libproto_a_LIBADD)
243
+ $(RANLIB) libproto.a
244
+
245
+ mostlyclean-compile:
246
+ -rm -f *.$(OBJEXT)
247
+
248
+ distclean-compile:
249
+ -rm -f *.tab.c
250
+
251
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_memcache.Po@am__quote@
252
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_redis.Po@am__quote@
253
+
254
+ .c.o:
255
+ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
256
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
257
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
258
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
259
+ @am__fastdepCC_FALSE@ $(COMPILE) -c $<
260
+
261
+ .c.obj:
262
+ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
263
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
264
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
265
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
266
+ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
267
+
268
+ .c.lo:
269
+ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
270
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
271
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
272
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
273
+ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
274
+
275
+ mostlyclean-libtool:
276
+ -rm -f *.lo
277
+
278
+ clean-libtool:
279
+ -rm -rf .libs _libs
280
+
281
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
282
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
283
+ unique=`for i in $$list; do \
284
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
285
+ done | \
286
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
287
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
288
+ mkid -fID $$unique
289
+ tags: TAGS
290
+
291
+ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
292
+ $(TAGS_FILES) $(LISP)
293
+ set x; \
294
+ here=`pwd`; \
295
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
296
+ unique=`for i in $$list; do \
297
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
298
+ done | \
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 \
303
+ test -n "$$unique" || unique=$$empty_fix; \
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; \
311
+ fi
312
+ ctags: CTAGS
313
+ CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
314
+ $(TAGS_FILES) $(LISP)
315
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
316
+ unique=`for i in $$list; do \
317
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
318
+ done | \
319
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
320
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
321
+ test -z "$(CTAGS_ARGS)$$unique" \
322
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
323
+ $$unique
324
+
325
+ GTAGS:
326
+ here=`$(am__cd) $(top_builddir) && pwd` \
327
+ && $(am__cd) $(top_srcdir) \
328
+ && gtags -i $(GTAGS_ARGS) "$$here"
329
+
330
+ distclean-tags:
331
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
332
+
333
+ distdir: $(DISTFILES)
334
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
335
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
336
+ list='$(DISTFILES)'; \
337
+ dist_files=`for file in $$list; do echo $$file; done | \
338
+ sed -e "s|^$$srcdirstrip/||;t" \
339
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
340
+ case $$dist_files in \
341
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
342
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
343
+ sort -u` ;; \
344
+ esac; \
345
+ for file in $$dist_files; do \
346
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
347
+ if test -d $$d/$$file; then \
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; \
352
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
353
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
354
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
355
+ fi; \
356
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
357
+ else \
358
+ test -f "$(distdir)/$$file" \
359
+ || cp -p $$d/$$file "$(distdir)/$$file" \
360
+ || exit 1; \
361
+ fi; \
362
+ done
363
+ check-am: all-am
364
+ check: check-am
365
+ all-am: Makefile $(LIBRARIES) $(HEADERS)
366
+ installdirs:
367
+ install: install-am
368
+ install-exec: install-exec-am
369
+ install-data: install-data-am
370
+ uninstall: uninstall-am
371
+
372
+ install-am: all-am
373
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
374
+
375
+ installcheck: installcheck-am
376
+ install-strip:
377
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
378
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
379
+ `test -z '$(STRIP)' || \
380
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
381
+ mostlyclean-generic:
382
+
383
+ clean-generic:
384
+
385
+ distclean-generic:
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)
388
+
389
+ maintainer-clean-generic:
390
+ @echo "This command is intended for maintainers to use"
391
+ @echo "it deletes files that may require special tools to rebuild."
392
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
393
+ clean: clean-am
394
+
395
+ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
396
+ mostlyclean-am
397
+
398
+ distclean: distclean-am
399
+ -rm -rf ./$(DEPDIR)
400
+ -rm -f Makefile
401
+ distclean-am: clean-am distclean-compile distclean-generic \
402
+ distclean-tags
403
+
404
+ dvi: dvi-am
405
+
406
+ dvi-am:
407
+
408
+ html: html-am
409
+
410
+ html-am:
411
+
412
+ info: info-am
413
+
414
+ info-am:
415
+
416
+ install-data-am:
417
+
418
+ install-dvi: install-dvi-am
419
+
420
+ install-dvi-am:
421
+
422
+ install-exec-am:
423
+
424
+ install-html: install-html-am
425
+
426
+ install-html-am:
427
+
428
+ install-info: install-info-am
429
+
430
+ install-info-am:
431
+
432
+ install-man:
433
+
434
+ install-pdf: install-pdf-am
435
+
436
+ install-pdf-am:
437
+
438
+ install-ps: install-ps-am
439
+
440
+ install-ps-am:
441
+
442
+ installcheck-am:
443
+
444
+ maintainer-clean: maintainer-clean-am
445
+ -rm -rf ./$(DEPDIR)
446
+ -rm -f Makefile
447
+ maintainer-clean-am: distclean-am maintainer-clean-generic
448
+
449
+ mostlyclean: mostlyclean-am
450
+
451
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic \
452
+ mostlyclean-libtool
453
+
454
+ pdf: pdf-am
455
+
456
+ pdf-am:
457
+
458
+ ps: ps-am
459
+
460
+ ps-am:
461
+
462
+ uninstall-am:
463
+
464
+ .MAKE: install-am install-strip
465
+
466
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
467
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
468
+ distclean-compile distclean-generic distclean-libtool \
469
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
470
+ install install-am install-data install-data-am install-dvi \
471
+ install-dvi-am install-exec install-exec-am install-html \
472
+ install-html-am install-info install-info-am install-man \
473
+ install-pdf install-pdf-am install-ps install-ps-am \
474
+ install-strip installcheck installcheck-am installdirs \
475
+ maintainer-clean maintainer-clean-generic mostlyclean \
476
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
477
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
478
+
479
+
480
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
481
+ # Otherwise a system limit (for SysV at least) may be exceeded.
482
+ .NOEXPORT: