-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
82 lines (66 loc) · 2.07 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
CC=gcc
UNAME=$(shell uname)
CFLAGS= -Wall -Werror
_Darwin_ldflags= -lm -lpthread -framework CoreServices
_Linux_ldflags= -lrt -lm -lpthread
LDFLAGS=$(_$(UNAME)_ldflags)
RAGEL=ragel -G2
CBUILD=$(CC) $(CFLAGS)
REDISK_DEPS= server.c parser.o resolving.o tcdb.o deps/libuv/libuv.a deps/tokyocabinet-1.4.47/libtokyocabinet.a
all: redisk parser-test redis-cli-test
deps/libuv/libuv.a:
$(MAKE) -C deps/libuv
deps/tokyocabinet-1.4.47/libtokyocabinet.a:
@/bin/bash -c "pushd deps/tokyocabinet-1.4.47;\
./configure --disable-shared --disable-zlib \
--disable-bzip --disable-exlzma --disable-exlzo;\
popd;"
$(MAKE) -C deps/tokyocabinet-1.4.47 libtokyocabinet.a
parser.c: parser.rl
$(RAGEL) parser.rl
parser.o: parser.c
$(CBUILD) -c -o parser.o parser.c
resolving.o: resolving.c
$(CBUILD) -c -o resolving.o resolving.c
tcdb.o: tcdb.c deps/tokyocabinet-1.4.47/libtokyocabinet.a
$(CBUILD) -c -o tcdb.o tcdb.c -Ideps/tokyocabinet-1.4.47
parser-test: parser.o parser-test.c
$(CBUILD) -o parser-test parser.o parser-test.c
redisk: $(REDISK_DEPS)
$(CBUILD) -I. -Ideps/libuv/include -Ideps/tokyocabinet-1.4.47 $(LDFLAGS) \
-o redisk $(REDISK_DEPS)
redis-cli-test: redis-cli-test.c
$(CBUILD) -o redis-cli-test redis-cli-test.c
get-deps:
bash -c " \
mkdir deps ;\
pushd deps ;\
echo 5 ;\
curl -O --progress-bar\
http://fallabs.com/tokyocabinet/tokyocabinet-1.4.47.tar.gz ;\
tar xf tokyocabinet-1.4.47.tar.gz ;\
rm -f tokyocabinet-1.4.47.tar.gz ;\
git clone git://github.com/joyent/libuv.git ;\
popd ;\
"
clean:
rm -f redisk
rm -f parser.o
rm -f parser.c
rm -f tcdb.o
rm -f resolving.o
rm -f parser-test
rm -f redis-cli-test
all-clean: clean
$(MAKE) -C deps/libuv clean
$(MAKE) -C deps/tokyocabinet-1.4.47 clean
help:
@echo '[BOOTSTRAP]'
@echo ' get-deps fetch dependencies'
@echo
@echo '[BUILD]'
@echo ' redisk build the redisk server (cli)'
@echo
@echo '[CLEAN]'
@echo ' clean clean the cli tool and object files'
@echo ' all-clean clean the deps in addition'