2011-11-15 12:40:49 -08:00
# Redis dependency Makefile
2012-03-24 19:25:03 -07:00
uname_S := $( shell sh -c 'uname -s 2>/dev/null || echo not' )
2011-11-15 12:40:49 -08:00
CCCOLOR = "\033[34m"
LINKCOLOR = "\033[34;1m"
SRCCOLOR = "\033[33m"
BINCOLOR = "\033[37;1m"
MAKECOLOR = "\033[32;1m"
ENDCOLOR = "\033[0m"
default :
@echo "Explicit target required"
2012-03-24 19:25:03 -07:00
.PHONY : default
# Prerequisites target
.make-prerequisites :
@touch $@
# Clean everything when CFLAGS is different
i f n e q ( $( shell sh -c '[ -f .make -cflags ] && cat .make -cflags || echo none ') , $( CFLAGS ) )
.make-cflags : distclean
-( echo " $( CFLAGS) " > .make-cflags)
.make-prerequisites : .make -cflags
2011-11-15 12:40:49 -08:00
e n d i f
2012-03-24 19:25:03 -07:00
# Clean everything when LDFLAGS is different
i f n e q ( $( shell sh -c '[ -f .make -ldflags ] && cat .make -ldflags || echo none ') , $( LDFLAGS ) )
.make-ldflags : distclean
-( echo " $( LDFLAGS) " > .make-ldflags)
.make-prerequisites : .make -ldflags
e n d i f
2011-11-15 12:40:49 -08:00
distclean :
-( cd hiredis && $( MAKE) clean) > /dev/null || true
-( cd linenoise && $( MAKE) clean) > /dev/null || true
-( cd lua && $( MAKE) clean) > /dev/null || true
-( cd jemalloc && [ -f Makefile ] && $( MAKE) distclean) > /dev/null || true
2012-03-24 19:25:03 -07:00
-( rm -f .make-*)
.PHONY : distclean
hiredis : .make -prerequisites
@printf '%b %b\n' $( MAKECOLOR) MAKE$( ENDCOLOR) $( BINCOLOR) $@ $( ENDCOLOR)
cd hiredis && $( MAKE) static
.PHONY : hiredis
linenoise : .make -prerequisites
@printf '%b %b\n' $( MAKECOLOR) MAKE$( ENDCOLOR) $( BINCOLOR) $@ $( ENDCOLOR)
cd linenoise && $( MAKE)
.PHONY : linenoise
i f e q ( $( uname_S ) , S u n O S )
2013-03-16 18:35:20 +11:00
# Make isinf() available
LUA_CFLAGS = -D__C99FEATURES__= 1
2012-03-24 19:25:03 -07:00
e n d i f
2014-12-19 21:26:04 -05:00
LUA_CFLAGS += -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC= '' $( CFLAGS)
2012-03-24 19:25:03 -07:00
LUA_LDFLAGS += $( LDFLAGS)
2013-03-11 18:04:40 -07:00
# lua's Makefile defines AR="ar rcu", which is unusual, and makes it more
# challenging to cross-compile lua (and redis). These defines make it easier
# to fit redis into cross-compilation environments, which typically set AR.
AR = ar
ARFLAGS = rcu
2011-11-15 12:40:49 -08:00
2012-03-24 19:25:03 -07:00
lua : .make -prerequisites
@printf '%b %b\n' $( MAKECOLOR) MAKE$( ENDCOLOR) $( BINCOLOR) $@ $( ENDCOLOR)
2013-03-11 18:04:40 -07:00
cd lua/src && $( MAKE) all CFLAGS = " $( LUA_CFLAGS) " MYLDFLAGS = " $( LUA_LDFLAGS) " AR = " $( AR) $( ARFLAGS) "
2011-11-15 12:40:49 -08:00
2012-03-24 19:25:03 -07:00
.PHONY : lua
2011-11-15 12:40:49 -08:00
2012-03-24 19:25:03 -07:00
JEMALLOC_CFLAGS = -std= gnu99 -Wall -pipe -g3 -O3 -funroll-loops $( CFLAGS)
JEMALLOC_LDFLAGS = $( LDFLAGS)
2011-11-15 12:40:49 -08:00
2012-03-24 19:25:03 -07:00
jemalloc : .make -prerequisites
@printf '%b %b\n' $( MAKECOLOR) MAKE$( ENDCOLOR) $( BINCOLOR) $@ $( ENDCOLOR)
2016-05-18 11:58:36 +02:00
cd jemalloc && ./configure --with-lg-quantum= 3 --with-jemalloc-prefix= je_ --enable-cc-silence CFLAGS = " $( JEMALLOC_CFLAGS) " LDFLAGS = " $( JEMALLOC_LDFLAGS) "
2012-11-01 15:36:37 +01:00
cd jemalloc && $( MAKE) CFLAGS = " $( JEMALLOC_CFLAGS) " LDFLAGS = " $( JEMALLOC_LDFLAGS) " lib/libjemalloc.a
2011-11-15 12:40:49 -08:00
2012-03-24 19:25:03 -07:00
.PHONY : jemalloc