rugged-redis 0.2.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 995769de20494fbfcb572fb6803d78cfcb163353
4
+ data.tar.gz: 0d385978edb79cf73bedaf1b3ee4e222d152c489
5
+ SHA512:
6
+ metadata.gz: f59d84087f6267f07ea66f043bc6e3a1e0601954fe5231f147d507070f62291348033a37705071889557dda301a7eae4a479f3e3e8c0cbf84b7e92c3e0df3b95
7
+ data.tar.gz: b507b739747181e3a55d66963eca8fd3e1255d0a6c2ed270304490702e6b086348e254062575edbefccc18e5ac96860901de84435beb328bfe17e42a87f09049
@@ -0,0 +1,90 @@
1
+ require 'mkmf'
2
+ require 'rubygems'
3
+ require 'rugged'
4
+
5
+ $CFLAGS << " #{ENV["CFLAGS"]}"
6
+ $CFLAGS << " -g"
7
+ $CFLAGS << " -O3" unless $CFLAGS[/-O\d/]
8
+ $CFLAGS << " -Wall -Wno-comment"
9
+
10
+ def sys(cmd)
11
+ puts " -- #{cmd}"
12
+ unless ret = xsystem(cmd)
13
+ raise "ERROR: '#{cmd}' failed"
14
+ end
15
+ ret
16
+ end
17
+
18
+ if !find_executable('cmake')
19
+ abort "ERROR: CMake is required to build Rugged."
20
+ end
21
+
22
+ if !(MAKE = find_executable('gmake') || find_executable('make'))
23
+ abort "ERROR: GNU make is required to build Rugged."
24
+ end
25
+
26
+ CWD = File.expand_path(File.dirname(__FILE__))
27
+ ROOT_DIR = File.expand_path(File.join(CWD, '..', '..', '..'))
28
+
29
+ REDIS_BACKEND_DIR = File.join(ROOT_DIR, 'vendor', 'libgit2-backends', 'redis')
30
+
31
+ rugged_spec = Gem::Specification.find {|s| s.name == 'rugged' }
32
+ rugged_root = rugged_spec.gem_dir
33
+ RUGGED_EXT_DIR = File.join(rugged_root, 'ext', 'rugged')
34
+ puts "Found rugged at #{RUGGED_EXT_DIR}"
35
+ LIBGIT2_DIR = File.join(rugged_root, 'vendor', 'libgit2')
36
+
37
+ # Build hiredis
38
+ HIREDIS_DIR = File.join(ROOT_DIR, 'vendor') # because hiredis headers are included as hiredis/hiredis.h
39
+ unless File.directory?(File.join(HIREDIS_DIR, 'hiredis'))
40
+ STDERR.puts "vendor/hiredis missing, please checkout its submodule..."
41
+ exit 1
42
+ end
43
+
44
+ system("cd #{HIREDIS_DIR}/hiredis && make static")
45
+
46
+ puts("Using hiredis from #{HIREDIS_DIR}/hiredis\n")
47
+ dir_config('hiredis', HIREDIS_DIR, File.join(HIREDIS_DIR, "hiredis"))
48
+ unless have_library('hiredis', 'redisConnect')
49
+ abort "ERROR: Failed to build hiredis library"
50
+ end
51
+
52
+ # Build Redis backend
53
+
54
+ Dir.chdir(REDIS_BACKEND_DIR) do
55
+ Dir.mkdir("build") if !Dir.exists?("build")
56
+
57
+ Dir.chdir("build") do
58
+ flags = [
59
+ "-DBUILD_SHARED_LIBS=OFF",
60
+ "-DBUILD_TESTS=OFF",
61
+ "-DCMAKE_C_FLAGS=-fPIC",
62
+ "-DPC_LIBGIT2_LIBRARY_DIRS=#{LIBGIT2_DIR}/build",
63
+ "-DPC_LIBGIT2_INCLUDE_DIRS=#{LIBGIT2_DIR}/include",
64
+ "-DPC_LIBHIREDIS_LIBRARY_DIRS=#{HIREDIS_DIR}/hiredis",
65
+ "-DPC_LIBHIREDIS_INCLUDE_DIRS=#{HIREDIS_DIR}"
66
+ ]
67
+ sys("cmake .. #{flags.join(" ")}")
68
+ sys(MAKE)
69
+ end
70
+ end
71
+
72
+ puts "Using libgit2-redis from #{REDIS_BACKEND_DIR}/build\n"
73
+ $LIBPATH.unshift "#{REDIS_BACKEND_DIR}/build"
74
+
75
+ # Include rugged's header for the backend interface definition
76
+
77
+ puts "Using rugged headers from #{RUGGED_EXT_DIR}\n"
78
+ $CFLAGS << " -I#{RUGGED_EXT_DIR}"
79
+
80
+ # Link against rugged's libgit2
81
+
82
+ puts "Using libgit2 from #{LIBGIT2_DIR}/include and #{LIBGIT2_DIR}/build (rugged bundled)\n"
83
+ $CFLAGS << " -I#{LIBGIT2_DIR}/include"
84
+ $LIBPATH.unshift "#{LIBGIT2_DIR}/build"
85
+
86
+ unless have_library 'git2-redis'
87
+ abort "ERROR: Failed to build libgit2 redis backend"
88
+ end
89
+
90
+ create_makefile("rugged/redis/rugged_redis")
@@ -0,0 +1,16 @@
1
+ #include "rugged_redis.h"
2
+
3
+ VALUE rb_mRugged;
4
+ VALUE rb_cRuggedBackend;
5
+
6
+ VALUE rb_mRuggedRedis;
7
+
8
+ void Init_rugged_redis(void)
9
+ {
10
+ rb_mRugged = rb_const_get(rb_cObject, rb_intern("Rugged"));
11
+ rb_cRuggedBackend = rb_const_get(rb_mRugged, rb_intern("Backend"));
12
+
13
+ rb_mRuggedRedis = rb_const_get(rb_mRugged, rb_intern("Redis"));
14
+
15
+ Init_rugged_redis_backend();
16
+ }
@@ -0,0 +1,4 @@
1
+ #include <ruby.h>
2
+
3
+ void Init_rugged_redis(void);
4
+ void Init_rugged_redis_backend(void);
@@ -0,0 +1,113 @@
1
+ #include <git2/sys/odb_backend.h>
2
+ #include <git2/sys/refdb_backend.h>
3
+ #include <rugged.h>
4
+
5
+ #include "rugged_redis.h"
6
+
7
+ extern VALUE rb_mRuggedRedis;
8
+ extern VALUE rb_cRuggedBackend;
9
+
10
+ VALUE rb_cRuggedRedisBackend;
11
+
12
+ typedef struct {
13
+ rugged_backend backend;
14
+
15
+ char *host;
16
+ int port;
17
+ char *password;
18
+ } rugged_redis_backend;
19
+
20
+ // libgit2-redis interface
21
+
22
+ int git_refdb_backend_hiredis(git_refdb_backend **backend_out, const char* prefix, const char* path, const char *host, int port, char* password);
23
+ int git_odb_backend_hiredis(git_odb_backend **backend_out, const char* prefix, const char* path, const char *host, int port, char* password);
24
+
25
+ static void rb_rugged_redis_backend__free(rugged_redis_backend *backend)
26
+ {
27
+ free(backend->host);
28
+ if (backend->password != NULL)
29
+ free(backend->password);
30
+
31
+ // libgit will free the backends eventually
32
+
33
+ free(backend);
34
+
35
+ return;
36
+ }
37
+
38
+ // Redis backend factory functions
39
+
40
+ static int rugged_redis_odb_backend(git_odb_backend **backend_out, rugged_backend *backend, const char* path)
41
+ {
42
+ rugged_redis_backend *rugged_backend = (rugged_redis_backend *) backend;
43
+ return git_odb_backend_hiredis(backend_out, "rugged", path, rugged_backend->host, rugged_backend->port, rugged_backend->password);
44
+ }
45
+
46
+ static int rugged_redis_refdb_backend(git_refdb_backend **backend_out, rugged_backend *backend, const char* path)
47
+ {
48
+ rugged_redis_backend *rugged_backend = (rugged_redis_backend *) backend;
49
+ return git_refdb_backend_hiredis(backend_out, "rugged", path, rugged_backend->host, rugged_backend->port, rugged_backend->password);
50
+ }
51
+
52
+ // Redis backend initializer
53
+
54
+ static rugged_redis_backend *rugged_redis_backend_new(char* host, int port, char* password)
55
+ {
56
+ rugged_redis_backend *redis_backend = malloc(sizeof(rugged_redis_backend));
57
+
58
+ redis_backend->backend.odb_backend = rugged_redis_odb_backend;
59
+ redis_backend->backend.refdb_backend = rugged_redis_refdb_backend;
60
+
61
+ redis_backend->host = strdup(host);
62
+ redis_backend->port = port;
63
+
64
+ if (password != NULL)
65
+ redis_backend->password = strdup(password);
66
+ else
67
+ redis_backend->password = NULL;
68
+
69
+ return redis_backend;
70
+ }
71
+
72
+ /*
73
+ Public: Initialize a redis backend.
74
+
75
+ opts - hash containing the connection options.
76
+ :host - string, host to connect to
77
+ :port - integer, port number
78
+ :password - (optional) string, redis server password
79
+
80
+ */
81
+ static VALUE rb_rugged_redis_backend_new(VALUE klass, VALUE rb_opts)
82
+ {
83
+ VALUE val;
84
+
85
+ char *host;
86
+ char *password = NULL;
87
+ int port;
88
+
89
+ Check_Type(rb_opts, T_HASH);
90
+
91
+ val = rb_hash_aref(rb_opts, ID2SYM(rb_intern("host")));
92
+ Check_Type(val, T_STRING);
93
+ host = StringValueCStr(val);
94
+
95
+ val = rb_hash_aref(rb_opts, ID2SYM(rb_intern("port")));
96
+ Check_Type(val, T_FIXNUM);
97
+ port = NUM2INT(val);
98
+
99
+ if ((val = rb_hash_aref(rb_opts, ID2SYM(rb_intern("password")))) != Qnil) {
100
+ Check_Type(val, T_STRING);
101
+ password = StringValueCStr(val);
102
+ }
103
+
104
+ return Data_Wrap_Struct(klass, NULL, rb_rugged_redis_backend__free, rugged_redis_backend_new(host, port, password));
105
+ }
106
+
107
+ void Init_rugged_redis_backend(void)
108
+ {
109
+ rb_cRuggedRedisBackend = rb_define_class_under(rb_mRuggedRedis, "Backend", rb_cRuggedBackend);
110
+
111
+ rb_define_singleton_method(rb_cRuggedRedisBackend, "new", rb_rugged_redis_backend_new, 1);
112
+ }
113
+
@@ -0,0 +1,5 @@
1
+ module Rugged
2
+ module Redis
3
+ VERSION = "0.2.1"
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ require "rugged/redis/version"
2
+
3
+ module Rugged
4
+ module Redis
5
+ end
6
+ end
7
+
8
+ require "rugged/redis/rugged_redis"
@@ -0,0 +1 @@
1
+ require 'rugged/redis'
@@ -0,0 +1,217 @@
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=net.o hiredis.o sds.o async.o read.o
7
+ EXAMPLES=hiredis-example hiredis-example-libevent hiredis-example-libev hiredis-example-glib
8
+ TESTS=hiredis-test
9
+ LIBNAME=libhiredis
10
+ PKGCONFNAME=hiredis.pc
11
+
12
+ HIREDIS_MAJOR=$(shell grep HIREDIS_MAJOR hiredis.h | awk '{print $$3}')
13
+ HIREDIS_MINOR=$(shell grep HIREDIS_MINOR hiredis.h | awk '{print $$3}')
14
+ HIREDIS_PATCH=$(shell grep HIREDIS_PATCH hiredis.h | awk '{print $$3}')
15
+ HIREDIS_SONAME=$(shell grep HIREDIS_SONAME hiredis.h | awk '{print $$3}')
16
+
17
+ # Installation related variables and target
18
+ PREFIX?=/usr/local
19
+ INCLUDE_PATH?=include/hiredis
20
+ LIBRARY_PATH?=lib
21
+ PKGCONF_PATH?=pkgconfig
22
+ INSTALL_INCLUDE_PATH= $(DESTDIR)$(PREFIX)/$(INCLUDE_PATH)
23
+ INSTALL_LIBRARY_PATH= $(DESTDIR)$(PREFIX)/$(LIBRARY_PATH)
24
+ INSTALL_PKGCONF_PATH= $(INSTALL_LIBRARY_PATH)/$(PKGCONF_PATH)
25
+
26
+ # redis-server configuration used for testing
27
+ REDIS_PORT=56379
28
+ REDIS_SERVER=redis-server
29
+ define REDIS_TEST_CONFIG
30
+ daemonize yes
31
+ pidfile /tmp/hiredis-test-redis.pid
32
+ port $(REDIS_PORT)
33
+ bind 127.0.0.1
34
+ unixsocket /tmp/hiredis-test-redis.sock
35
+ endef
36
+ export REDIS_TEST_CONFIG
37
+
38
+ # Fallback to gcc when $CC is not in $PATH.
39
+ CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
40
+ CXX:=$(shell sh -c 'type $(CXX) >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
41
+ OPTIMIZATION?=-O3
42
+ WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
43
+ DEBUG_FLAGS?= -g -ggdb
44
+ REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG_FLAGS) $(ARCH)
45
+ REAL_LDFLAGS=$(LDFLAGS) $(ARCH)
46
+
47
+ DYLIBSUFFIX=so
48
+ STLIBSUFFIX=a
49
+ DYLIB_MINOR_NAME=$(LIBNAME).$(DYLIBSUFFIX).$(HIREDIS_SONAME)
50
+ DYLIB_MAJOR_NAME=$(LIBNAME).$(DYLIBSUFFIX).$(HIREDIS_MAJOR)
51
+ DYLIBNAME=$(LIBNAME).$(DYLIBSUFFIX)
52
+ DYLIB_MAKE_CMD=$(CC) -shared -Wl,-soname,$(DYLIB_MINOR_NAME) -o $(DYLIBNAME) $(LDFLAGS)
53
+ STLIBNAME=$(LIBNAME).$(STLIBSUFFIX)
54
+ STLIB_MAKE_CMD=ar rcs $(STLIBNAME)
55
+
56
+ # Platform-specific overrides
57
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
58
+ ifeq ($(uname_S),SunOS)
59
+ REAL_LDFLAGS+= -ldl -lnsl -lsocket
60
+ DYLIB_MAKE_CMD=$(CC) -G -o $(DYLIBNAME) -h $(DYLIB_MINOR_NAME) $(LDFLAGS)
61
+ INSTALL= cp -r
62
+ endif
63
+ ifeq ($(uname_S),Darwin)
64
+ DYLIBSUFFIX=dylib
65
+ DYLIB_MINOR_NAME=$(LIBNAME).$(HIREDIS_SONAME).$(DYLIBSUFFIX)
66
+ DYLIB_MAKE_CMD=$(CC) -shared -Wl,-install_name,$(DYLIB_MINOR_NAME) -o $(DYLIBNAME) $(LDFLAGS)
67
+ endif
68
+
69
+ all: $(DYLIBNAME) $(STLIBNAME) hiredis-test $(PKGCONFNAME)
70
+
71
+ # Deps (use make dep to generate this)
72
+ async.o: async.c fmacros.h async.h hiredis.h read.h sds.h net.h dict.c dict.h
73
+ dict.o: dict.c fmacros.h dict.h
74
+ hiredis.o: hiredis.c fmacros.h hiredis.h read.h sds.h net.h
75
+ net.o: net.c fmacros.h net.h hiredis.h read.h sds.h
76
+ read.o: read.c fmacros.h read.h sds.h
77
+ sds.o: sds.c sds.h
78
+ test.o: test.c fmacros.h hiredis.h read.h sds.h
79
+
80
+ $(DYLIBNAME): $(OBJ)
81
+ $(DYLIB_MAKE_CMD) $(OBJ)
82
+
83
+ $(STLIBNAME): $(OBJ)
84
+ $(STLIB_MAKE_CMD) $(OBJ)
85
+
86
+ dynamic: $(DYLIBNAME)
87
+ static: $(STLIBNAME)
88
+
89
+ # Binaries:
90
+ hiredis-example-libevent: examples/example-libevent.c adapters/libevent.h $(STLIBNAME)
91
+ $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. $< -levent $(STLIBNAME)
92
+
93
+ hiredis-example-libev: examples/example-libev.c adapters/libev.h $(STLIBNAME)
94
+ $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. $< -lev $(STLIBNAME)
95
+
96
+ hiredis-example-glib: examples/example-glib.c adapters/glib.h $(STLIBNAME)
97
+ $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. $< $(shell pkg-config --cflags --libs glib-2.0) $(STLIBNAME)
98
+
99
+ hiredis-example-ivykis: examples/example-ivykis.c adapters/ivykis.h $(STLIBNAME)
100
+ $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. $< -livykis $(STLIBNAME)
101
+
102
+ hiredis-example-macosx: examples/example-macosx.c adapters/macosx.h $(STLIBNAME)
103
+ $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. $< -framework CoreFoundation $(STLIBNAME)
104
+
105
+ ifndef AE_DIR
106
+ hiredis-example-ae:
107
+ @echo "Please specify AE_DIR (e.g. <redis repository>/src)"
108
+ @false
109
+ else
110
+ hiredis-example-ae: examples/example-ae.c adapters/ae.h $(STLIBNAME)
111
+ $(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)
112
+ endif
113
+
114
+ ifndef LIBUV_DIR
115
+ hiredis-example-libuv:
116
+ @echo "Please specify LIBUV_DIR (e.g. ../libuv/)"
117
+ @false
118
+ else
119
+ hiredis-example-libuv: examples/example-libuv.c adapters/libuv.h $(STLIBNAME)
120
+ $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. -I$(LIBUV_DIR)/include $< $(LIBUV_DIR)/.libs/libuv.a -lpthread -lrt $(STLIBNAME)
121
+ endif
122
+
123
+ ifeq ($(and $(QT_MOC),$(QT_INCLUDE_DIR),$(QT_LIBRARY_DIR)),)
124
+ hiredis-example-qt:
125
+ @echo "Please specify QT_MOC, QT_INCLUDE_DIR AND QT_LIBRARY_DIR"
126
+ @false
127
+ else
128
+ hiredis-example-qt: examples/example-qt.cpp adapters/qt.h $(STLIBNAME)
129
+ $(QT_MOC) adapters/qt.h -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore | \
130
+ $(CXX) -x c++ -o qt-adapter-moc.o -c - $(REAL_CFLAGS) -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore
131
+ $(QT_MOC) examples/example-qt.h -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore | \
132
+ $(CXX) -x c++ -o qt-example-moc.o -c - $(REAL_CFLAGS) -I. -I$(QT_INCLUDE_DIR) -I$(QT_INCLUDE_DIR)/QtCore
133
+ $(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
134
+ endif
135
+
136
+ hiredis-example: examples/example.c $(STLIBNAME)
137
+ $(CC) -o examples/$@ $(REAL_CFLAGS) $(REAL_LDFLAGS) -I. $< $(STLIBNAME)
138
+
139
+ examples: $(EXAMPLES)
140
+
141
+ hiredis-test: test.o $(STLIBNAME)
142
+
143
+ hiredis-%: %.o $(STLIBNAME)
144
+ $(CC) $(REAL_CFLAGS) -o $@ $(REAL_LDFLAGS) $< $(STLIBNAME)
145
+
146
+ test: hiredis-test
147
+ ./hiredis-test
148
+
149
+ check: hiredis-test
150
+ @echo "$$REDIS_TEST_CONFIG" | $(REDIS_SERVER) -
151
+ $(PRE) ./hiredis-test -h 127.0.0.1 -p $(REDIS_PORT) -s /tmp/hiredis-test-redis.sock || \
152
+ ( kill `cat /tmp/hiredis-test-redis.pid` && false )
153
+ kill `cat /tmp/hiredis-test-redis.pid`
154
+
155
+ .c.o:
156
+ $(CC) -std=c99 -pedantic -c $(REAL_CFLAGS) $<
157
+
158
+ clean:
159
+ rm -rf $(DYLIBNAME) $(STLIBNAME) $(TESTS) $(PKGCONFNAME) examples/hiredis-example* *.o *.gcda *.gcno *.gcov
160
+
161
+ dep:
162
+ $(CC) -MM *.c
163
+
164
+ ifeq ($(uname_S),SunOS)
165
+ INSTALL?= cp -r
166
+ endif
167
+
168
+ INSTALL?= cp -a
169
+
170
+ $(PKGCONFNAME): hiredis.h
171
+ @echo "Generating $@ for pkgconfig..."
172
+ @echo prefix=$(PREFIX) > $@
173
+ @echo exec_prefix=\$${prefix} >> $@
174
+ @echo libdir=$(PREFIX)/$(LIBRARY_PATH) >> $@
175
+ @echo includedir=$(PREFIX)/$(INCLUDE_PATH) >> $@
176
+ @echo >> $@
177
+ @echo Name: hiredis >> $@
178
+ @echo Description: Minimalistic C client library for Redis. >> $@
179
+ @echo Version: $(HIREDIS_MAJOR).$(HIREDIS_MINOR).$(HIREDIS_PATCH) >> $@
180
+ @echo Libs: -L\$${libdir} -lhiredis >> $@
181
+ @echo Cflags: -I\$${includedir} -D_FILE_OFFSET_BITS=64 >> $@
182
+
183
+ install: $(DYLIBNAME) $(STLIBNAME) $(PKGCONFNAME)
184
+ mkdir -p $(INSTALL_INCLUDE_PATH) $(INSTALL_LIBRARY_PATH)
185
+ $(INSTALL) hiredis.h async.h read.h sds.h adapters $(INSTALL_INCLUDE_PATH)
186
+ $(INSTALL) $(DYLIBNAME) $(INSTALL_LIBRARY_PATH)/$(DYLIB_MINOR_NAME)
187
+ cd $(INSTALL_LIBRARY_PATH) && ln -sf $(DYLIB_MINOR_NAME) $(DYLIBNAME)
188
+ $(INSTALL) $(STLIBNAME) $(INSTALL_LIBRARY_PATH)
189
+ mkdir -p $(INSTALL_PKGCONF_PATH)
190
+ $(INSTALL) $(PKGCONFNAME) $(INSTALL_PKGCONF_PATH)
191
+
192
+ 32bit:
193
+ @echo ""
194
+ @echo "WARNING: if this fails under Linux you probably need to install libc6-dev-i386"
195
+ @echo ""
196
+ $(MAKE) CFLAGS="-m32" LDFLAGS="-m32"
197
+
198
+ 32bit-vars:
199
+ $(eval CFLAGS=-m32)
200
+ $(eval LDFLAGS=-m32)
201
+
202
+ gprof:
203
+ $(MAKE) CFLAGS="-pg" LDFLAGS="-pg"
204
+
205
+ gcov:
206
+ $(MAKE) CFLAGS="-fprofile-arcs -ftest-coverage" LDFLAGS="-fprofile-arcs"
207
+
208
+ coverage: gcov
209
+ make check
210
+ mkdir -p tmp/lcov
211
+ lcov -d . -c -o tmp/lcov/hiredis.info
212
+ genhtml --legend -o tmp/lcov/report tmp/lcov/hiredis.info
213
+
214
+ noopt:
215
+ $(MAKE) OPTIMIZATION=""
216
+
217
+ .PHONY: all test check clean dep install 32bit 32bit-vars gprof gcov noopt