xref: /f-stack/app/redis-5.0.5/src/modules/Makefile (revision 572c4311)
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