summaryrefslogtreecommitdiff
path: root/ovsdb
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2013-12-13 18:54:28 +0100
committerBen Pfaff <blp@nicira.com>2013-12-17 16:30:32 -0800
commit38b7a52b618b98f03f089d0dff4050ec76fd06d4 (patch)
tree325b453ce25ca88dddd57a8b0b3a794ad201c2cd /ovsdb
parent45ebaaf58c8dd017b5ba6a1ea18b77b8760a41e8 (diff)
downloadopenvswitch-38b7a52b618b98f03f089d0dff4050ec76fd06d4.tar.gz
openvswitch: Use libtool and allow building shared libs
Currently openvswitch builds all libraries static only. However, libopenvswitch is linked into nearly all openvswitch executables making it hardly possible to run openvswitch on embedded devices (for example running OpenWrt). Convert openvswitch to use libtool for building its internal libs. This allows "--enable-shared" and "--enable-static" as configure arguments. Default is "--disable-shared" thus keeping the current behavior with the only change that static libs are installed by "make install". Since the openvswitch library interfaces are internal and thus not stable (yet) encode the openvswitch version into the library name: libopenvswitch-2.0.90.so Binary size is reduced to around 1/3 when using shared libs. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'ovsdb')
-rw-r--r--ovsdb/automake.mk14
1 files changed, 9 insertions, 5 deletions
diff --git a/ovsdb/automake.mk b/ovsdb/automake.mk
index 3884d3ffd..b97365ed9 100644
--- a/ovsdb/automake.mk
+++ b/ovsdb/automake.mk
@@ -1,6 +1,7 @@
# libovsdb
-noinst_LIBRARIES += ovsdb/libovsdb.a
-ovsdb_libovsdb_a_SOURCES = \
+lib_LTLIBRARIES += ovsdb/libovsdb.la
+ovsdb_libovsdb_la_LDFLAGS = -release $(VERSION)
+ovsdb_libovsdb_la_SOURCES = \
ovsdb/column.c \
ovsdb/column.h \
ovsdb/condition.c \
@@ -29,6 +30,9 @@ ovsdb_libovsdb_a_SOURCES = \
ovsdb/trigger.h \
ovsdb/transaction.c \
ovsdb/transaction.h
+ovsdb_libovsdb_la_CFLAGS = $(AM_CFLAGS)
+ovsdb_libovsdb_la_CPPFLAGS = $(AM_CPPFLAGS)
+
MAN_FRAGMENTS += \
ovsdb/remote-active.man \
ovsdb/remote-passive.man
@@ -36,7 +40,7 @@ MAN_FRAGMENTS += \
# ovsdb-tool
bin_PROGRAMS += ovsdb/ovsdb-tool
ovsdb_ovsdb_tool_SOURCES = ovsdb/ovsdb-tool.c
-ovsdb_ovsdb_tool_LDADD = ovsdb/libovsdb.a lib/libopenvswitch.a $(SSL_LIBS)
+ovsdb_ovsdb_tool_LDADD = ovsdb/libovsdb.la lib/libopenvswitch.la $(SSL_LIBS)
# ovsdb-tool.1
man_MANS += ovsdb/ovsdb-tool.1
DISTCLEANFILES += ovsdb/ovsdb-tool.1
@@ -45,7 +49,7 @@ MAN_ROOTS += ovsdb/ovsdb-tool.1.in
# ovsdb-client
bin_PROGRAMS += ovsdb/ovsdb-client
ovsdb_ovsdb_client_SOURCES = ovsdb/ovsdb-client.c
-ovsdb_ovsdb_client_LDADD = ovsdb/libovsdb.a lib/libopenvswitch.a $(SSL_LIBS)
+ovsdb_ovsdb_client_LDADD = ovsdb/libovsdb.la lib/libopenvswitch.la $(SSL_LIBS)
# ovsdb-client.1
man_MANS += ovsdb/ovsdb-client.1
DISTCLEANFILES += ovsdb/ovsdb-client.1
@@ -54,7 +58,7 @@ MAN_ROOTS += ovsdb/ovsdb-client.1.in
# ovsdb-server
sbin_PROGRAMS += ovsdb/ovsdb-server
ovsdb_ovsdb_server_SOURCES = ovsdb/ovsdb-server.c
-ovsdb_ovsdb_server_LDADD = ovsdb/libovsdb.a lib/libopenvswitch.a $(SSL_LIBS)
+ovsdb_ovsdb_server_LDADD = ovsdb/libovsdb.la lib/libopenvswitch.la $(SSL_LIBS)
# ovsdb-server.1
man_MANS += ovsdb/ovsdb-server.1
DISTCLEANFILES += ovsdb/ovsdb-server.1