196 lines
6.2 KiB
Makefile
196 lines
6.2 KiB
Makefile
# Hard coded Makefile for windows
|
|
#
|
|
# Tip: If you want to be able to build 32bit and 64 bit versions
|
|
# on the same machine you can install libevent and pthreads in
|
|
# let's say: /usr/local32 and /usr/local64 and you should
|
|
# be able to compile with:
|
|
# make -f win32/Makefile.mingw LOCAL=/usr/local32
|
|
# make -f win32/Makefile.mingw LOCAL=/usr/local64 CC=x86_64-w64-mingw32-gcc
|
|
#
|
|
|
|
CC = gcc
|
|
LOCAL=/usr/local
|
|
LOCALLIB=-L${LOCAL}/lib
|
|
LOCALINC=-I${LOCAL}/include
|
|
DEST=${LOCAL}
|
|
INSTALLDIRS=${DEST}/bin ${DEST}/lib ${DEST}/include/memcached
|
|
|
|
OBJDIR = .libs \
|
|
.libs/engines \
|
|
.libs/daemon \
|
|
.libs/engines/default_engine \
|
|
.libs/extensions/daemon \
|
|
.libs/extensions/loggers \
|
|
.libs/extensions/protocol \
|
|
.libs/programs \
|
|
.libs/testsuite \
|
|
.libs/utilities \
|
|
.libs/win32
|
|
|
|
BINARIES= mcstat.exe \
|
|
memcached.exe \
|
|
engine_testapp.exe \
|
|
sizes.exe \
|
|
.libs/ascii_scrub.so \
|
|
.libs/basic_engine_testsuite.so \
|
|
.libs/default_engine.so \
|
|
.libs/example_protocol.so \
|
|
.libs/eventlog_logger.so \
|
|
.libs/stdin_term_handler.so
|
|
|
|
LIB=${LOCALLIB}
|
|
INCLUDE=-Iinclude -I. -Idaemon -Iprograms -Iextensions -Iwin32 -I.libs ${LOCALINC}
|
|
|
|
all: ${BINARIES}
|
|
|
|
install: ${BINARIES} ${INSTALLDIRS}
|
|
cp memcached.exe .libs/default_engine.so .libs/ascii_scrub.so ${DEST}/lib
|
|
cp mcstat.exe ${DEST}/bin
|
|
cp include/memcached/* ${DEST}/include/memcached
|
|
|
|
CFLAGS = -std=gnu99 -O2 -g -DNDEBUG -fno-strict-aliasing -Wall \
|
|
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \
|
|
-Wredundant-decls \
|
|
${INCLUDE} -DHAVE_CONFIG_H
|
|
|
|
MCSTAT_SRC = programs/mcstat.c win32/win32.c
|
|
MCSTAT_OBJS = ${MCSTAT_SRC:%.c=.libs/%.o}
|
|
|
|
MEMCACHED_SRC = \
|
|
daemon/cache.c \
|
|
daemon/hash.c \
|
|
daemon/isasl.c \
|
|
daemon/memcached.c \
|
|
daemon/sasl_defs.c \
|
|
daemon/stats.c \
|
|
daemon/thread.c \
|
|
daemon/topkeys.c \
|
|
utilities/config_parser.c \
|
|
utilities/engine_loader.c \
|
|
utilities/extension_loggers.c\
|
|
utilities/genhash.c \
|
|
utilities/util.c \
|
|
win32/defs.c \
|
|
win32/dlfcn.c \
|
|
win32/win32.c
|
|
MEMCACHED_OBJS = ${MEMCACHED_SRC:%.c=.libs/%.o}
|
|
|
|
ENGINE_TESTAPP_SRC = \
|
|
programs/engine_testapp.c \
|
|
programs/mock_server.c \
|
|
utilities/config_parser.c \
|
|
utilities/engine_loader.c \
|
|
utilities/extension_loggers.c \
|
|
utilities/util.c \
|
|
win32/dlfcn.c
|
|
ENGINE_TESTAPP_OBJS = ${ENGINE_TESTAPP_SRC:%.c=.libs/%.o}
|
|
|
|
SIZES_SRC = programs/sizes.c
|
|
SIZES_OBJS = ${SIZES_SRC:%.c=.libs/%.o}
|
|
|
|
DEFAULT_ENGINE_SRC = \
|
|
engines/default_engine/assoc.c \
|
|
engines/default_engine/default_engine.c \
|
|
engines/default_engine/items.c \
|
|
engines/default_engine/slabs.c \
|
|
utilities/util.c
|
|
DEFAULT_ENGINE_OBJS = ${DEFAULT_ENGINE_SRC:%.c=.libs/%.o}
|
|
|
|
ASCII_SCRUB_SRC = extensions/protocol/ascii_scrub.c
|
|
ASCII_SCRUB_OBJS = ${ASCII_SCRUB_SRC:%.c=.libs/%.o}
|
|
|
|
EXAMPLE_PROTOCOL_SRC = extensions/protocol/example_protocol.c
|
|
EXAMPLE_PROTOCOL_OBJS = ${EXAMPLE_PROTOCOL_SRC:%.c=.libs/%.o}
|
|
|
|
STDIN_TERM_HANDLER_SRC = extensions/daemon/stdin_check.c
|
|
STDIN_TERM_HANDLER_OBJS = ${STDIN_TERM_HANDLER_SRC:%.c=.libs/%.o}
|
|
|
|
EVENTLOG_LOGGER_SRC = extensions/loggers/eventlog_logger.c
|
|
EVENTLOG_LOGGER_OBJS = ${EVENTLOG_LOGGER_SRC:%.c=.libs/%.o}
|
|
|
|
BASIC_ENGINE_TESTSUITE_SRC = testsuite/basic_engine_testsuite.c
|
|
BASIC_ENGINE_TESTSUITE_OBJS = ${BASIC_ENGINE_TESTSUITE_SRC:%.c=.libs/%.o}
|
|
|
|
GENFILES=.libs/config_version.h
|
|
|
|
mcstat.exe: ${OBJDIR} ${GENFILES} $(MCSTAT_OBJS)
|
|
${LINK.c} -o $@ $(MCSTAT_OBJS) \
|
|
${LIB} -lmswsock -lws2_32
|
|
|
|
memcached.exe: ${OBJDIR} ${GENFILES} $(MEMCACHED_OBJS)
|
|
${LINK.c} -o $@ $(MEMCACHED_OBJS) \
|
|
${LIB} -levent -lmswsock \
|
|
-lws2_32 -lpthread
|
|
|
|
engine_testapp.exe: ${OBJDIR} ${GENFILES} $(ENGINE_TESTAPP_OBJS)
|
|
${LINK.c} -o $@ $(ENGINE_TESTAPP_OBJS) \
|
|
${LIB} -levent -lmswsock \
|
|
-lws2_32 -lpthread
|
|
|
|
sizes.exe: ${OBJDIR} ${GENFILES} $(SIZES_OBJS)
|
|
${LINK.c} -o $@ $(SIZES_OBJS)
|
|
|
|
.libs/default_engine.so: ${OBJDIR} $(DEFAULT_ENGINE_OBJS)
|
|
${LINK.c} -o $@ -shared ${DEFAULT_ENGINE_OBJS} \
|
|
${LIB} -lws2_32 -lpthread
|
|
|
|
.libs/ascii_scrub.so: ${OBJDIR} $(ASCII_SCRUB_OBJS)
|
|
${LINK.c} -o $@ -shared ${ASCII_SCRUB_OBJS}
|
|
|
|
.libs/example_protocol.so: ${OBJDIR} $(EXAMPLE_PROTOCOL_OBJS)
|
|
${LINK.c} -o $@ -shared ${EXAMPLE_PROTOCOL_OBJS}
|
|
|
|
.libs/stdin_term_handler.so: ${OBJDIR} $(STDIN_TERM_HANDLER_OBJS)
|
|
${LINK.c} -o $@ -shared ${STDIN_TERM_HANDLER_OBJS} ${LIBS} \
|
|
${LIB} -lpthread
|
|
|
|
.libs/eventlog_logger.so: ${OBJDIR} $(EVENTLOG_LOGGER_OBJS)
|
|
${LINK.c} -o $@ -shared ${EVENTLOG_LOGGER_OBJS} ${LIBS} \
|
|
${LIB}
|
|
|
|
.libs/basic_engine_testsuite.so: ${OBJDIR} $(BASIC_ENGINE_TESTSUITE_OBJS)
|
|
${LINK.c} -o $@ -shared ${BASIC_ENGINE_TESTSUITE_OBJS} ${LIB} -lpthread -lws2_32
|
|
|
|
.libs/config_version.h:
|
|
./win32/config.sh
|
|
|
|
${OBJDIR} ${INSTALLDIRS}:; -@mkdir -p $@
|
|
|
|
.libs/%.o: %.c
|
|
${COMPILE.c} -MMD $< -o $@
|
|
|
|
clean:
|
|
$(RM) ${BINARIES} \
|
|
${ASCII_SCRUB_OBJS:.o=.d} \
|
|
${ASCII_SCRUB_OBJS} \
|
|
${BASIC_ENGINE_TESTSUITE_OBJS:.o=.d} \
|
|
${BASIC_ENGINE_TESTSUITE_OBJS} \
|
|
${DEFAULT_ENGINE_OBJS:.o=.d} \
|
|
${DEFAULT_ENGINE_OBJS} \
|
|
${ENGINE_TESTAPP_OBJS:.o=.d} \
|
|
${ENGINE_TESTAPP_OBJS} \
|
|
${EXAMPLE_PROTOCOL_OBJS:.o=.d} \
|
|
${EXAMPLE_PROTOCOL_OBJS} \
|
|
${GENFILES} \
|
|
${MCSTAT_OBJS:.o=.d} \
|
|
${MCSTAT_OBJS} \
|
|
${MEMCACHED_OBJS:.o=.d} \
|
|
${MEMCACHED_OBJS} \
|
|
${SIZES_OBJS:.o=.d} \
|
|
${SIZES_OBJS} \
|
|
${EVENTLOG_LOGGER_OBJS:.o=.d} \
|
|
${EVENTLOG_LOGGER_OBJS} \
|
|
${STDIN_TERM_HANDLER_OBJS:.o=.d} \
|
|
${STDIN_TERM_HANDLER_OBJS}
|
|
|
|
-include ${ASCII_SCRUB_OBJS:.o=.d} \
|
|
${BASIC_ENGINE_TESTSUITE_OBJS:.o=.d} \
|
|
${DEFAULT_ENGINE_OBJS:.o=.d} \
|
|
${ENGINE_TESTAPP_OBJS:.o=.d} \
|
|
${EXAMPLE_PROTOCOL_OBJS:.o=.d} \
|
|
${MEMCACHED_OBJS:.o=.d} \
|
|
${MCSTAT_OBJS:.o=.d} \
|
|
${SIZES_OBJS:.o=.d} \
|
|
${EVENTLOG_LOGGER_OBJS:.o=.d} \
|
|
${STDIN_TERM_HANDLER_OBJS:.o=.d}
|