X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/ee5cfe385305071ed0ab293be3ad18b13f2f9c86..5fa95ad7639ae3f43e175d95a7d6384e4723b80e:/Makefile diff --git a/Makefile b/Makefile index 15ae660f..b72faa1b 100644 --- a/Makefile +++ b/Makefile @@ -1,98 +1,22 @@ -# Redis Makefile -# Copyright (C) 2009 Salvatore Sanfilippo -# This file is released under the BSD license, see the COPYING file +# Top level makefile, the real shit is at src/Makefile -uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') -OPTIMIZATION?=-O2 -ifeq ($(uname_S),SunOS) - CFLAGS?= -std=c99 -pedantic $(OPTIMIZATION) -Wall -W -D__EXTENSIONS__ -D_XPG6 - CCLINK?= -ldl -lnsl -lsocket -lm -lpthread -else - CFLAGS?= -std=c99 -pedantic $(OPTIMIZATION) -Wall -W $(ARCH) $(PROF) - CCLINK?= -lm -pthread -endif -CCOPT= $(CFLAGS) $(CCLINK) $(ARCH) $(PROF) -DEBUG?= -g -rdynamic -ggdb +TARGETS=32bit noopt test -OBJ = adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o -BENCHOBJ = ae.o anet.o redis-benchmark.o sds.o adlist.o zmalloc.o -CLIOBJ = anet.o sds.o adlist.o redis-cli.o zmalloc.o +all: + cd src && $(MAKE) $@ -PRGNAME = redis-server -BENCHPRGNAME = redis-benchmark -CLIPRGNAME = redis-cli - -all: redis-server redis-benchmark redis-cli - -# Deps (use make dep to generate this) -adlist.o: adlist.c adlist.h zmalloc.h -ae.o: ae.c ae.h zmalloc.h config.h ae_kqueue.c -ae_epoll.o: ae_epoll.c -ae_kqueue.o: ae_kqueue.c -ae_select.o: ae_select.c -anet.o: anet.c fmacros.h anet.h -dict.o: dict.c fmacros.h dict.h zmalloc.h -lzf_c.o: lzf_c.c lzfP.h -lzf_d.o: lzf_d.c lzfP.h -pqsort.o: pqsort.c -redis-benchmark.o: redis-benchmark.c fmacros.h ae.h anet.h sds.h adlist.h \ - zmalloc.h -redis-cli.o: redis-cli.c fmacros.h anet.h sds.h adlist.h zmalloc.h -redis.o: redis.c fmacros.h config.h redis.h ae.h sds.h anet.h dict.h \ - adlist.h zmalloc.h lzf.h pqsort.h zipmap.h staticsymbols.h -sds.o: sds.c sds.h zmalloc.h -zipmap.o: zipmap.c zmalloc.h -zmalloc.o: zmalloc.c config.h - -redis-server: $(OBJ) - $(CC) -o $(PRGNAME) $(CCOPT) $(DEBUG) $(OBJ) - @echo "" - @echo "Hint: To run the test-redis.tcl script is a good idea." - @echo "Launch the redis server with ./redis-server, then in another" - @echo "terminal window enter this directory and run 'make test'." - @echo "" - -redis-benchmark: $(BENCHOBJ) - $(CC) -o $(BENCHPRGNAME) $(CCOPT) $(DEBUG) $(BENCHOBJ) - -redis-cli: $(CLIOBJ) - $(CC) -o $(CLIPRGNAME) $(CCOPT) $(DEBUG) $(CLIOBJ) - -.c.o: - $(CC) -c $(CFLAGS) $(DEBUG) $(COMPILE_TIME) $< +install: dummy + cd src && $(MAKE) $@ clean: - rm -rf $(PRGNAME) $(BENCHPRGNAME) $(CLIPRGNAME) *.o *.gcda *.gcno *.gcov - -dep: - $(CC) -MM *.c - -staticsymbols: - tclsh utils/build-static-symbols.tcl > staticsymbols.h - -test: - tclsh test-redis.tcl - -bench: - ./redis-benchmark - -log: - git log '--pretty=format:%ad %s' --date=short > Changelog - -32bit: - @echo "" - @echo "WARNING: if it fails under Linux you probably need to install libc6-dev-i386" - @echo "" - make ARCH="-m32" - -gprof: - make PROF="-pg" + cd src && $(MAKE) $@ + cd deps/hiredis && $(MAKE) $@ + cd deps/linenoise && $(MAKE) $@ -gcov: - make PROF="-fprofile-arcs -ftest-coverage" +$(TARGETS): + cd src && $(MAKE) $@ -noopt: - make OPTIMIZATION="" +src/help.h: + @./utils/generate-command-help.rb > $@ -32bitgprof: - make PROF="-pg" ARCH="-arch i386" +dummy: