You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.3 KiB
Makefile

SKYNET_ROOT ?= ../../skynet
include $(SKYNET_ROOT)/platform.mk
PLAT ?= none
TARGET = ../../luaclib/profile.so
GOOGLE_PROFILE_INC ?= /usr/include
GOOGLE_PROFILE_LIB ?= /usr/lib64
ifeq ($(PLAT), macosx)
CFLAGS = -g -O2 -dynamiclib -Wl,-undefined,dynamic_lookup -DUSE_EXPORT_NAME -DUSE_RDTSC -DUSE_GOOGLE_PROFILER
GOOGLE_PROFILE_INC = /usr/local/opt/gperftools/include
GOOGLE_PROFILE_LIB = /usr/local/opt/gperftools/lib
else
ifeq ($(PLAT), linux)
CFLAGS = -g -O2 -shared -fPIC -DUSE_EXPORT_NAME -DUSE_RDTSC -DUSE_GOOGLE_PROFILER
endif
endif
LUA_LIB ?= $(SKYNET_ROOT)/3rd/lua/
LUA_INC ?= $(SKYNET_ROOT)/3rd/lua/
SKYNET_SRC ?= $(SKYNET_ROOT)/skynet-src
SRC = .
.PHONY: all clean
# 生产环境 最好别用 gperftools
# mac: brew install gperftools
# centos: yum install gperftools yum install gperftools-devel
# https://github.com/google/pprof/blob/master/doc/README.md
# https://gperftools.github.io/gperftools/cpuprofile.html
# https://cloud.tencent.com/developer/article/1433465
# pprof skynet/skynet log/swt.prof --svg (或者 --text)
# pprof --callgrind skynet/skynet log/swt.prof > swt.callgrind
all: $(TARGET)
$(TARGET): $(foreach dir, $(SRC), $(wildcard $(dir)/*.c))
$(CC) $(CFLAGS) $(SHARED) -I$(LUA_INC) -I$(SKYNET_SRC) -I$(GOOGLE_PROFILE_INC) -L$(GOOGLE_PROFILE_LIB) $^ -o $@ -lprofiler
clean:
rm -f *.o $(TARGET)