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
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)
|