redis-client 0.2.0 → 0.4.0

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/Gemfile +1 -2
  4. data/Gemfile.lock +2 -3
  5. data/README.md +66 -3
  6. data/Rakefile +43 -23
  7. data/lib/redis_client/command_builder.rb +83 -0
  8. data/lib/redis_client/config.rb +9 -48
  9. data/lib/redis_client/connection_mixin.rb +38 -0
  10. data/lib/redis_client/decorator.rb +84 -0
  11. data/lib/redis_client/pooled.rb +38 -30
  12. data/lib/redis_client/ruby_connection/buffered_io.rb +153 -0
  13. data/lib/redis_client/{resp3.rb → ruby_connection/resp3.rb} +0 -26
  14. data/lib/redis_client/{connection.rb → ruby_connection.rb} +26 -31
  15. data/lib/redis_client/version.rb +1 -1
  16. data/lib/redis_client.rb +162 -36
  17. data/redis-client.gemspec +2 -4
  18. metadata +12 -59
  19. data/.rubocop.yml +0 -190
  20. data/ext/redis_client/hiredis/export.clang +0 -2
  21. data/ext/redis_client/hiredis/export.gcc +0 -7
  22. data/ext/redis_client/hiredis/extconf.rb +0 -62
  23. data/ext/redis_client/hiredis/hiredis_connection.c +0 -708
  24. data/ext/redis_client/hiredis/vendor/.gitignore +0 -9
  25. data/ext/redis_client/hiredis/vendor/.travis.yml +0 -131
  26. data/ext/redis_client/hiredis/vendor/CHANGELOG.md +0 -364
  27. data/ext/redis_client/hiredis/vendor/CMakeLists.txt +0 -165
  28. data/ext/redis_client/hiredis/vendor/COPYING +0 -29
  29. data/ext/redis_client/hiredis/vendor/Makefile +0 -308
  30. data/ext/redis_client/hiredis/vendor/README.md +0 -664
  31. data/ext/redis_client/hiredis/vendor/adapters/ae.h +0 -130
  32. data/ext/redis_client/hiredis/vendor/adapters/glib.h +0 -156
  33. data/ext/redis_client/hiredis/vendor/adapters/ivykis.h +0 -84
  34. data/ext/redis_client/hiredis/vendor/adapters/libev.h +0 -179
  35. data/ext/redis_client/hiredis/vendor/adapters/libevent.h +0 -175
  36. data/ext/redis_client/hiredis/vendor/adapters/libuv.h +0 -117
  37. data/ext/redis_client/hiredis/vendor/adapters/macosx.h +0 -115
  38. data/ext/redis_client/hiredis/vendor/adapters/qt.h +0 -135
  39. data/ext/redis_client/hiredis/vendor/alloc.c +0 -86
  40. data/ext/redis_client/hiredis/vendor/alloc.h +0 -91
  41. data/ext/redis_client/hiredis/vendor/appveyor.yml +0 -24
  42. data/ext/redis_client/hiredis/vendor/async.c +0 -887
  43. data/ext/redis_client/hiredis/vendor/async.h +0 -147
  44. data/ext/redis_client/hiredis/vendor/async_private.h +0 -75
  45. data/ext/redis_client/hiredis/vendor/dict.c +0 -352
  46. data/ext/redis_client/hiredis/vendor/dict.h +0 -126
  47. data/ext/redis_client/hiredis/vendor/fmacros.h +0 -12
  48. data/ext/redis_client/hiredis/vendor/hiredis-config.cmake.in +0 -13
  49. data/ext/redis_client/hiredis/vendor/hiredis.c +0 -1174
  50. data/ext/redis_client/hiredis/vendor/hiredis.h +0 -336
  51. data/ext/redis_client/hiredis/vendor/hiredis.pc.in +0 -12
  52. data/ext/redis_client/hiredis/vendor/hiredis_ssl-config.cmake.in +0 -13
  53. data/ext/redis_client/hiredis/vendor/hiredis_ssl.h +0 -157
  54. data/ext/redis_client/hiredis/vendor/hiredis_ssl.pc.in +0 -12
  55. data/ext/redis_client/hiredis/vendor/net.c +0 -612
  56. data/ext/redis_client/hiredis/vendor/net.h +0 -56
  57. data/ext/redis_client/hiredis/vendor/read.c +0 -739
  58. data/ext/redis_client/hiredis/vendor/read.h +0 -129
  59. data/ext/redis_client/hiredis/vendor/sds.c +0 -1289
  60. data/ext/redis_client/hiredis/vendor/sds.h +0 -278
  61. data/ext/redis_client/hiredis/vendor/sdsalloc.h +0 -44
  62. data/ext/redis_client/hiredis/vendor/sockcompat.c +0 -248
  63. data/ext/redis_client/hiredis/vendor/sockcompat.h +0 -92
  64. data/ext/redis_client/hiredis/vendor/ssl.c +0 -544
  65. data/ext/redis_client/hiredis/vendor/test.c +0 -1401
  66. data/ext/redis_client/hiredis/vendor/test.sh +0 -78
  67. data/ext/redis_client/hiredis/vendor/win32.h +0 -56
  68. data/lib/redis_client/buffered_io.rb +0 -151
  69. data/lib/redis_client/hiredis_connection.rb +0 -80
@@ -1,165 +0,0 @@
1
- CMAKE_MINIMUM_REQUIRED(VERSION 3.4.0)
2
- INCLUDE(GNUInstallDirs)
3
- PROJECT(hiredis)
4
-
5
- OPTION(ENABLE_SSL "Build hiredis_ssl for SSL support" OFF)
6
- OPTION(DISABLE_TESTS "If tests should be compiled or not" OFF)
7
- OPTION(ENABLE_SSL_TESTS, "Should we test SSL connections" OFF)
8
-
9
- MACRO(getVersionBit name)
10
- SET(VERSION_REGEX "^#define ${name} (.+)$")
11
- FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/hiredis.h"
12
- VERSION_BIT REGEX ${VERSION_REGEX})
13
- STRING(REGEX REPLACE ${VERSION_REGEX} "\\1" ${name} "${VERSION_BIT}")
14
- ENDMACRO(getVersionBit)
15
-
16
- getVersionBit(HIREDIS_MAJOR)
17
- getVersionBit(HIREDIS_MINOR)
18
- getVersionBit(HIREDIS_PATCH)
19
- getVersionBit(HIREDIS_SONAME)
20
- SET(VERSION "${HIREDIS_MAJOR}.${HIREDIS_MINOR}.${HIREDIS_PATCH}")
21
- MESSAGE("Detected version: ${VERSION}")
22
-
23
- PROJECT(hiredis VERSION "${VERSION}")
24
-
25
- SET(ENABLE_EXAMPLES OFF CACHE BOOL "Enable building hiredis examples")
26
-
27
- SET(hiredis_sources
28
- alloc.c
29
- async.c
30
- dict.c
31
- hiredis.c
32
- net.c
33
- read.c
34
- sds.c
35
- sockcompat.c)
36
-
37
- SET(hiredis_sources ${hiredis_sources})
38
-
39
- IF(WIN32)
40
- ADD_COMPILE_DEFINITIONS(_CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN)
41
- ENDIF()
42
-
43
- ADD_LIBRARY(hiredis SHARED ${hiredis_sources})
44
-
45
- SET_TARGET_PROPERTIES(hiredis
46
- PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE
47
- VERSION "${HIREDIS_SONAME}")
48
- IF(WIN32 OR MINGW)
49
- TARGET_LINK_LIBRARIES(hiredis PRIVATE ws2_32)
50
- ENDIF()
51
-
52
- TARGET_INCLUDE_DIRECTORIES(hiredis PUBLIC $<INSTALL_INTERFACE:.> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
53
-
54
- CONFIGURE_FILE(hiredis.pc.in hiredis.pc @ONLY)
55
-
56
- INSTALL(TARGETS hiredis
57
- EXPORT hiredis-targets
58
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
59
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
60
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
61
-
62
- INSTALL(FILES hiredis.h read.h sds.h async.h alloc.h
63
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hiredis)
64
-
65
- INSTALL(DIRECTORY adapters
66
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hiredis)
67
-
68
- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis.pc
69
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
70
-
71
- export(EXPORT hiredis-targets
72
- FILE "${CMAKE_CURRENT_BINARY_DIR}/hiredis-targets.cmake"
73
- NAMESPACE hiredis::)
74
-
75
- SET(CMAKE_CONF_INSTALL_DIR share/hiredis)
76
- SET(INCLUDE_INSTALL_DIR include)
77
- include(CMakePackageConfigHelpers)
78
- configure_package_config_file(hiredis-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hiredis-config.cmake
79
- INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR}
80
- PATH_VARS INCLUDE_INSTALL_DIR)
81
-
82
- INSTALL(EXPORT hiredis-targets
83
- FILE hiredis-targets.cmake
84
- NAMESPACE hiredis::
85
- DESTINATION ${CMAKE_CONF_INSTALL_DIR})
86
-
87
- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis-config.cmake
88
- DESTINATION ${CMAKE_CONF_INSTALL_DIR})
89
-
90
-
91
- IF(ENABLE_SSL)
92
- IF (NOT OPENSSL_ROOT_DIR)
93
- IF (APPLE)
94
- SET(OPENSSL_ROOT_DIR "/usr/local/opt/openssl")
95
- ENDIF()
96
- ENDIF()
97
- FIND_PACKAGE(OpenSSL REQUIRED)
98
- SET(hiredis_ssl_sources
99
- ssl.c)
100
- ADD_LIBRARY(hiredis_ssl SHARED
101
- ${hiredis_ssl_sources})
102
-
103
- IF (APPLE)
104
- SET_PROPERTY(TARGET hiredis_ssl PROPERTY LINK_FLAGS "-Wl,-undefined -Wl,dynamic_lookup")
105
- ENDIF()
106
-
107
- SET_TARGET_PROPERTIES(hiredis_ssl
108
- PROPERTIES
109
- WINDOWS_EXPORT_ALL_SYMBOLS TRUE
110
- VERSION "${HIREDIS_SONAME}")
111
-
112
- TARGET_INCLUDE_DIRECTORIES(hiredis_ssl PRIVATE "${OPENSSL_INCLUDE_DIR}")
113
- TARGET_LINK_LIBRARIES(hiredis_ssl PRIVATE ${OPENSSL_LIBRARIES})
114
- IF (WIN32 OR MINGW)
115
- TARGET_LINK_LIBRARIES(hiredis_ssl PRIVATE hiredis)
116
- ENDIF()
117
- CONFIGURE_FILE(hiredis_ssl.pc.in hiredis_ssl.pc @ONLY)
118
-
119
- INSTALL(TARGETS hiredis_ssl
120
- EXPORT hiredis_ssl-targets
121
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
122
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
123
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
124
-
125
- INSTALL(FILES hiredis_ssl.h
126
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hiredis)
127
-
128
- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl.pc
129
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
130
-
131
- export(EXPORT hiredis_ssl-targets
132
- FILE "${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl-targets.cmake"
133
- NAMESPACE hiredis::)
134
-
135
- SET(CMAKE_CONF_INSTALL_DIR share/hiredis_ssl)
136
- configure_package_config_file(hiredis_ssl-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl-config.cmake
137
- INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR}
138
- PATH_VARS INCLUDE_INSTALL_DIR)
139
-
140
- INSTALL(EXPORT hiredis_ssl-targets
141
- FILE hiredis_ssl-targets.cmake
142
- NAMESPACE hiredis::
143
- DESTINATION ${CMAKE_CONF_INSTALL_DIR})
144
-
145
- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl-config.cmake
146
- DESTINATION ${CMAKE_CONF_INSTALL_DIR})
147
- ENDIF()
148
-
149
- IF(NOT DISABLE_TESTS)
150
- ENABLE_TESTING()
151
- ADD_EXECUTABLE(hiredis-test test.c)
152
- IF(ENABLE_SSL_TESTS)
153
- ADD_DEFINITIONS(-DHIREDIS_TEST_SSL=1)
154
- TARGET_LINK_LIBRARIES(hiredis-test hiredis hiredis_ssl)
155
- ELSE()
156
- TARGET_LINK_LIBRARIES(hiredis-test hiredis)
157
- ENDIF()
158
- ADD_TEST(NAME hiredis-test
159
- COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/test.sh)
160
- ENDIF()
161
-
162
- # Add examples
163
- IF(ENABLE_EXAMPLES)
164
- ADD_SUBDIRECTORY(examples)
165
- ENDIF(ENABLE_EXAMPLES)
@@ -1,29 +0,0 @@
1
- Copyright (c) 2009-2011, Salvatore Sanfilippo <antirez at gmail dot com>
2
- Copyright (c) 2010-2011, Pieter Noordhuis <pcnoordhuis at gmail dot com>
3
-
4
- All rights reserved.
5
-
6
- Redistribution and use in source and binary forms, with or without
7
- modification, are permitted provided that the following conditions are met:
8
-
9
- * Redistributions of source code must retain the above copyright notice,
10
- this list of conditions and the following disclaimer.
11
-
12
- * Redistributions in binary form must reproduce the above copyright notice,
13
- this list of conditions and the following disclaimer in the documentation
14
- and/or other materials provided with the distribution.
15
-
16
- * Neither the name of Redis nor the names of its contributors may be used
17
- to endorse or promote products derived from this software without specific
18
- prior written permission.
19
-
20
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
21
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
24
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
27
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,308 +0,0 @@
1
- # Hiredis Makefile
2
- # Copyright (C) 2010-2011 Salvatore Sanfilippo <antirez at gmail dot com>
3
- # Copyright (C) 2010-2011 Pieter Noordhuis <pcnoordhuis at gmail dot com>
4
- # This file is released under the BSD license, see the COPYING file
5
-
6
- OBJ=alloc.o net.o hiredis.o sds.o async.o read.o sockcompat.o
7
- SSL_OBJ=ssl.o
8
- EXAMPLES=hiredis-example hiredis-example-libevent hiredis-example-libev hiredis-example-glib hiredis-example-push
9
- ifeq ($(USE_SSL),1)
10
- EXAMPLES+=hiredis-example-ssl hiredis-example-libevent-ssl
11
- endif
12
- TESTS=hiredis-test
13
- LIBNAME=libhiredis
14
- PKGCONFNAME=hiredis.pc
15
- SSL_LIBNAME=libhiredis_ssl
16
- SSL_PKGCONFNAME=hiredis_ssl.pc
17
-
18
- HIREDIS_MAJOR=$(shell grep HIREDIS_MAJOR hiredis.h | awk '{print $$3}')
19
- HIREDIS_MINOR=$(shell grep HIREDIS_MINOR hiredis.h | awk '{print $$3}')
20
- HIREDIS_PATCH=$(shell grep HIREDIS_PATCH hiredis.h | awk '{print $$3}')
21
- HIREDIS_SONAME=$(shell grep HIREDIS_SONAME hiredis.h | awk '{print $$3}')
22
-
23
- # Installation related variables and target
24
- PREFIX?=/usr/local
25
- INCLUDE_PATH?=include/hiredis
26
- LIBRARY_PATH?=lib
27
- PKGCONF_PATH?=pkgconfig
28
- INSTALL_INCLUDE_PATH= $(DESTDIR)$(PREFIX)/$(INCLUDE_PATH)
29
- INSTALL_LIBRARY_PATH= $(DESTDIR)$(PREFIX)/$(LIBRARY_PATH)
30
- INSTALL_PKGCONF_PATH= $(INSTALL_LIBRARY_PATH)/$(PKGCONF_PATH)
31
-
32
- # redis-server configuration used for testing
33
- REDIS_PORT=56379
34
- REDIS_SERVER=redis-server
35
- define REDIS_TEST_CONFIG
36
- daemonize yes
37
- pidfile /tmp/hiredis-test-redis.pid
38
- port $(REDIS_PORT)
39
- bind 127.0.0.1
40
- unixsocket /tmp/hiredis-test-redis.sock
41
- endef
42
- export REDIS_TEST_CONFIG
43
-
44
- # Fallback to gcc when $CC is not in $PATH.
45
- CC:=$(shell sh -c 'type $${CC%% *} >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
46
- CXX:=$(shell sh -c 'type $${CXX%% *} >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
47
- OPTIMIZATION?=-O3
48
- WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers
49
- DEBUG_FLAGS?= -g -ggdb
50
- REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CPPFLAGS) $(CFLAGS) $(WARNINGS) $(DEBUG_FLAGS)
51
- REAL_LDFLAGS=$(LDFLAGS)
52
-
53
- DYLIBSUFFIX=so
54
- STLIBSUFFIX=a
55
- DYLIB_MINOR_NAME=$(LIBNAME).$(DYLIBSUFFIX).$(HIREDIS_SONAME)
56
- DYLIB_MAJOR_NAME=$(LIBNAME).$(DYLIBSUFFIX).$(HIREDIS_MAJOR)
57
- DYLIBNAME=$(LIBNAME).$(DYLIBSUFFIX)
58
-
59
- DYLIB_MAKE_CMD=$(CC) -shared -Wl,-soname,$(DYLIB_MINOR_NAME)
60
- STLIBNAME=$(LIBNAME).$(STLIBSUFFIX)
61
- STLIB_MAKE_CMD=$(AR) rcs
62
-
63
- SSL_DYLIB_MINOR_NAME=$(SSL_LIBNAME).$(DYLIBSUFFIX).$(HIREDIS_SONAME)
64
- SSL_DYLIB_MAJOR_NAME=$(SSL_LIBNAME).$(DYLIBSUFFIX).$(HIREDIS_MAJOR)
65
- SSL_DYLIBNAME=$(SSL_LIBNAME).$(DYLIBSUFFIX)
66
- SSL_STLIBNAME=$(SSL_LIBNAME).$(STLIBSUFFIX)
67
- SSL_DYLIB_MAKE_CMD=$(CC) -shared -Wl,-soname,$(SSL_DYLIB_MINOR_NAME)
68
-
69
- # Platform-specific overrides
70
- uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
71
-
72
- USE_SSL?=0
73
-
74
- # This is required for test.c only
75
- ifeq ($(USE_SSL),1)
76
- CFLAGS+=-DHIREDIS_TEST_SSL
77
- endif
78
-
79
- ifeq ($(uname_S),Linux)
80
- SSL_LDFLAGS=-lssl -lcrypto
81
- else
82
- OPENSSL_PREFIX?=/usr/local/opt/openssl
83
- CFLAGS+=-I$(OPENSSL_PREFIX)/include
84
- SSL_LDFLAGS+=-L$(OPENSSL_PREFIX)/lib -lssl -lcrypto
85
- endif
86
-
87
- ifeq ($(uname_S),SunOS)
88
- IS_SUN_CC=$(shell sh -c '$(CC) -V 2>&1 |egrep -i -c "sun|studio"')
89
- ifeq ($(IS_SUN_CC),1)
90
- SUN_SHARED_FLAG=-G
91
- else
92
- SUN_SHARED_FLAG=-shared
93
- endif
94
- REAL_LDFLAGS+= -ldl -lnsl -lsocket
95
- DYLIB_MAKE_CMD=$(CC) $(SUN_SHARED_FLAG) -o $(DYLIBNAME) -h $(DYLIB_MINOR_NAME) $(LDFLAGS)
96
- SSL_DYLIB_MAKE_CMD=$(CC) $(SUN_SHARED_FLAG) -o $(SSL_DYLIBNAME) -h $(SSL_DYLIB_MINOR_NAME) $(LDFLAGS) $(SSL_LDFLAGS)
97
- endif
98
- ifeq ($(uname_S),Darwin)
99
- DYLIBSUFFIX=dylib
100
- DYLIB_MINOR_NAME=$(LIBNAME).$(HIREDIS_SONAME).$(DYLIBSUFFIX)
101
- DYLIB_MAKE_CMD=$(CC) -dynamiclib -Wl,-install_name,$(PREFIX)/$(LIBRARY_PATH)/$(DYLIB_MINOR_NAME) -o $(DYLIBNAME) $(LDFLAGS)
102
- SSL_DYLIB_MAKE_CMD=$(CC) -dynamiclib -Wl,-install_name,$(PREFIX)/$(LIBRARY_PATH)/$(SSL_DYLIB_MINOR_NAME) -o $(SSL_DYLIBNAME) $(LDFLAGS) $(SSL_LDFLAGS)
103
- DYLIB_PLUGIN=-Wl,-undefined -Wl,dynamic_lookup
104
- endif
105
-
106
- all: $(DYLIBNAME) $(STLIBNAME) hiredis-test $(PKGCONFNAME)
107
- ifeq ($(USE_SSL),1)
108
- all: $(SSL_DYLIBNAME) $(SSL_STLIBNAME) $(SSL_PKGCONFNAME)
109
- endif
110
-
111
- # Deps (use make dep to generate this)
112
- alloc.o: alloc.c fmacros.h alloc.h
113
- async.o: async.c fmacros.h alloc.h async.h hiredis.h read.h sds.h net.h dict.c dict.h win32.h async_private.h
114
- dict.o: dict.c fmacros.h alloc.h dict.h
115
- hiredis.o: hiredis.c fmacros.h hiredis.h read.h sds.h alloc.h net.h async.h win32.h
116
- net.o: net.c fmacros.h net.h hiredis.h read.h sds.h alloc.h sockcompat.h win32.h
117
- read.o: read.c fmacros.h alloc.h read.h sds.h win32.h
118
- sds.o: sds.c sds.h sdsalloc.h alloc.h
119
- sockcompat.o: sockcompat.c sockcompat.h
120
- ssl.o: ssl.c hiredis.h read.h sds.h alloc.h async.h win32.h async_private.h
121
- test.o: test.c fmacros.h hiredis.h read.h sds.h alloc.h net.h sockcompat.h win32.h
122
-
123
- $(DYLIBNAME): $(OBJ)
124
- $(DYLIB_MAKE_CMD) -o $(DYLIBNAME) $(OBJ) $(REAL_LDFLAGS)
125
-
126
- $(STLIBNAME): $(OBJ)
127
- $(STLIB_MAKE_CMD) $(STLIBNAME) $(OBJ)
128
-
129
- $(SSL_DYLIBNAME): $(SSL_OBJ)
130
- $(SSL_DYLIB_MAKE_CMD) $(DYLIB_PLUGIN) -o $(SSL_DYLIBNAME) $(SSL_OBJ) $(REAL_LDFLAGS) $(LDFLAGS) $(SSL_LDFLAGS)
131
-
132
- $(SSL_STLIBNAME): $(SSL_OBJ)
133
- $(STLIB_MAKE_CMD) $(SSL_STLIBNAME) $(SSL_OBJ)
134
-
135
- dynamic: $(DYLIBNAME)
136
- static: $(STLIBNAME)
137
- ifeq ($(USE_SSL),1)
138
- dynamic: $(SSL_DYLIBNAME)
139
- static: $(SSL_STLIBNAME)
140
- endif
141
-
142
- # Binaries:
143
- hiredis-example-libevent: examples/example-libevent.c adapters/libevent.h $(STLIBNAME)
144
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< -levent $(STLIBNAME) $(REAL_LDFLAGS)
145
-
146
- hiredis-example-libevent-ssl: examples/example-libevent-ssl.c adapters/libevent.h $(STLIBNAME) $(SSL_STLIBNAME)
147
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< -levent $(STLIBNAME) $(SSL_STLIBNAME) $(REAL_LDFLAGS) $(SSL_LDFLAGS)
148
-
149
- hiredis-example-libev: examples/example-libev.c adapters/libev.h $(STLIBNAME)
150
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< -lev $(STLIBNAME) $(REAL_LDFLAGS)
151
-
152
- hiredis-example-glib: examples/example-glib.c adapters/glib.h $(STLIBNAME)
153
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< $(shell pkg-config --cflags --libs glib-2.0) $(STLIBNAME) $(REAL_LDFLAGS)
154
-
155
- hiredis-example-ivykis: examples/example-ivykis.c adapters/ivykis.h $(STLIBNAME)
156
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< -livykis $(STLIBNAME) $(REAL_LDFLAGS)
157
-
158
- hiredis-example-macosx: examples/example-macosx.c adapters/macosx.h $(STLIBNAME)
159
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< -framework CoreFoundation $(STLIBNAME) $(REAL_LDFLAGS)
160
-
161
- hiredis-example-ssl: examples/example-ssl.c $(STLIBNAME) $(SSL_STLIBNAME)
162
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< $(STLIBNAME) $(SSL_STLIBNAME) $(REAL_LDFLAGS) $(SSL_LDFLAGS)
163
-
164
-
165
- ifndef AE_DIR
166
- hiredis-example-ae:
167
- @echo "Please specify AE_DIR (e.g. <redis repository>/src)"
168
- @false
169
- else
170
- hiredis-example-ae: examples/example-ae.c adapters/ae.h $(STLIBNAME)
171
- $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. -I$(AE_DIR) $< $(AE_DIR)/ae.o $(AE_DIR)/zmalloc.o $(AE_DIR)/../deps/jemalloc/lib/libjemalloc.a -pthread $(STLIBNAME)
172
- endif
173
-
174
- ifndef LIBUV_DIR
175
- hiredis-example-libuv:
176
- @echo "Please specify LIBUV_DIR (e.g. ../libuv/)"
177
- @false
178
- else
179
- hiredis-example-libuv: examples/example-libuv.c adapters/libuv.h $(STLIBNAME)
180
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. -I$(LIBUV_DIR)/include $< $(LIBUV_DIR)/.libs/libuv.a -lpthread -lrt $(STLIBNAME) $(REAL_LDFLAGS)
181
- endif
182
-
183
- ifeq ($(and $(QT_MOC),$(QT_INCLUDE_DIR),$(QT_LIBRARY_DIR)),)
184
- hiredis-example-qt:
185
- @echo "Please specify QT_MOC, QT_INCLUDE_DIR AND QT_LIBRARY_DIR"
186
- @false
187
- else
188
- hiredis-example-qt: examples/example-qt.cpp adapters/qt.h $(STLIBNAME)
189
- $(QT_MOC) adapters/qt.h -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore | \
190
- $(CXX) -x c++ -o qt-adapter-moc.o -c - $(REAL_CFLAGS) -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore
191
- $(QT_MOC) examples/example-qt.h -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore | \
192
- $(CXX) -x c++ -o qt-example-moc.o -c - $(REAL_CFLAGS) -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore
193
- $(CXX) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore -L$(QT_LIBRARY_DIR) qt-adapter-moc.o qt-example-moc.o $< -pthread $(STLIBNAME) -lQtCore
194
- endif
195
-
196
- hiredis-example: examples/example.c $(STLIBNAME)
197
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< $(STLIBNAME) $(REAL_LDFLAGS)
198
-
199
- hiredis-example-push: examples/example-push.c $(STLIBNAME)
200
- $(CC) -o examples/$@ $(REAL_CFLAGS) -I. $< $(STLIBNAME) $(REAL_LDFLAGS)
201
-
202
- examples: $(EXAMPLES)
203
-
204
- TEST_LIBS = $(STLIBNAME)
205
- ifeq ($(USE_SSL),1)
206
- TEST_LIBS += $(SSL_STLIBNAME)
207
- TEST_LDFLAGS = $(SSL_LDFLAGS) -lssl -lcrypto -lpthread
208
- endif
209
-
210
- hiredis-test: test.o $(TEST_LIBS)
211
- $(CC) -o $@ $(REAL_CFLAGS) -I. $^ $(REAL_LDFLAGS) $(TEST_LDFLAGS)
212
-
213
- hiredis-%: %.o $(STLIBNAME)
214
- $(CC) $(REAL_CFLAGS) -o $@ $< $(TEST_LIBS) $(REAL_LDFLAGS)
215
-
216
- test: hiredis-test
217
- ./hiredis-test
218
-
219
- check: hiredis-test
220
- TEST_SSL=$(USE_SSL) ./test.sh
221
-
222
- .c.o:
223
- $(CC) -std=c99 -pedantic -c $(REAL_CFLAGS) $<
224
-
225
- clean:
226
- rm -rf $(DYLIBNAME) $(STLIBNAME) $(SSL_DYLIBNAME) $(SSL_STLIBNAME) $(TESTS) $(PKGCONFNAME) examples/hiredis-example* *.o *.gcda *.gcno *.gcov
227
-
228
- dep:
229
- $(CC) $(CPPFLAGS) $(CFLAGS) -MM *.c
230
-
231
- INSTALL?= cp -pPR
232
-
233
- $(PKGCONFNAME): hiredis.h
234
- @echo "Generating $@ for pkgconfig..."
235
- @echo prefix=$(PREFIX) > $@
236
- @echo exec_prefix=\$${prefix} >> $@
237
- @echo libdir=$(PREFIX)/$(LIBRARY_PATH) >> $@
238
- @echo includedir=$(PREFIX)/$(INCLUDE_PATH) >> $@
239
- @echo >> $@
240
- @echo Name: hiredis >> $@
241
- @echo Description: Minimalistic C client library for Redis. >> $@
242
- @echo Version: $(HIREDIS_MAJOR).$(HIREDIS_MINOR).$(HIREDIS_PATCH) >> $@
243
- @echo Libs: -L\$${libdir} -lhiredis >> $@
244
- @echo Cflags: -I\$${includedir} -D_FILE_OFFSET_BITS=64 >> $@
245
-
246
- $(SSL_PKGCONFNAME): hiredis_ssl.h
247
- @echo "Generating $@ for pkgconfig..."
248
- @echo prefix=$(PREFIX) > $@
249
- @echo exec_prefix=\$${prefix} >> $@
250
- @echo libdir=$(PREFIX)/$(LIBRARY_PATH) >> $@
251
- @echo includedir=$(PREFIX)/$(INCLUDE_PATH) >> $@
252
- @echo >> $@
253
- @echo Name: hiredis_ssl >> $@
254
- @echo Description: SSL Support for hiredis. >> $@
255
- @echo Version: $(HIREDIS_MAJOR).$(HIREDIS_MINOR).$(HIREDIS_PATCH) >> $@
256
- @echo Requires: hiredis >> $@
257
- @echo Libs: -L\$${libdir} -lhiredis_ssl >> $@
258
- @echo Libs.private: -lssl -lcrypto >> $@
259
-
260
- install: $(DYLIBNAME) $(STLIBNAME) $(PKGCONFNAME)
261
- mkdir -p $(INSTALL_INCLUDE_PATH) $(INSTALL_INCLUDE_PATH)/adapters $(INSTALL_LIBRARY_PATH)
262
- $(INSTALL) hiredis.h async.h read.h sds.h alloc.h $(INSTALL_INCLUDE_PATH)
263
- $(INSTALL) adapters/*.h $(INSTALL_INCLUDE_PATH)/adapters
264
- $(INSTALL) $(DYLIBNAME) $(INSTALL_LIBRARY_PATH)/$(DYLIB_MINOR_NAME)
265
- cd $(INSTALL_LIBRARY_PATH) && ln -sf $(DYLIB_MINOR_NAME) $(DYLIBNAME)
266
- $(INSTALL) $(STLIBNAME) $(INSTALL_LIBRARY_PATH)
267
- mkdir -p $(INSTALL_PKGCONF_PATH)
268
- $(INSTALL) $(PKGCONFNAME) $(INSTALL_PKGCONF_PATH)
269
-
270
- ifeq ($(USE_SSL),1)
271
- install: install-ssl
272
-
273
- install-ssl: $(SSL_DYLIBNAME) $(SSL_STLIBNAME) $(SSL_PKGCONFNAME)
274
- mkdir -p $(INSTALL_INCLUDE_PATH) $(INSTALL_LIBRARY_PATH)
275
- $(INSTALL) hiredis_ssl.h $(INSTALL_INCLUDE_PATH)
276
- $(INSTALL) $(SSL_DYLIBNAME) $(INSTALL_LIBRARY_PATH)/$(SSL_DYLIB_MINOR_NAME)
277
- cd $(INSTALL_LIBRARY_PATH) && ln -sf $(SSL_DYLIB_MINOR_NAME) $(SSL_DYLIBNAME)
278
- $(INSTALL) $(SSL_STLIBNAME) $(INSTALL_LIBRARY_PATH)
279
- mkdir -p $(INSTALL_PKGCONF_PATH)
280
- $(INSTALL) $(SSL_PKGCONFNAME) $(INSTALL_PKGCONF_PATH)
281
- endif
282
-
283
- 32bit:
284
- @echo ""
285
- @echo "WARNING: if this fails under Linux you probably need to install libc6-dev-i386"
286
- @echo ""
287
- $(MAKE) CFLAGS="-m32" LDFLAGS="-m32"
288
-
289
- 32bit-vars:
290
- $(eval CFLAGS=-m32)
291
- $(eval LDFLAGS=-m32)
292
-
293
- gprof:
294
- $(MAKE) CFLAGS="-pg" LDFLAGS="-pg"
295
-
296
- gcov:
297
- $(MAKE) CFLAGS="-fprofile-arcs -ftest-coverage" LDFLAGS="-fprofile-arcs"
298
-
299
- coverage: gcov
300
- make check
301
- mkdir -p tmp/lcov
302
- lcov -d . -c -o tmp/lcov/hiredis.info
303
- genhtml --legend -o tmp/lcov/report tmp/lcov/hiredis.info
304
-
305
- noopt:
306
- $(MAKE) OPTIMIZATION=""
307
-
308
- .PHONY: all test check clean dep install 32bit 32bit-vars gprof gcov noopt