Better Makefile for MessagePack

master
Nicolas Favre-Felix 13 years ago
parent a4408b6486
commit 4e07580a4c

@ -1,14 +1,28 @@
OUT=webdis
HIREDIS_OBJ=hiredis/hiredis.o hiredis/sds.o hiredis/net.o hiredis/async.o
JANSSON_OBJ=jansson/src/dump.o jansson/src/error.o jansson/src/hashtable.o jansson/src/load.o jansson/src/strbuffer.o jansson/src/utf.o jansson/src/value.o jansson/src/variadic.o
JANSSON_OBJ=jansson/src/dump.o jansson/src/error.o jansson/src/hashtable.o jansson/src/load.o jansson/src/strbuffer.o jansson/src/utf.o jansson/src/value.o jansson/src/variadic.o
FORMAT_OBJS=formats/json.o formats/raw.o formats/common.o formats/custom-type.o formats/bson.o
HTTP_PARSER_OBJS=http-parser/http_parser.o
DEPS=$(FORMAT_OBJS) $(HIREDIS_OBJ) $(JANSSON_OBJ) $(HTTP_PARSER_OBJS)
OBJS=webdis.o cmd.o worker.o slog.o server.o libb64/cencode.o acl.o md5/md5.o http.o client.o websocket.o pool.o conf.o $(DEPS)
CFLAGS=-O3 -Wall -Wextra -I. -Ijansson/src -Ihttp-parser
LDFLAGS=-levent -pthread
# check for MessagePack
MSGPACK_LIB=$(shell ls /usr/lib/libmsgpack.so)
ifneq ($(strip $(MSGPACK_LIB)),)
FORMAT_OBJS += formats/msgpack.o
CFLAGS += -DMSGPACK=1
LDFLAGS += -lmsgpack
else
CFLAGS += -DMSGPACK=0
endif
DEPS=$(FORMAT_OBJS) $(HIREDIS_OBJ) $(JANSSON_OBJ) $(HTTP_PARSER_OBJS)
OBJS=webdis.o cmd.o worker.o slog.o server.o libb64/cencode.o acl.o md5/md5.o http.o client.o websocket.o pool.o conf.o $(DEPS)
PREFIX ?= /usr/local
CONFDIR ?= $(DESTDIR)/etc
@ -17,20 +31,7 @@ INSTALL_DIRS = $(DESTDIR) \
$(DESTDIR)/$(PREFIX)/bin \
$(CONFDIR)
all: .CHECK_FOR_MSGPACK
.CHECK_FOR_MSGPACK:
@if [ -f /usr/lib/libmsgpack.so ]; then make .WITH_MSGPACK; else make .WITHOUT_MSGPACK ; fi
.WITH_MSGPACK:
@echo "Building with MsgPack support"
@make CFLAGS="$(CFLAGS) -DMSGPACK=1" FORMAT_OBJS="$(FORMAT_OBJS) formats/msgpack.o" .REAL_BUILD
.WITHOUT_MSGPACK:
@echo "Building without MsgPack support"
@make .REAL_BUILD
.REAL_BUILD: $(OUT) Makefile
all: $(OUT) Makefile
$(OUT): $(OBJS) Makefile
$(CC) $(LDFLAGS) -o $(OUT) $(OBJS)

Loading…
Cancel
Save