mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 11:03:12 +00:00
121 lines
3.8 KiB
Makefile
121 lines
3.8 KiB
Makefile
include platform.mk
|
|
|
|
LUA_CLIB_PATH ?= luaclib
|
|
CSERVICE_PATH ?= cservice
|
|
|
|
SKYNET_BUILD_PATH ?= .
|
|
|
|
CFLAGS = -g -O2 -Wall -I$(LUA_INC) $(MYCFLAGS)
|
|
|
|
# lua
|
|
|
|
LUA_STATICLIB := 3rd/lua/liblua.a
|
|
LUA_LIB ?= $(LUA_STATICLIB)
|
|
LUA_INC ?= 3rd/lua
|
|
|
|
$(LUA_STATICLIB) :
|
|
cd 3rd/lua && $(MAKE) CC=$(CC) $(PLAT)
|
|
|
|
# jemalloc
|
|
|
|
JEMALLOC_STATICLIB := 3rd/jemalloc/lib/libjemalloc_pic.a
|
|
JEMALLOC_INC := 3rd/jemalloc/include/jemalloc
|
|
|
|
all : jemalloc
|
|
|
|
.PHONY : jemalloc
|
|
|
|
MALLOC_STATICLIB := $(JEMALLOC_STATICLIB)
|
|
|
|
$(JEMALLOC_STATICLIB) : 3rd/jemalloc/Makefile
|
|
cd 3rd/jemalloc && $(MAKE) CC=$(CC)
|
|
|
|
3rd/jemalloc/autogen.sh :
|
|
git submodule update --init
|
|
|
|
3rd/jemalloc/Makefile : | 3rd/jemalloc/autogen.sh
|
|
cd 3rd/jemalloc && ./autogen.sh --with-jemalloc-prefix=je_ --disable-valgrind
|
|
|
|
jemalloc : $(MALLOC_STATICLIB)
|
|
|
|
# skynet
|
|
|
|
CSERVICE = snlua logger gate master harbor dummy
|
|
LUA_CLIB = skynet socketdriver int64 bson mongo md5 netpack \
|
|
cjson clientsocket memory profile multicast \
|
|
cluster
|
|
|
|
SKYNET_SRC = skynet_main.c skynet_handle.c skynet_module.c skynet_mq.c \
|
|
skynet_server.c skynet_start.c skynet_timer.c skynet_error.c \
|
|
skynet_harbor.c skynet_env.c skynet_monitor.c skynet_socket.c socket_server.c \
|
|
malloc_hook.c skynet_daemon.c
|
|
|
|
all : \
|
|
$(SKYNET_BUILD_PATH)/skynet \
|
|
$(foreach v, $(CSERVICE), $(CSERVICE_PATH)/$(v).so) \
|
|
$(foreach v, $(LUA_CLIB), $(LUA_CLIB_PATH)/$(v).so)
|
|
|
|
$(SKYNET_BUILD_PATH)/skynet : $(foreach v, $(SKYNET_SRC), skynet-src/$(v)) $(LUA_LIB) $(MALLOC_STATICLIB)
|
|
$(CC) $(CFLAGS) -o $@ $^ -Iskynet-src -I$(JEMALLOC_INC) $(LDFLAGS) $(EXPORT) $(SKYNET_LIBS) $(SKYNET_DEFINES)
|
|
|
|
$(LUA_CLIB_PATH) :
|
|
mkdir $(LUA_CLIB_PATH)
|
|
|
|
$(CSERVICE_PATH) :
|
|
mkdir $(CSERVICE_PATH)
|
|
|
|
define CSERVICE_TEMP
|
|
$$(CSERVICE_PATH)/$(1).so : service-src/service_$(1).c | $$(CSERVICE_PATH)
|
|
$$(CC) $$(CFLAGS) $$(SHARED) $$< -o $$@ -Iskynet-src
|
|
endef
|
|
|
|
$(foreach v, $(CSERVICE), $(eval $(call CSERVICE_TEMP,$(v))))
|
|
|
|
$(LUA_CLIB_PATH)/skynet.so : lualib-src/lua-skynet.c lualib-src/lua-seri.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src -Iservice-src -Ilualib-src
|
|
|
|
$(LUA_CLIB_PATH)/socketdriver.so : lualib-src/lua-socket.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src -Iservice-src
|
|
|
|
$(LUA_CLIB_PATH)/int64.so : 3rd/lua-int64/int64.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@
|
|
|
|
$(LUA_CLIB_PATH)/bson.so : lualib-src/lua-bson.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
|
|
|
$(LUA_CLIB_PATH)/mongo.so : lualib-src/lua-mongo.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
|
|
|
$(LUA_CLIB_PATH)/md5.so : 3rd/lua-md5/md5.c 3rd/lua-md5/md5lib.c 3rd/lua-md5/compat-5.2.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) -I3rd/lua-md5 $^ -o $@
|
|
|
|
$(LUA_CLIB_PATH)/netpack.so : lualib-src/lua-netpack.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -Iskynet-src -o $@
|
|
|
|
$(LUA_CLIB_PATH)/cjson.so : | $(LUA_CLIB_PATH)
|
|
cd 3rd/lua-cjson && $(MAKE) LUA_INCLUDE_DIR=../../$(LUA_INC) CC=$(CC) CJSON_LDFLAGS="$(SHARED)" && cd ../.. && cp 3rd/lua-cjson/cjson.so $@
|
|
|
|
$(LUA_CLIB_PATH)/clientsocket.so : lualib-src/lua-clientsocket.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@ -lpthread
|
|
|
|
$(LUA_CLIB_PATH)/memory.so : lualib-src/lua-memory.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) -Iskynet-src $^ -o $@
|
|
|
|
$(LUA_CLIB_PATH)/profile.so : lualib-src/lua-profile.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@
|
|
|
|
$(LUA_CLIB_PATH)/multicast.so : lualib-src/lua-multicast.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) -Iskynet-src $^ -o $@
|
|
|
|
$(LUA_CLIB_PATH)/cluster.so : lualib-src/lua-cluster.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) -Iskynet-src $^ -o $@
|
|
|
|
clean :
|
|
rm -f $(SKYNET_BUILD_PATH)/skynet $(CSERVICE_PATH)/*.so $(LUA_CLIB_PATH)/*.so
|
|
|
|
cleanall: clean
|
|
cd 3rd/lua-cjson && $(MAKE) clean
|
|
cd 3rd/jemalloc && $(MAKE) clean
|
|
rm -f $(LUA_STATICLIB)
|
|
|