本文并不说明怎样编写一个xlator。在glusterfs3.6.1下验证成功
目标在glusterfs-3.6.1/xlators/debug/下建立一个自己的xlator库并能够统一安装到系统文件夹下
一、 解压glusterfs3.6.1.tar.gz
tar zxvf glusterfs3.6.1.tar.gz cd glusterfs3.6.1 |
二、 创建自己定义xlator文件夹testX
mkdir -p xlators/debug/testX/src/ |
三、 改动configure.ac文件
vim configure.ac 添加下面语句在AC_CONFIG_FILES中 xlators/debug/testX/Makefile xlators/debug/testX/src/Makefile |
四、 改动父文件夹中的Makefile.am
cd xlators/debug/ vim Makefile.am 在SUBDIRS变量的最后添加文件夹名testX |
五、 进入testX文件夹,创建Makefile.am文件
cd testX vim Makefile.am 文件内容例如以下: SUBDIRS = src CLEANFILES = |
六、 进入src文件夹,创建Makefile.am文件
cd src vim Makefile.am 文件内容例如以下: xlator_LTLIBRARIES = testX.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testX
testX _la_LDFLAGS = -module -avoid-version
testX _la_SOURCES = testX.c testX _la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
noinst_HEADERS = testX.h AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src
AM_CFLAGS = -Wall $(GF_CFLAGS)
CLEANFILES = |
说明:
要上图中的testX_la*中的前缀testX必须和xlator_LTLIBRARIES的文件名称前缀一致
xlator_LTLIBRARIES后为要生成的库的名字
xlatordir后为存放库的路径,上图中将testX.so库存放在安装文件夹下的xlator的testX文件夹下
testX_la_SOURCES后跟.c文件列表
noinst_HEADERS后跟头文件列表
七、 创建自己的testX.c和testX.h文件
八、 编译安装
编辑完毕后,从新进入到glusterfs3.6.1文件夹下,执行例如以下命令就可以将新的testX文件安装到a安装文件夹下的testX文件夹中
cd ../../../../ ./autogen.sh ./ configure make make install |