memcached是一款经典的分布式内存缓存,daemon端代码都是由纯C开发,其中有很多可以学习的地方,陆续将内容加入进来(基于版本1.4.15)。
开篇,先讲memcached的源码文件概述,看源码的文件依赖,有一个比较好的思路,那就是去看对应的Makefile.am文件(只截取之前的部分说明)。
bin_PROGRAMS = memcached #编译的主程序名称为memcached,那下边对应的包含编译的文件包含在memcached_SOURCES
pkginclude_HEADERS = protocol_binary.h #包含的头文件
noinst_PROGRAMS = memcached-debug sizes testapp timedrun #只进行编译,不安装到目录中的程序,对应需要编译的文件包含在memcached-debug_SOURCES sizes_SOURCES testapp_SOURCES timedrun_SOURCES
BUILT_SOURCES=
testapp_SOURCES = testapp.c util.c util.h
timedrun_SOURCES = timedrun.c
memcached_SOURCES = memcached.c memcached.h \
hash.c hash.h \
slabs.c slabs.h \
items.c items.h \
assoc.c assoc.h \
thread.c daemon.c \
stats.c stats.h \
util.c util.h \
trace.h cache.h sasl_defs.h
#使用的源码文件如上就有一个大概的了解
if BUILD_CACHE
memcached_SOURCES += cache.c
testapp_SOURCES += cache.c
endif
if BUILD_SOLARIS_PRIVS
memcached_SOURCES += solaris_priv.c
endif
if ENABLE_SASL
memcached_SOURCES += sasl_defs.c
endif