libccnetpro/lib/Makefile.am解释一下

#这里是生成libccnet静态库
#需要的基础,makefile.am,automake(包含libtool),valac

AM_CPPFLAGS = @GLIB2_CFLAGS@ -I$(top_srcdir)/include \
    -I$(top_srcdir)/include/ccnet \
    -I$(top_srcdir)/lib \
    -I$(top_builddir)/include \
    -DG_LOG_DOMAIN=\"Ccnet\" \
    @SEARPC_CFLAGS@ \
    @MSVC_CFLAGS@ \
    -Wall

BUILT_SOURCES = gensource

lib_LTLIBRARIES = libccnet.la  # 生成静态库1:libccnet.la,.la为libtool自动生成的共享库
 
noinst_HEADERS = buffer.h \   #只是参与编译,不放放到安装目录下,也就是这些都不会导出函数
    packet-io.h  \
    include.h \
    marshal.h \
    peer-common.h \
    string-util.h \
    libccnet_utils.h \
    ccnet-object.h \
    rpc-common.h \
    net.h \
    utils.h \
    db.h \
    rsa.h

ccnetincludedir = $(includedir)/ccnet
ccnetinclude_DATA = ccnet-object.h  //存放数据

libccnet_la_CPPFLAGS = $(AM_CPPFLAGS) -DCCNET_LIB @PTHREAD_CFLAGS@

libccnet_la_SOURCES = ccnet-client.c packet-io.c libccnet_utils.c \ #参与编译需要的源文件
    message.c proc-factory.c \
    processor.c buffer.c \
    peer.c sendcmd-proc.c \
    mqclient-proc.c invoke-service-proc.c \
    marshal.c \
    mainloop.c cevent.c timer.c ccnet-session-base.c job-mgr.c \
    rpcserver-proc.c ccnetrpc-transport.c threaded-rpcserver-proc.c \
    ccnetobj.c \
    async-rpc-proc.c ccnet-rpc-wrapper.c \
    client-pool.c

EXTRA_DIST = ccnetobj.vala rpc_table.py

libccnet_la_LDFLAGS = -no-undefined -version-info 0:0:0
libccnet_la_LIBADD = @PTHREAD_LIBS@ @GLIB2_LIBS@ @GOBJECT_LIBS@ @LIB_GDI32@ \
                     @LIB_UUID@ @LIB_WS32@ @LIB_PSAPI@ -lsqlite3 \
                     @LIBEVENT_LIBS@ @SEARPC_LIBS@ @LIB_SHELL32@    #静态库编译时需要的其他库


noinst_LTLIBRARIES = libccnetd.la   #生成静态库2:libccnetd.la,这个库只参与编译的静态库

libccnetd_la_SOURCES = utils.c db.c job-mgr.c \
    rsa.c marshal.c net.c timer.c ccnet-session-base.c \
    ccnetobj.c

libccnetd_la_LDFLAGS = -no-undefined
libccnetd_la_LIBADD = @GLIB2_LIBS@  @GOBJECT_LIBS@ @SSL_LIBS@ @LIB_GDI32@ \
                      -lsqlite3 @LIBEVENT_LIBS@ @LIB_WS32@ @LIB_UUID@ \
                      @LIB_SHELL32@ @LIB_PSAPI@ @SEARPC_LIBS@   #静态库编译时需要的其他的11个库


ccnet_object_define = ccnetobj.vala

valac_gen = ccnetobj.c ccnet-object.h 

ccnet-client.c: ccnet-object.h

ccnet-object.h: ${ccnet_object_define}
    rm -f $@
    valac --pkg posix ${ccnet_object_define} -C -H ccnet-object.h #意思就是由ccnetobj.vala,生成seafile-object.h

ccnetobj.c: ${ccnet_object_define}
    rm -f $@
    valac -C --pkg posix ${ccnet_object_define}

searpc_gen = searpc-signature.h searpc-marshal.h

gensource: ${searpc_gen} ${valac_gen} #最终会产生的文件

rpc_table.stamp: ${top_srcdir}/lib/rpc_table.py
    @rm -f rpc_table.tmp
    @touch rpc_table.tmp
    @echo "[libsearpc]: generating rpc header files"
    @PYTHON@ `which searpc-codegen.py` ${top_srcdir}/lib/rpc_table.py
    @echo "[libsearpc]: done"
    @mv -f rpc_table.tmp $@

${searpc_gen}: rpc_table.stamp

clean-local:
    rm -f ${searpc_gen}
    rm -f rpc_table.pyc
    rm -f rpc_table.stamp
    rm -f rpc_table.tmp
    rm -f ${valac_gen}

CLEANFILES = ${searpc_gen} ${valac_gen}
 

猜你喜欢

转载自blog.csdn.net/caokunchao/article/details/81233764