5 # hard paths to development versions of libraries
7 LIBEVENT_H_PATH ?= $(LIBEVENT_PATH)/include
8 LIBEVENT_CPPFLAGS = -I$(LIBEVENT_H_PATH)
9 LIBEVENT_LIB_PATH ?= $(LIBEVENT_PATH)/lib
10 LIBEVENT_LDFLAGS = -L$(LIBEVENT_LIB_PATH) -levent -levent_pthreads -levent_openssl
14 LIBUUID_H_PATH ?= $(LIBUUID_PATH)/include
15 LIBUUID_CPPFLAGS = -I$(LIBUUID_H_PATH)
16 LIBUUID_LIB_PATH ?= $(LIBUUID_PATH)/lib
17 LIBUUID_LDFLAGS = -L$(LIBUUID_LIB_PATH) -lossp-uuid
21 OPENSSL_H_PATH ?= $(OPENSSL_PATH)/include
23 OPENSSL_LIB_PATH ?= $(OPENSSL_PATH)/lib
24 OPENSSL_LDFLAGS = -lssl -lcrypto
28 LUA_H_PATH ?= $(LUA_PATH)/include/lua5.4
29 LUA_CPPFLAGS = -I$(LUA_H_PATH)
30 LUA_LIB_PATH ?= $(LUA_PATH)/lib
31 LUA_LDFLAGS = -L$(LUA_LIB_PATH) -llua5.4
35 SQLITE_H_PATH ?= $(SQLITE_PATH)/include
36 SQLITE_CPPFLAGS = -I$(SQLITE_H_PATH)
37 SQLITE_LIB_PATH ?= $(SQLITE_PATH)/lib
38 SQLITE_LDFLAGS = -L$(SQLITE_LIB_PATH) -lsqlite3
40 # so many libraries, it's like playing with Lego bricks
42 SOURCES = command.c common.c connections.c db.c lua_interface.c main.c notify.c server.c workqueue.c
43 OBJECTS = $(SOURCES:.c=.o)
46 # In order to use the OSSP uuid library on the darwin platform,
47 # _POSIX_SOURCE needs to be defined so that the platform doesn't
48 # attempt to provide its own uuid_t type.
49 CPPFLAGS += -D_POSIX_C_SOURCE=200112L
50 # Linux needs additional specifications when _POSIX_C_SOURCE is
52 CPPFLAGS += -D_XOPEN_SOURCE=700
54 CPPFLAGS += -D_REENTRANT
56 CFLAGS += -DDEBUG_SILLY
58 CFLAGS += -g -Wall -Wextra -Werror
59 CPPFLAGS += $(LIBEVENT_CPPFLAGS) $(LIBUUID_CPPFLAGS) $(OPENSSL_CPPFLAGS) $(LUA_CPPFLAGS) $(SQLITE_CPPFLAGS)
60 LDFLAGS += $(LIBEVENT_LDFLAGS) $(LIBUUID_LDFLAGS) $(OPENSSL_LDFLAGS) $(LUA_LDFLAGS) $(SQLITE_LDFLAGS)
62 ifeq ($(shell uname), Linux)
63 # Linux needs librt to see some clock and pthread functions.
65 # Linux needs -pthread for pthread_mutexattr_init
70 MAKEDEPEND = $(CC) $(CPPFLAGS) -MM
74 all: $(TARGET) Makefile.depend
77 ./version.sh 0 0 prototype
79 Makefile.depend: $(SOURCES) version.h
83 $(CC) -o $@ $^ $(LDFLAGS)
86 rm -f $(TARGET) *.o Makefile.depend
88 -include Makefile.depend