mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
103 lines
2.8 KiB
Makefile
103 lines
2.8 KiB
Makefile
PLAT ?= none
|
|
PLATS = linux freebsd macosx
|
|
|
|
CC ?= gcc
|
|
|
|
.PHONY : none $(PLATS) clean lua all
|
|
|
|
ifneq ($(PLAT), none)
|
|
|
|
.PHONY : default
|
|
|
|
default :
|
|
$(MAKE) $(PLAT)
|
|
|
|
endif
|
|
|
|
none :
|
|
@echo "Please do 'make PLATFORM' where PLATFORM is one of these:"
|
|
@echo " $(PLATS)"
|
|
|
|
LUA_STATICLIB = 3rd/lua/liblua.a
|
|
LUA_LIB ?= $(LUA_STATICLIB)
|
|
LUA_INC ?= -I3rd/lua
|
|
LUA_CLIB_PATH ?= luaclib
|
|
CSERVICE_PATH ?= cservice
|
|
SKYNET_BUILD_PATH ?= .
|
|
|
|
|
|
CFLAGS = -g -Wall $(LUA_INC) $(MYCFLAGS)
|
|
|
|
LIBS = -lpthread -lm
|
|
SHARED = -fPIC --shared
|
|
EXPORT = -Wl,-E
|
|
|
|
$(PLATS) : all
|
|
|
|
linux : PLAT = linux
|
|
macosx : PLAT = macosx
|
|
freebsd : PLAT = freebsd
|
|
|
|
macosx linux : LIBS += -ldl
|
|
macosx : SHARED = -fPIC -dynamiclib -Wl,-undefined,dynamic_lookup
|
|
macosx : EXPORT =
|
|
linux freebsd : LIBS += -lrt
|
|
|
|
$(LUA_STATICLIB) :
|
|
cd 3rd/lua && $(MAKE) CC=$(CC) $(PLAT)
|
|
|
|
CSERVICE = snlua logger gate client master multicast tunnel harbor localcast
|
|
LUA_CLIB = skynet socketdriver int64 mcast bson mongo
|
|
|
|
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_multicast.c skynet_group.c skynet_env.c \
|
|
skynet_monitor.c skynet_socket.c socket_server.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)
|
|
$(CC) $(CFLAGS) -o $@ $^ -Iskynet-src $(LDFLAGS) $(EXPORT) $(LIBS)
|
|
|
|
$(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 lualib-src/trace_service.c lualib-src/timingqueue.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) -O2 $^ -o $@
|
|
|
|
$(LUA_CLIB_PATH)/mcast.so : lualib-src/lua-localcast.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src -Iservice-src
|
|
|
|
$(LUA_CLIB_PATH)/bson.so : lualib-src/lua-bson.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@
|
|
|
|
$(LUA_CLIB_PATH)/mongo.so : lualib-src/lua-mongo.c | $(LUA_CLIB_PATH)
|
|
$(CC) $(CFLAGS) $(SHARED) $^ -o $@
|
|
|
|
all : $(SKYNET_BUILD_PATH)/client
|
|
|
|
$(SKYNET_BUILD_PATH)/client : client-src/client.c
|
|
$(CC) $(CFLAGS) $^ -o $@ -lpthread
|
|
|
|
clean :
|
|
rm -f $(SKYNET_BUILD_PATH)/skynet $(SKYNET_BUILD_PATH)/client $(CSERVICE_PATH)/*.so $(LUA_CLIB_PATH)/*.so
|