nutcracker 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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: