1*572c4311Sfengbojiang 2*572c4311Sfengbojiang# find the OS 3*572c4311Sfengbojianguname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') 4*572c4311Sfengbojiang 5*572c4311Sfengbojiang# Compile flags for linux / osx 6*572c4311Sfengbojiangifeq ($(uname_S),Linux) 7*572c4311Sfengbojiang SHOBJ_CFLAGS ?= -W -Wall -fno-common -g -ggdb -std=c99 -O2 8*572c4311Sfengbojiang SHOBJ_LDFLAGS ?= -shared 9*572c4311Sfengbojiangelse 10*572c4311Sfengbojiang SHOBJ_CFLAGS ?= -W -Wall -dynamic -fno-common -g -ggdb -std=c99 -O2 11*572c4311Sfengbojiang SHOBJ_LDFLAGS ?= -bundle -undefined dynamic_lookup 12*572c4311Sfengbojiangendif 13*572c4311Sfengbojiang 14*572c4311Sfengbojiang.SUFFIXES: .c .so .xo .o 15*572c4311Sfengbojiang 16*572c4311Sfengbojiangall: helloworld.so hellotype.so helloblock.so testmodule.so hellocluster.so hellotimer.so hellodict.so 17*572c4311Sfengbojiang 18*572c4311Sfengbojiang.c.xo: 19*572c4311Sfengbojiang $(CC) -I. $(CFLAGS) $(SHOBJ_CFLAGS) -fPIC -c $< -o $@ 20*572c4311Sfengbojiang 21*572c4311Sfengbojianghelloworld.xo: ../redismodule.h 22*572c4311Sfengbojiang 23*572c4311Sfengbojianghelloworld.so: helloworld.xo 24*572c4311Sfengbojiang $(LD) -o $@ $< $(SHOBJ_LDFLAGS) $(LIBS) -lc 25*572c4311Sfengbojiang 26*572c4311Sfengbojianghellotype.xo: ../redismodule.h 27*572c4311Sfengbojiang 28*572c4311Sfengbojianghellotype.so: hellotype.xo 29*572c4311Sfengbojiang $(LD) -o $@ $< $(SHOBJ_LDFLAGS) $(LIBS) -lc 30*572c4311Sfengbojiang 31*572c4311Sfengbojianghelloblock.xo: ../redismodule.h 32*572c4311Sfengbojiang 33*572c4311Sfengbojianghelloblock.so: helloblock.xo 34*572c4311Sfengbojiang $(LD) -o $@ $< $(SHOBJ_LDFLAGS) $(LIBS) -lpthread -lc 35*572c4311Sfengbojiang 36*572c4311Sfengbojianghellocluster.xo: ../redismodule.h 37*572c4311Sfengbojiang 38*572c4311Sfengbojianghellocluster.so: hellocluster.xo 39*572c4311Sfengbojiang $(LD) -o $@ $< $(SHOBJ_LDFLAGS) $(LIBS) -lc 40*572c4311Sfengbojiang 41*572c4311Sfengbojianghellotimer.xo: ../redismodule.h 42*572c4311Sfengbojiang 43*572c4311Sfengbojianghellotimer.so: hellotimer.xo 44*572c4311Sfengbojiang $(LD) -o $@ $< $(SHOBJ_LDFLAGS) $(LIBS) -lc 45*572c4311Sfengbojiang 46*572c4311Sfengbojianghellodict.xo: ../redismodule.h 47*572c4311Sfengbojiang 48*572c4311Sfengbojianghellodict.so: hellodict.xo 49*572c4311Sfengbojiang 50*572c4311Sfengbojiangtestmodule.xo: ../redismodule.h 51*572c4311Sfengbojiang 52*572c4311Sfengbojiangtestmodule.so: testmodule.xo 53*572c4311Sfengbojiang $(LD) -o $@ $< $(SHOBJ_LDFLAGS) $(LIBS) -lc 54*572c4311Sfengbojiang 55*572c4311Sfengbojiangclean: 56*572c4311Sfengbojiang rm -rf *.xo *.so 57