[Evolution-hackers] Most of the providers don't have to link with libedataserver



Hi there,

As far as I can see is the only camel provider dat uses libedataserver
directly, the groupware one. The other camel providers don't use any of
the libedataserver functionality hence shouldn't link with it.

Not linking might improve dlopen() times. Because by the time the .so is
loaded, not linking isn't going improve memory consumption (on a normal
desktop system) a lot, indeed.

However, it's imo good to have dependencies and build environment
correct, and not in a state of ... oh, maybe it's used, maybe not, so
we'll just add it to the LIBADD. Nah :), not-so-nice imo.



ps. Note that Camel itself only uses a very small subset of the
function- ality of libedataserver. This could be fixed by splitting up
the library in a libedataserver-common and a libedataserver-specific,
and let camel only link with the libedataserver-common.

ps. I indeed have the patches and list-of-files (and tests) ready to do
this. It should perhaps be discussed first, so let me know if you want
this (maybe we can discuss it next #evolution-meet?)

This is the list of files Camel uses from libedataserver: e-trie.c,
e-iconv.c, e-memory.c, e-msgport.c, e-sexp.c, e-time-utils.c,
e-data-server-util.c, md5-utils.c and of course their .h files. The
files compile (without any changes) without needing any of the other
libedataserver code files.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be
Index: hula/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/hula/Makefile.am,v
retrieving revision 1.1
diff -u -p -r1.1 Makefile.am
--- hula/Makefile.am	14 Nov 2005 17:39:32 -0000	1.1
+++ hula/Makefile.am	20 Jul 2006 07:53:40 -0000
@@ -20,7 +20,6 @@ libcamelhula_la_SOURCES = 			\
 
 libcamelhula_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
 libcamelhula_la_LIBADD =                                            \
-	$(top_builddir)/libedataserver/libedataserver-1.2.la             \
 	$(top_builddir)/camel/libcamel-provider-1.2.la	                 \
 	$(top_builddir)/camel/libcamel-1.2.la		                 \
 	$(CAMEL_LIBS)
Index: imap4/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/imap4/Makefile.am,v
retrieving revision 1.12
diff -u -p -r1.12 Makefile.am
--- imap4/Makefile.am	12 Aug 2005 23:51:34 -0000	1.12
+++ imap4/Makefile.am	20 Jul 2006 07:53:40 -0000
@@ -43,7 +43,6 @@ libcamelimap4_la_SOURCES = 			\
 libcamelimap4_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
 
 libcamelimap4_la_LIBADD = \
-	$(top_builddir)/libedataserver/libedataserver-${API_VERSION}.la \
 	$(top_builddir)/camel/libcamel-provider-1.2.la			\
 	$(top_builddir)/camel/libcamel-1.2.la				\
 	$(CAMEL_LIBS)
Index: imap/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/imap/Makefile.am,v
retrieving revision 1.34
diff -u -p -r1.34 Makefile.am
--- imap/Makefile.am	19 May 2006 15:25:08 -0000	1.34
+++ imap/Makefile.am	20 Jul 2006 07:53:40 -0000
@@ -42,7 +42,6 @@ noinst_HEADERS =			\
 libcamelimap_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
 
 libcamelimap_la_LIBADD = \
-	$(top_builddir)/libedataserver/libedataserver-${API_VERSION}.la \
 	$(top_builddir)/camel/libcamel-provider-1.2.la			\
 	$(top_builddir)/camel/libcamel-1.2.la				\
 	$(CAMEL_LIBS)
Index: local/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/local/Makefile.am,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile.am
--- local/Makefile.am	12 Aug 2005 23:51:34 -0000	1.20
+++ local/Makefile.am	20 Jul 2006 07:53:41 -0000
@@ -57,7 +57,6 @@ noinst_HEADERS =				\
 libcamellocal_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
 
 libcamellocal_la_LIBADD = \
-	$(top_builddir)/libedataserver/libedataserver-${API_VERSION}.la	\
 	$(top_builddir)/camel/libcamel-provider-1.2.la			\
 	$(top_builddir)/camel/libcamel-1.2.la				\
 	$(CAMEL_LIBS)
Index: nntp/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/nntp/Makefile.am,v
retrieving revision 1.32
diff -u -p -r1.32 Makefile.am
--- nntp/Makefile.am	12 Aug 2005 23:51:35 -0000	1.32
+++ nntp/Makefile.am	20 Jul 2006 07:53:41 -0000
@@ -35,7 +35,6 @@ noinst_HEADERS =			\
 libcamelnntp_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
 
 libcamelnntp_la_LIBADD = \
-	$(top_builddir)/libedataserver/libedataserver-${API_VERSION}.la \
 	$(top_builddir)/camel/libcamel-provider-1.2.la			\
 	$(top_builddir)/camel/libcamel-1.2.la				\
 	$(CAMEL_LIBS)
Index: pop3/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/pop3/Makefile.am,v
retrieving revision 1.21
diff -u -p -r1.21 Makefile.am
--- pop3/Makefile.am	12 Aug 2005 23:51:35 -0000	1.21
+++ pop3/Makefile.am	20 Jul 2006 07:53:41 -0000
@@ -26,7 +26,6 @@ noinst_HEADERS =			\
 libcamelpop3_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
 
 libcamelpop3_la_LIBADD = \
-	$(top_builddir)/libedataserver/libedataserver-${API_VERSION}.la \
 	$(top_builddir)/camel/libcamel-provider-1.2.la			\
 	$(top_builddir)/camel/libcamel-1.2.la				\
 	$(CAMEL_LIBS)
Index: smtp/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/smtp/Makefile.am,v
retrieving revision 1.23
diff -u -p -r1.23 Makefile.am
--- smtp/Makefile.am	12 Aug 2005 23:51:36 -0000	1.23
+++ smtp/Makefile.am	20 Jul 2006 07:53:41 -0000
@@ -21,7 +21,6 @@ noinst_HEADERS =			\
 libcamelsmtp_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
 
 libcamelsmtp_la_LIBADD = \
-	$(top_builddir)/libedataserver/libedataserver-${API_VERSION}.la \
 	$(top_builddir)/camel/libcamel-provider-1.2.la			\
 	$(top_builddir)/camel/libcamel-1.2.la				\
 	$(CAMEL_LIBS)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]