summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/src/Makefile')
-rw-r--r--examples/redis-unstable/src/Makefile563
1 files changed, 0 insertions, 563 deletions
diff --git a/examples/redis-unstable/src/Makefile b/examples/redis-unstable/src/Makefile
deleted file mode 100644
index 24b9a39..0000000
--- a/examples/redis-unstable/src/Makefile
+++ /dev/null
@@ -1,563 +0,0 @@
-# Redis Makefile
-# Copyright (c) 2011-Present, Redis Ltd.
-# All rights reserved.
-#
-# Licensed under your choice of (a) the Redis Source Available License 2.0
-# (RSALv2); or (b) the Server Side Public License v1 (SSPLv1); or (c) the
-# GNU Affero General Public License v3 (AGPLv3).
-#
-# The Makefile composes the final FINAL_CFLAGS and FINAL_LDFLAGS using
-# what is needed for Redis plus the standard CFLAGS and LDFLAGS passed.
-# However when building the dependencies (Jemalloc, Lua, Hiredis, ...)
-# CFLAGS and LDFLAGS are propagated to the dependencies, so to pass
-# flags only to be used when compiling / linking Redis itself REDIS_CFLAGS
-# and REDIS_LDFLAGS are used instead (this is the case of 'make gcov').
-#
-# Dependencies are stored in the Makefile.dep file. To rebuild this file
-# Just use 'make dep', but this is only needed by developers.
-
-release_hdr := $(shell sh -c './mkreleasehdr.sh')
-uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
-uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
-CLANG := $(findstring clang,$(shell sh -c '$(CC) --version | head -1'))
-
-# Optimization flags. To override, the OPTIMIZATION variable can be passed, but
-# some automatic defaults are added to it. To specify optimization flags
-# explicitly without any defaults added, pass the OPT variable instead.
-OPTIMIZATION?=-O3
-ifeq ($(OPTIMIZATION),-O3)
- ifeq (clang,$(CLANG))
- OPTIMIZATION+=-flto
- else
- OPTIMIZATION+=-flto=auto
- endif
-endif
-ifneq ($(OPTIMIZATION),-O0)
- OPTIMIZATION+=-fno-omit-frame-pointer
-endif
-DEPENDENCY_TARGETS=hiredis linenoise lua hdr_histogram fpconv fast_float xxhash
-NODEPS:=clean distclean
-
-# Default settings
-STD=-pedantic -DREDIS_STATIC=''
-
-# Use -Wno-c11-extensions on clang, either where explicitly used or on
-# platforms we can assume it's being used.
-ifeq (clang,$(CLANG))
- STD+=-Wno-c11-extensions
-else
-ifneq (,$(findstring FreeBSD,$(uname_S)))
- STD+=-Wno-c11-extensions
-endif
-endif
-WARN=-Wall -W -Wno-missing-field-initializers -Werror=deprecated-declarations -Wstrict-prototypes
-OPT=$(OPTIMIZATION)
-
-SKIP_VEC_SETS?=no
-# Detect if the compiler supports C11 _Atomic.
-# NUMBER_SIGN_CHAR is a workaround to support both GNU Make 4.3 and older versions.
-NUMBER_SIGN_CHAR := \#
-C11_ATOMIC := $(shell sh -c 'echo "$(NUMBER_SIGN_CHAR)include <stdatomic.h>" > foo.c; \
- $(CC) -std=gnu11 -c foo.c -o foo.o > /dev/null 2>&1; \
- if [ -f foo.o ]; then echo "yes"; rm foo.o; fi; rm foo.c')
-ifeq ($(C11_ATOMIC),yes)
- STD+=-std=gnu11
-else
- SKIP_VEC_SETS=yes
- STD+=-std=c99
-endif
-
-PREFIX?=/usr/local
-INSTALL_BIN=$(PREFIX)/bin
-INSTALL=install
-PKG_CONFIG?=pkg-config
-
-ifndef PYTHON
-PYTHON := $(shell which python3 || which python)
-endif
-
-# Default allocator defaults to Jemalloc on Linux and libc otherwise
-MALLOC=libc
-ifeq ($(uname_S),Linux)
- MALLOC=jemalloc
-endif
-
-# To get ARM stack traces if Redis crashes we need a special C flag.
-ifneq (,$(filter aarch64 armv%,$(uname_M)))
- CFLAGS+=-funwind-tables
-endif
-
-# Backwards compatibility for selecting an allocator
-ifeq ($(USE_TCMALLOC),yes)
- MALLOC=tcmalloc
-endif
-
-ifeq ($(USE_TCMALLOC_MINIMAL),yes)
- MALLOC=tcmalloc_minimal
-endif
-
-ifeq ($(USE_JEMALLOC),yes)
- MALLOC=jemalloc
-endif
-
-ifeq ($(USE_JEMALLOC),no)
- MALLOC=libc
-endif
-
-ifdef SANITIZER
-ifeq ($(SANITIZER),address)
- MALLOC=libc
- CFLAGS+=-fsanitize=address -fno-sanitize-recover=all -fno-omit-frame-pointer
- LDFLAGS+=-fsanitize=address
-else
-ifeq ($(SANITIZER),undefined)
- MALLOC=libc
- CFLAGS+=-fsanitize=undefined -fno-sanitize-recover=all -fno-omit-frame-pointer
- LDFLAGS+=-fsanitize=undefined
-else
-ifeq ($(SANITIZER),thread)
- CFLAGS+=-fsanitize=thread -fno-sanitize-recover=all -fno-omit-frame-pointer
- LDFLAGS+=-fsanitize=thread
-else
-ifeq ($(SANITIZER),memory)
-ifeq (clang, $(CLANG))
- export CXX:=clang
- export LD:=clang
- MALLOC=libc # MSan provides its own allocator so make sure not to use jemalloc as they clash
- CFLAGS+=-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-sanitize-recover=all -fno-omit-frame-pointer
- LDFLAGS+=-fsanitize=memory
-else
- $(error "MemorySanitizer needs to be compiled and linked with clang. Please use CC=clang")
-endif
-else
- $(error "unknown sanitizer=${SANITIZER}")
-endif
-endif
-endif
-endif
-endif
-
-# Special case of forcing defrag to run even though we have no Jemlloc support
-ifeq ($(DEBUG_DEFRAG), force)
- CFLAGS +=-DDEBUG_DEFRAG_FORCE
-else ifeq ($(DEBUG_DEFRAG), fully)
- CFLAGS +=-DDEBUG_DEFRAG_FORCE -DDEBUG_DEFRAG_FULLY
-endif
-
-# Override default settings if possible
--include .make-settings
-
-FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
-FINAL_LDFLAGS=$(LDFLAGS) $(OPT) $(REDIS_LDFLAGS) $(DEBUG)
-FINAL_LIBS=-lm -lstdc++
-DEBUG=-g -ggdb
-
-# Linux ARM32 needs -latomic at linking time
-ifneq (,$(findstring armv,$(uname_M)))
- FINAL_LIBS+=-latomic
-endif
-
-ifeq ($(uname_S),SunOS)
- # SunOS
- ifeq ($(findstring -m32,$(FINAL_CFLAGS)),)
- CFLAGS+=-m64
- endif
- ifeq ($(findstring -m32,$(FINAL_LDFLAGS)),)
- LDFLAGS+=-m64
- endif
- DEBUG=-g
- DEBUG_FLAGS=-g
- export CFLAGS LDFLAGS DEBUG DEBUG_FLAGS
- INSTALL=cp -pf
- FINAL_CFLAGS+= -D__EXTENSIONS__ -D_XPG6
- FINAL_LIBS+= -ldl -lnsl -lsocket -lresolv -lpthread -lrt
- ifeq ($(USE_BACKTRACE),yes)
- FINAL_CFLAGS+= -DUSE_BACKTRACE
- endif
-else
-ifeq ($(uname_S),Darwin)
- # Darwin
- FINAL_LIBS+= -ldl
- # Homebrew's OpenSSL is not linked to /usr/local to avoid
- # conflicts with the system's LibreSSL installation so it
- # must be referenced explicitly during build.
-ifeq ($(uname_M),arm64)
- # Homebrew arm64 uses /opt/homebrew as HOMEBREW_PREFIX
- OPENSSL_PREFIX?=/opt/homebrew/opt/openssl
-else
- # Homebrew x86/ppc uses /usr/local as HOMEBREW_PREFIX
- OPENSSL_PREFIX?=/usr/local/opt/openssl
-endif
-else
-ifeq ($(uname_S),AIX)
- # AIX
- FINAL_LDFLAGS+= -Wl,-bexpall
- FINAL_LIBS+=-ldl -pthread -lcrypt -lbsd
-else
-ifeq ($(uname_S),OpenBSD)
- # OpenBSD
- FINAL_LIBS+= -lpthread
- ifeq ($(USE_BACKTRACE),yes)
- FINAL_CFLAGS+= -DUSE_BACKTRACE -I/usr/local/include
- FINAL_LDFLAGS+= -L/usr/local/lib
- FINAL_LIBS+= -lexecinfo
- endif
-
-else
-ifeq ($(uname_S),NetBSD)
- # NetBSD
- FINAL_LIBS+= -lpthread
- ifeq ($(USE_BACKTRACE),yes)
- FINAL_CFLAGS+= -DUSE_BACKTRACE -I/usr/pkg/include
- FINAL_LDFLAGS+= -L/usr/pkg/lib
- FINAL_LIBS+= -lexecinfo
- endif
-else
-ifeq ($(uname_S),FreeBSD)
- # FreeBSD
- FINAL_LIBS+= -lpthread -lexecinfo
-else
-ifeq ($(uname_S),DragonFly)
- # DragonFly
- FINAL_LIBS+= -lpthread -lexecinfo
-else
-ifeq ($(uname_S),OpenBSD)
- # OpenBSD
- FINAL_LIBS+= -lpthread -lexecinfo
-else
-ifeq ($(uname_S),NetBSD)
- # NetBSD
- FINAL_LIBS+= -lpthread -lexecinfo
-else
-ifeq ($(uname_S),Haiku)
- # Haiku
- FINAL_CFLAGS+= -DBSD_SOURCE
- FINAL_LDFLAGS+= -lbsd -lnetwork
- FINAL_LIBS+= -lpthread
-else
- # All the other OSes (notably Linux)
- FINAL_LDFLAGS+= -rdynamic
- FINAL_LIBS+=-ldl -pthread -lrt
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-
-ifdef OPENSSL_PREFIX
- OPENSSL_CFLAGS=-I$(OPENSSL_PREFIX)/include
- OPENSSL_LDFLAGS=-L$(OPENSSL_PREFIX)/lib
- # Also export OPENSSL_PREFIX so it ends up in deps sub-Makefiles
- export OPENSSL_PREFIX
-endif
-
-# Include paths to dependencies
-FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv -I../deps/fast_float -I../deps/xxhash
-
-# Determine systemd support and/or build preference (defaulting to auto-detection)
-BUILD_WITH_SYSTEMD=no
-LIBSYSTEMD_LIBS=-lsystemd
-
-# If 'USE_SYSTEMD' in the environment is neither "no" nor "yes", try to
-# auto-detect libsystemd's presence and link accordingly.
-ifneq ($(USE_SYSTEMD),no)
- LIBSYSTEMD_PKGCONFIG := $(shell $(PKG_CONFIG) --exists libsystemd && echo $$?)
-# If libsystemd cannot be detected, continue building without support for it
-# (unless a later check tells us otherwise)
-ifeq ($(LIBSYSTEMD_PKGCONFIG),0)
- BUILD_WITH_SYSTEMD=yes
- LIBSYSTEMD_LIBS=$(shell $(PKG_CONFIG) --libs libsystemd)
-endif
-endif
-
-# If 'USE_SYSTEMD' is set to "yes" use pkg-config if available or fall back to
-# default -lsystemd.
-ifeq ($(USE_SYSTEMD),yes)
- BUILD_WITH_SYSTEMD=yes
-endif
-
-ifeq ($(BUILD_WITH_SYSTEMD),yes)
- FINAL_LIBS+=$(LIBSYSTEMD_LIBS)
- FINAL_CFLAGS+= -DHAVE_LIBSYSTEMD
-endif
-
-ifeq ($(MALLOC),tcmalloc)
- FINAL_CFLAGS+= -DUSE_TCMALLOC
- FINAL_LIBS+= -ltcmalloc
-endif
-
-ifeq ($(MALLOC),tcmalloc_minimal)
- FINAL_CFLAGS+= -DUSE_TCMALLOC
- FINAL_LIBS+= -ltcmalloc_minimal
-endif
-
-ifeq ($(MALLOC),jemalloc)
- DEPENDENCY_TARGETS+= jemalloc
- FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include
- FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS)
-endif
-
-# LIBSSL & LIBCRYPTO
-LIBSSL_LIBS=
-LIBSSL_PKGCONFIG := $(shell $(PKG_CONFIG) --exists libssl && echo $$?)
-ifeq ($(LIBSSL_PKGCONFIG),0)
- LIBSSL_LIBS=$(shell $(PKG_CONFIG) --libs libssl)
-else
- LIBSSL_LIBS=-lssl
-endif
-LIBCRYPTO_LIBS=
-LIBCRYPTO_PKGCONFIG := $(shell $(PKG_CONFIG) --exists libcrypto && echo $$?)
-ifeq ($(LIBCRYPTO_PKGCONFIG),0)
- LIBCRYPTO_LIBS=$(shell $(PKG_CONFIG) --libs libcrypto)
-else
- LIBCRYPTO_LIBS=-lcrypto
-endif
-
-BUILD_NO:=0
-BUILD_YES:=1
-BUILD_MODULE:=2
-ifeq ($(BUILD_TLS),yes)
- FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_YES) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_NO)
- FINAL_LDFLAGS+=$(OPENSSL_LDFLAGS)
- FINAL_LIBS += ../deps/hiredis/libhiredis_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
-endif
-
-TLS_MODULE=
-TLS_MODULE_NAME:=redis-tls$(PROG_SUFFIX).so
-TLS_MODULE_CFLAGS:=$(FINAL_CFLAGS)
-ifeq ($(BUILD_TLS),module)
- FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS)
- TLS_CLIENT_LIBS = ../deps/hiredis/libhiredis_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
- TLS_MODULE=$(TLS_MODULE_NAME)
- TLS_MODULE_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_MODULE)
-endif
-
-ifneq ($(SKIP_VEC_SETS),yes)
- vpath %.c ../modules/vector-sets
- REDIS_VEC_SETS_OBJ=hnsw.o vset.o vset_config.o
- FINAL_CFLAGS+=-DINCLUDE_VEC_SETS=1
-endif
-
-ifndef V
- define MAKE_INSTALL
- @printf ' %b %b\n' $(LINKCOLOR)INSTALL$(ENDCOLOR) $(BINCOLOR)$(1)$(ENDCOLOR) 1>&2
- @$(INSTALL) $(1) $(2)
- endef
-else
- define MAKE_INSTALL
- $(INSTALL) $(1) $(2)
- endef
-endif
-
-REDIS_CC=$(QUIET_CC)$(CC) $(FINAL_CFLAGS)
-REDIS_LD=$(QUIET_LINK)$(CC) $(FINAL_LDFLAGS)
-REDIS_INSTALL=$(QUIET_INSTALL)$(INSTALL)
-
-CCCOLOR="\033[34m"
-LINKCOLOR="\033[34;1m"
-SRCCOLOR="\033[33m"
-BINCOLOR="\033[37;1m"
-MAKECOLOR="\033[32;1m"
-ENDCOLOR="\033[0m"
-
-ifndef V
-QUIET_CC = @printf ' %b %b\n' $(CCCOLOR)CC$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR) 1>&2;
-QUIET_GEN = @printf ' %b %b\n' $(CCCOLOR)GEN$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR) 1>&2;
-QUIET_LINK = @printf ' %b %b\n' $(LINKCOLOR)LINK$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR) 1>&2;
-QUIET_INSTALL = @printf ' %b %b\n' $(LINKCOLOR)INSTALL$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR) 1>&2;
-endif
-
-ifneq (, $(findstring LOG_REQ_RES, $(REDIS_CFLAGS)))
- COMMANDS_DEF_FILENAME=commands_with_reply_schema
- GEN_COMMANDS_FLAGS=--with-reply-schema
-else
- COMMANDS_DEF_FILENAME=commands
- GEN_COMMANDS_FLAGS=
-endif
-
-REDIS_SERVER_NAME=redis-server$(PROG_SUFFIX)
-REDIS_SENTINEL_NAME=redis-sentinel$(PROG_SUFFIX)
-REDIS_SERVER_OBJ=threads_mngr.o memory_prefetch.o adlist.o quicklist.o ae.o anet.o dict.o ebuckets.o eventnotifier.o iothread.o mstr.o entry.o kvstore.o fwtree.o estore.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o cluster_asm.o cluster_legacy.o cluster_slot_stats.o crc16.o endianconv.o slowlog.o eval.o bio.o rio.o rand.o memtest.o syscheck.o crcspeed.o crccombine.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o lolwut.o lolwut5.o lolwut6.o lolwut8.o acl.o tracking.o socket.o tls.o sha256.o timeout.o setcpuaffinity.o monotonic.o mt19937-64.o resp_parser.o call_reply.o script_lua.o script.o functions.o function_lua.o commands.o strl.o connection.o unix.o logreqres.o keymeta.o chk.o hotkeys.o
-REDIS_CLI_NAME=redis-cli$(PROG_SUFFIX)
-REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o redisassert.o crcspeed.o crccombine.o crc64.o siphash.o crc16.o monotonic.o cli_common.o mt19937-64.o strl.o cli_commands.o
-REDIS_BENCHMARK_NAME=redis-benchmark$(PROG_SUFFIX)
-REDIS_BENCHMARK_OBJ=ae.o anet.o redis-benchmark.o adlist.o dict.o zmalloc.o redisassert.o release.o crcspeed.o crccombine.o crc64.o siphash.o crc16.o monotonic.o cli_common.o mt19937-64.o strl.o
-REDIS_CHECK_RDB_NAME=redis-check-rdb$(PROG_SUFFIX)
-REDIS_CHECK_AOF_NAME=redis-check-aof$(PROG_SUFFIX)
-ALL_SOURCES=$(sort $(patsubst %.o,%.c,$(REDIS_SERVER_OBJ) $(REDIS_VEC_SETS_OBJ) $(REDIS_CLI_OBJ) $(REDIS_BENCHMARK_OBJ)))
-
-all: $(REDIS_SERVER_NAME) $(REDIS_SENTINEL_NAME) $(REDIS_CLI_NAME) $(REDIS_BENCHMARK_NAME) $(REDIS_CHECK_RDB_NAME) $(REDIS_CHECK_AOF_NAME) $(TLS_MODULE) module_tests
- @echo ""
- @echo "Hint: It's a good idea to run 'make test' ;)"
- @echo ""
-
-Makefile.dep:
- -$(REDIS_CC) -MM $(ALL_SOURCES) > Makefile.dep 2> /dev/null || true
-
-ifeq (0, $(words $(findstring $(MAKECMDGOALS), $(NODEPS))))
--include Makefile.dep
-endif
-
-.PHONY: all
-
-module_tests: $(REDIS_SERVER_NAME)
- $(MAKE) -C ../tests/modules
-
-.PHONY: module_tests
-
-persist-settings: distclean
- echo STD=$(STD) >> .make-settings
- echo WARN=$(WARN) >> .make-settings
- echo OPT=$(OPT) >> .make-settings
- echo MALLOC=$(MALLOC) >> .make-settings
- echo BUILD_TLS=$(BUILD_TLS) >> .make-settings
- echo USE_SYSTEMD=$(USE_SYSTEMD) >> .make-settings
- echo CFLAGS=$(CFLAGS) >> .make-settings
- echo LDFLAGS=$(LDFLAGS) >> .make-settings
- echo REDIS_CFLAGS=$(REDIS_CFLAGS) >> .make-settings
- echo REDIS_LDFLAGS=$(REDIS_LDFLAGS) >> .make-settings
- echo PREV_FINAL_CFLAGS=$(FINAL_CFLAGS) >> .make-settings
- echo PREV_FINAL_LDFLAGS=$(FINAL_LDFLAGS) >> .make-settings
- -(cd ../deps && $(MAKE) $(DEPENDENCY_TARGETS))
-
-.PHONY: persist-settings
-
-# Prerequisites target
-.make-prerequisites:
- @touch $@
-
-# Clean everything, persist settings and build dependencies if anything changed
-ifneq ($(strip $(PREV_FINAL_CFLAGS)), $(strip $(FINAL_CFLAGS)))
-.make-prerequisites: persist-settings
-endif
-
-ifneq ($(strip $(PREV_FINAL_LDFLAGS)), $(strip $(FINAL_LDFLAGS)))
-.make-prerequisites: persist-settings
-endif
-
-# redis-server
-$(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ) $(REDIS_VEC_SETS_OBJ)
- $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a ../deps/hdr_histogram/libhdrhistogram.a ../deps/fpconv/libfpconv.a ../deps/fast_float/libfast_float.a ../deps/xxhash/libxxhash.a $(FINAL_LIBS)
-
-# redis-sentinel
-$(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)
- $(REDIS_INSTALL) $(REDIS_SERVER_NAME) $(REDIS_SENTINEL_NAME)
-
-# redis-check-rdb
-$(REDIS_CHECK_RDB_NAME): $(REDIS_SERVER_NAME)
- $(REDIS_INSTALL) $(REDIS_SERVER_NAME) $(REDIS_CHECK_RDB_NAME)
-
-# redis-check-aof
-$(REDIS_CHECK_AOF_NAME): $(REDIS_SERVER_NAME)
- $(REDIS_INSTALL) $(REDIS_SERVER_NAME) $(REDIS_CHECK_AOF_NAME)
-
-# redis-tls.so
-$(TLS_MODULE_NAME): $(REDIS_SERVER_NAME)
- $(QUIET_CC)$(CC) -o $@ tls.c -shared -fPIC $(TLS_MODULE_CFLAGS) $(TLS_CLIENT_LIBS)
-
-# redis-cli
-$(REDIS_CLI_NAME): $(REDIS_CLI_OBJ)
- $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/linenoise/linenoise.o ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
-
-# redis-benchmark
-$(REDIS_BENCHMARK_NAME): $(REDIS_BENCHMARK_OBJ)
- $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
-
-DEP = $(REDIS_SERVER_OBJ:%.o=%.d) $(REDIS_VEC_SETS_OBJ:%.o=%.d) $(REDIS_CLI_OBJ:%.o=%.d) $(REDIS_BENCHMARK_OBJ:%.o=%.d)
--include $(DEP)
-
-# Because the jemalloc.h header is generated as a part of the jemalloc build,
-# building it should complete before building any other object. Instead of
-# depending on a single artifact, build all dependencies first.
-%.o: %.c .make-prerequisites
- $(REDIS_CC) -MMD -o $@ -c $<
-
-# The following files are checked in and don't normally need to be rebuilt. They
-# are built only if python is available and their prereqs are modified.
-ifneq (,$(PYTHON))
-$(COMMANDS_DEF_FILENAME).def: commands/*.json ../utils/generate-command-code.py
- $(QUIET_GEN)$(PYTHON) ../utils/generate-command-code.py $(GEN_COMMANDS_FLAGS)
-
-fmtargs.h: ../utils/generate-fmtargs.py
- $(QUITE_GEN)sed '/Everything below this line/,$$d' $@ > $@.tmp
- $(QUITE_GEN)$(PYTHON) ../utils/generate-fmtargs.py >> $@.tmp
- $(QUITE_GEN)mv $@.tmp $@
-endif
-
-commands.c: $(COMMANDS_DEF_FILENAME).def
-
-clean:
- rm -rf $(REDIS_SERVER_NAME) $(REDIS_SENTINEL_NAME) $(REDIS_CLI_NAME) $(REDIS_BENCHMARK_NAME) $(REDIS_CHECK_RDB_NAME) $(REDIS_CHECK_AOF_NAME) *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep *.so
- rm -f $(DEP)
- -(cd ../tests/modules && $(MAKE) clean)
-
-.PHONY: clean
-
-distclean: clean
- -(cd ../deps && $(MAKE) distclean)
- -(cd modules && $(MAKE) clean)
- -(cd ../tests/modules && $(MAKE) clean)
- -(rm -f .make-*)
-
-.PHONY: distclean
-
-test: $(REDIS_SERVER_NAME) $(REDIS_CHECK_AOF_NAME) $(REDIS_CLI_NAME) $(REDIS_BENCHMARK_NAME) module_tests
- @(cd ..; ./runtest)
-
-test-modules: $(REDIS_SERVER_NAME)
- @(cd ..; ./runtest-moduleapi)
-
-test-sentinel: $(REDIS_SENTINEL_NAME) $(REDIS_CLI_NAME)
- @(cd ..; ./runtest-sentinel)
-
-test-cluster: $(REDIS_SERVER_NAME) $(REDIS_CLI_NAME)
- @(cd ..; ./runtest-cluster)
-
-check: test
-
-lcov:
- @lcov --version
- $(MAKE) gcov
- @(set -e; cd ..; ./runtest)
- @geninfo -o redis.info .
- @genhtml --legend -o lcov-html redis.info
-
-.PHONY: lcov
-
-bench: $(REDIS_BENCHMARK_NAME)
- ./$(REDIS_BENCHMARK_NAME)
-
-32bit:
- @echo ""
- @echo "WARNING: if it fails under Linux you probably need to install libc6-dev-i386"
- @echo ""
- $(MAKE) CFLAGS="-m32" LDFLAGS="-m32" SKIP_VEC_SETS="yes"
-
-gcov:
- $(MAKE) REDIS_CFLAGS="-fprofile-arcs -ftest-coverage -DCOVERAGE_TEST" REDIS_LDFLAGS="-fprofile-arcs -ftest-coverage"
-
-noopt:
- $(MAKE) OPTIMIZATION="-O0"
-
-valgrind:
- $(MAKE) OPTIMIZATION="-O0" MALLOC="libc"
-
-helgrind:
- $(MAKE) OPTIMIZATION="-O0" MALLOC="libc" CFLAGS="-D__ATOMIC_VAR_FORCE_SYNC_MACROS" REDIS_CFLAGS="-I/usr/local/include" REDIS_LDFLAGS="-L/usr/local/lib"
-
-install: all
- @mkdir -p $(INSTALL_BIN)
- $(call MAKE_INSTALL,$(REDIS_SERVER_NAME),$(INSTALL_BIN))
- $(call MAKE_INSTALL,$(REDIS_BENCHMARK_NAME),$(INSTALL_BIN))
- $(call MAKE_INSTALL,$(REDIS_CLI_NAME),$(INSTALL_BIN))
- @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_RDB_NAME)
- @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_AOF_NAME)
- @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_SENTINEL_NAME)
-
-uninstall:
- rm -f $(INSTALL_BIN)/{$(REDIS_SERVER_NAME),$(REDIS_BENCHMARK_NAME),$(REDIS_CLI_NAME),$(REDIS_CHECK_RDB_NAME),$(REDIS_CHECK_AOF_NAME),$(REDIS_SENTINEL_NAME)}