mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 12:20:41 +00:00
rewrite makefile, and remove luacode cache.
This commit is contained in:
154
Makefile
154
Makefile
@@ -1,109 +1,89 @@
|
||||
.PHONY : all clean
|
||||
PLAT ?= none
|
||||
PLATS = linux freebsd macosx
|
||||
|
||||
CFLAGS = -g -Wall
|
||||
LDFLAGS = -lpthread -llua -lm
|
||||
.PHONY : none $(PLATS) clean lua all
|
||||
|
||||
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
|
||||
ifeq ($(uname_S), Darwin)
|
||||
SHARED = -fPIC -dynamiclib -Wl,-undefined,dynamic_lookup
|
||||
else
|
||||
LDFLAGS += -lrt -Wl,-E
|
||||
SHARED = -fPIC --shared
|
||||
endif
|
||||
$(PLAT) :
|
||||
|
||||
ifneq ($(uname_S), FreeBSD)
|
||||
LDFLAGS += -ldl
|
||||
endif
|
||||
none :
|
||||
@echo "Please do 'make PLATFORM' where PLATFORM is one of these:"
|
||||
@echo " $(PLATS)"
|
||||
|
||||
LUA_STATICLIB = 3rd/lua/liblua.a
|
||||
LUA_INC = -I3rd/lua
|
||||
LUA_LIB = $(LUA_STATICLIB)
|
||||
LUA_CLIB_PATH = luaclib
|
||||
CSERVICE_PATH = cservice
|
||||
|
||||
CFLAGS = -g -Wall $(LUA_INC)
|
||||
|
||||
LIBS = -lpthread -lm
|
||||
SHARED = -fPIC --shared
|
||||
EXPORT = -Wl,-E
|
||||
|
||||
$(PLATS) : all client
|
||||
|
||||
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) $(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 \
|
||||
service/snlua.so \
|
||||
service/logger.so \
|
||||
service/gate.so \
|
||||
service/client.so \
|
||||
service/master.so \
|
||||
service/multicast.so \
|
||||
service/tunnel.so \
|
||||
service/harbor.so \
|
||||
service/localcast.so \
|
||||
luaclib/skynet.so \
|
||||
luaclib/socketdriver.so \
|
||||
luaclib/int64.so \
|
||||
luaclib/mcast.so \
|
||||
luaclib/bson.so \
|
||||
luaclib/mongo.so \
|
||||
client
|
||||
$(foreach v, $(CSERVICE), $(CSERVICE_PATH)/$(v).so) \
|
||||
$(foreach v, $(LUA_CLIB), $(LUA_CLIB_PATH)/$(v).so)
|
||||
|
||||
skynet : \
|
||||
skynet-src/skynet_main.c \
|
||||
skynet-src/skynet_handle.c \
|
||||
skynet-src/skynet_module.c \
|
||||
skynet-src/skynet_mq.c \
|
||||
skynet-src/skynet_server.c \
|
||||
skynet-src/skynet_start.c \
|
||||
skynet-src/skynet_timer.c \
|
||||
skynet-src/skynet_error.c \
|
||||
skynet-src/skynet_harbor.c \
|
||||
skynet-src/skynet_multicast.c \
|
||||
skynet-src/skynet_group.c \
|
||||
skynet-src/skynet_env.c \
|
||||
skynet-src/skynet_monitor.c \
|
||||
skynet-src/skynet_socket.c \
|
||||
skynet-src/socket_server.c \
|
||||
luacompat/compat52.c
|
||||
gcc $(CFLAGS) -Iluacompat -o $@ $^ -Iskynet-src $(LDFLAGS)
|
||||
skynet : $(foreach v, $(SKYNET_SRC), skynet-src/$(v)) $(LUA_STATICLIB)
|
||||
gcc $(CFLAGS) -o $@ $^ -Iskynet-src $(EXPORT) $(LIBS)
|
||||
|
||||
luaclib:
|
||||
mkdir luaclib
|
||||
$(LUA_CLIB_PATH) :
|
||||
mkdir $(LUA_CLIB_PATH)
|
||||
|
||||
service/tunnel.so : service-src/service_tunnel.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
$(CSERVICE_PATH) :
|
||||
mkdir $(CSERVICE_PATH)
|
||||
|
||||
service/multicast.so : service-src/service_multicast.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
define CSERVICE_TEMP
|
||||
$$(CSERVICE_PATH)/$(1).so : service-src/service_$(1).c | $$(CSERVICE_PATH)
|
||||
gcc $$(CFLAGS) $$(SHARED) $$< -o $$@ -Iskynet-src
|
||||
endef
|
||||
|
||||
service/master.so : service-src/service_master.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
$(foreach v, $(CSERVICE), $(eval $(call CSERVICE_TEMP,$(v))))
|
||||
|
||||
service/harbor.so : service-src/service_harbor.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
$(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)
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src -Iservice-src -Ilualib-src
|
||||
|
||||
service/logger.so : skynet-src/skynet_logger.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
$(LUA_CLIB_PATH)/socketdriver.so : lualib-src/lua-socket.c | $(LUA_CLIB_PATH)
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src -Iservice-src
|
||||
|
||||
service/snlua.so : service-src/service_lua.c service-src/luacode_cache.c service-src/luaalloc.c
|
||||
gcc $(CFLAGS) $(SHARED) -Iluacompat $^ -o $@ -Iskynet-src
|
||||
$(LUA_CLIB_PATH)/int64.so : 3rd/lua-int64/int64.c | $(LUA_CLIB_PATH)
|
||||
gcc $(CFLAGS) $(SHARED) -O2 $^ -o $@
|
||||
|
||||
service/gate.so : service-src/service_gate.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
$(LUA_CLIB_PATH)/mcast.so : lualib-src/lua-localcast.c | $(LUA_CLIB_PATH)
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src -Iservice-src
|
||||
|
||||
service/localcast.so : service-src/service_localcast.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
$(LUA_CLIB_PATH)/bson.so : lualib-src/lua-bson.c | $(LUA_CLIB_PATH)
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@
|
||||
|
||||
luaclib/skynet.so : lualib-src/lua-skynet.c lualib-src/lua-seri.c lualib-src/trace_service.c lualib-src/timingqueue.c | luaclib
|
||||
gcc $(CFLAGS) $(SHARED) -Iluacompat $^ -o $@ -Iskynet-src -Iservice-src -Ilualib-src
|
||||
|
||||
service/client.so : service-src/service_client.c
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@ -Iskynet-src
|
||||
|
||||
luaclib/socketdriver.so : lualib-src/lua-socket.c | luaclib
|
||||
gcc $(CFLAGS) $(SHARED) -Iluacompat $^ -o $@ -Iskynet-src -Iservice-src
|
||||
|
||||
luaclib/int64.so : lua-int64/int64.c | luaclib
|
||||
gcc $(CFLAGS) $(SHARED) -Iluacompat -O2 $^ -o $@
|
||||
|
||||
luaclib/mcast.so : lualib-src/lua-localcast.c | luaclib
|
||||
gcc $(CFLAGS) $(SHARED) -Iluacompat $^ -o $@ -Iskynet-src -Iservice-src
|
||||
|
||||
luaclib/bson.so : lualib-src/lua-bson.c | luaclib
|
||||
gcc $(CFLAGS) $(SHARED) -Iluacompat $^ -o $@
|
||||
|
||||
luaclib/mongo.so : lualib-src/lua-mongo.c | luaclib
|
||||
gcc $(CFLAGS) $(SHARED) -Iluacompat $^ -o $@
|
||||
$(LUA_CLIB_PATH)/mongo.so : lualib-src/lua-mongo.c | $(LUA_CLIB_PATH)
|
||||
gcc $(CFLAGS) $(SHARED) $^ -o $@
|
||||
|
||||
client : client-src/client.c
|
||||
gcc $(CFLAGS) $^ -o $@ -lpthread
|
||||
|
||||
clean :
|
||||
rm skynet client service/*.so luaclib/*.so
|
||||
|
||||
rm -f skynet client $(CSERVICE_PATH)/*.so $(LUA_CLIB_PATH)/*.so
|
||||
|
||||
Reference in New Issue
Block a user