1 CFLAGS=${shell pkg-config libevent_openssl --cflags} -ggdb -Wall --std=c99 $(INCLUDES)
2 LDFLAGS=${shell pkg-config libevent_openssl --libs} ${shell pkg-config libssl --libs} -lmagic -lattr -lpthread
3 INCLUDES=-Isrc -Ilib/evhtp/ -Ilib/evhtp/htparse -Ilib/evhtp/evthr -Ilib/evhtp/oniguruma/
5 BASE_OBJECTS=src/config.o
6 COMMON_OBJECTS=src/common/log.o src/common/user.o src/common/auth.o src/common/json.o
7 HANDLER_OBJECTS=src/handler/storage.o src/handler/auth.o src/handler/webfinger.o src/handler/dispatch.o
8 PROCESS_OBJECTS=src/process/main.o
9 OBJECTS=$(BASE_OBJECTS) $(COMMON_OBJECTS) $(PROCESS_OBJECTS) $(HANDLER_OBJECTS)
11 STATIC_LIBS=lib/evhtp/build/libevhtp.a
19 rs-serve: $(STATIC_LIBS) $(OBJECTS)
21 @$(CC) -o $@ $(OBJECTS) $(STATIC_LIBS) $(LDFLAGS)
24 @echo "[CC] ${shell echo $@ | sed 's/src\///' | sed 's/\.o//'}"
25 @$(CC) -c $< -o $@ $(CFLAGS)
27 tools: tools/add-token tools/remove-token tools/list-tokens
31 tools/add-token: src/tools/add-token.o src/common/auth.o
33 @$(CC) -o $@ src/tools/add-token.o src/common/auth.o
35 tools/remove-token: src/tools/remove-token.o src/common/auth.o
37 @$(CC) -o $@ src/tools/remove-token.o src/common/auth.o
39 tools/list-tokens: src/tools/list-tokens.o src/common/auth.o
41 @$(CC) -o $@ src/tools/list-tokens.o src/common/auth.o
45 @rm -f rs-serve tools/add-token tools/remove-token tools/list-tokens
46 @find src/ -name '*.o' -exec rm '{}' ';'
47 @find -name '*~' -exec rm '{}' ';'
48 @find -name '*.swp' -exec rm '{}' ';'
51 @grep -rE 'TODO:|FIXME:' src/
57 @echo "[INSTALL] rs-serve"
58 @install -s rs-serve /usr/bin
60 @echo "[INSTALL] rs-list-tokens"
61 @install -s tools/list-tokens /usr/bin/rs-list-tokens
62 @echo "[INSTALL] rs-add-token"
63 @install -s tools/add-token /usr/bin/rs-add-token
64 @echo "[INSTALL] rs-remove-token"
65 @install -s tools/remove-token /usr/bin/rs-remove-token
67 @echo "[MKDIR] /var/lib/rs-serve/"
68 @mkdir -p /var/lib/rs-serve
69 # install init scxript
70 @echo "[INSTALL] /etc/init.d/rs-serve"
71 @install -m 0755 init-script.sh /etc/init.d/rs-serve
72 ifeq (${shell test -f /etc/default/rs-serve >/dev/null 2>&1 ; echo $$?}, 0)
73 @echo "[EXISTS] /etc/default/rs-serve"
75 @echo "[INSTALL] /etc/default/rs-serve"
76 @install init-script-defaults /etc/default/rs-serve
78 ifeq (${shell type update-rc.d >/dev/null 2>&1 ; echo $$?}, 0)
80 @update-rc.d rs-serve defaults
82 @echo "(can't update /etc/rcN.d, no idea how that works on your system)"
92 scripts/limitcheck.sh 5000
94 .PHONY: default all clean leakcheck
98 lib/evhtp/build/libevhtp.a: lib/evhtp/
99 @echo "[DEPS] libevhtp"
100 @cd lib/evhtp/build && cmake .. && make
104 submodules: $(SUBMODULES)
107 @echo "[CLEAN SUBMODULES]"
108 @rm -rf $(SUBMODULES)
111 @echo "[SUBMODULE] $@"
112 @git submodule update --init $@
114 .PHONY: submodules clean-submodules $(SUBMODULES)