[virt-tools-list] [PATCH virt-viewer 3/3] Build an intermediate convenience library
Jonathon Jongsma
jjongsma at redhat.com
Fri Jun 19 20:39:38 UTC 2015
Instead of building every single source file twice (once for
virt-viewer, and once for remote-viewer), just build them into a
temporary library and link the final executables against that.
The one possible drawback to this approach is that we now use the same
log domain for both executables: 'virt-viewer'. Previously, the
remote-viewer executable used 'remote-viewer' for its log domain.
---
src/Makefile.am | 85 +++++++++++++++++++++++++++++++--------------------------
1 file changed, 47 insertions(+), 38 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 345aafc..1ebc24e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,6 +3,8 @@ LDADD =
MAINTAINERCLEANFILES =
bin_PROGRAMS =
+noinst_LTLIBRARIES = libvirt-viewer.la
+
builderxmldir = $(pkgdatadir)/ui
builderxml_DATA = \
virt-viewer.xml \
@@ -36,7 +38,7 @@ $(BUILT_SOURCES): %: %.etemplate $(ENUMS_FILES)
sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \
-e 's,#include "$(srcdir)/,#include ",' > $@
-COMMON_SOURCES = \
+libvirt_viewer_la_SOURCES = \
$(BUILT_SOURCES) \
virt-glib-compat.h \
virt-glib-compat.c \
@@ -68,7 +70,7 @@ COMMON_SOURCES = \
$(NULL)
if HAVE_GTK_VNC
-COMMON_SOURCES += \
+libvirt_viewer_la_SOURCES += \
virt-viewer-session-vnc.h \
virt-viewer-session-vnc.c \
virt-viewer-display-vnc.h \
@@ -77,7 +79,7 @@ COMMON_SOURCES += \
endif
if HAVE_SPICE_GTK
-COMMON_SOURCES += \
+libvirt_viewer_la_SOURCES += \
virt-viewer-session-spice.h \
virt-viewer-session-spice.c \
virt-viewer-display-spice.h \
@@ -86,12 +88,43 @@ COMMON_SOURCES += \
endif
if HAVE_OVIRT
-COMMON_SOURCES += \
+libvirt_viewer_la_SOURCES += \
ovirt-foreign-menu.h \
ovirt-foreign-menu.c \
$(NULL)
endif
+COMMON_LIBS = \
+ -lm \
+ $(GLIB2_LIBS) \
+ $(GTK_LIBS) \
+ $(GTK_VNC_LIBS) \
+ $(SPICE_GTK_LIBS) \
+ $(LIBXML2_LIBS) \
+ $(OVIRT_LIBS) \
+ $(NULL)
+
+COMMON_CFLAGS = \
+ -DLOCALE_DIR=\""$(datadir)/locale"\" \
+ -DG_LOG_DOMAIN=\"virt-viewer\" \
+ $(GLIB2_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(GTK_VNC_CFLAGS) \
+ $(SPICE_GTK_CFLAGS) \
+ $(LIBXML2_CFLAGS) \
+ $(OVIRT_CFLAGS) \
+ $(WARN_CFLAGS) \
+ $(NULL)
+
+
+libvirt_viewer_la_LIBADD = \
+ $(COMMON_LIBS) \
+ $(NULL)
+
+libvirt_viewer_la_CFLAGS = \
+ $(COMMON_CFLAGS)
+ $(NULL)
+
check_PROGRAMS = test-version-compare
TESTS = $(check_PROGRAMS)
test_version_compare_SOURCES = \
@@ -115,7 +148,6 @@ test_version_compare_CFLAGS = \
if HAVE_LIBVIRT
bin_PROGRAMS += virt-viewer
virt_viewer_SOURCES = \
- $(COMMON_SOURCES) \
virt-viewer-events.h \
virt-viewer-events.c \
virt-viewer.h \
@@ -123,33 +155,21 @@ virt_viewer_SOURCES = \
virt-viewer-main.c \
$(NULL)
virt_viewer_LDFLAGS = \
- -lm \
- $(GLIB2_LIBS) \
- $(GTK_LIBS) \
- $(GTK_VNC_LIBS) \
- $(LIBXML2_LIBS) \
+ $(COMMON_LIBS) \
$(LIBVIRT_LIBS) \
- $(OVIRT_LIBS) \
- $(SPICE_GTK_LIBS) \
$(NULL)
virt_viewer_CFLAGS = \
- -DLOCALE_DIR=\""$(datadir)/locale"\" \
- -DG_LOG_DOMAIN=\"virt-viewer\" \
- $(GLIB2_CFLAGS) \
- $(GTK_CFLAGS) \
- $(GTK_VNC_CFLAGS) \
- $(LIBXML2_CFLAGS) \
+ $(COMMON_CFLAGS) \
$(LIBVIRT_CFLAGS) \
- $(OVIRT_CFLAGS) \
- $(SPICE_GTK_CFLAGS) \
- $(WARN_CFLAGS) \
+ $(NULL)
+virt_viewer_LDADD = \
+ libvirt-viewer.la \
$(NULL)
endif
bin_PROGRAMS += remote-viewer
remote_viewer_SOURCES = \
- $(COMMON_SOURCES) \
remote-viewer.h \
remote-viewer.c \
remote-viewer-connect.c \
@@ -157,26 +177,15 @@ remote_viewer_SOURCES = \
remote-viewer-main.c \
$(NULL)
remote_viewer_LDFLAGS = \
- -lm \
- $(GLIB2_LIBS) \
- $(GTK_LIBS) \
- $(GTK_VNC_LIBS) \
- $(LIBXML2_LIBS) \
- $(OVIRT_LIBS) \
- $(SPICE_GTK_LIBS) \
+ $(COMMON_LIBS) \
$(SPICE_CONTROLLER_LIBS) \
$(NULL)
remote_viewer_CFLAGS = \
- -DLOCALE_DIR=\""$(datadir)/locale"\" \
- -DG_LOG_DOMAIN=\"remote-viewer\" \
- $(GLIB2_CFLAGS) \
- $(GTK_CFLAGS) \
- $(GTK_VNC_CFLAGS) \
- $(LIBXML2_CFLAGS) \
- $(OVIRT_CFLAGS) \
- $(SPICE_GTK_CFLAGS) \
+ $(COMMON_CFLAGS) \
$(SPICE_CONTROLLER_CFLAGS) \
- $(WARN_CFLAGS) \
+ $(NULL)
+remote_viewer_LDADD = \
+ libvirt-viewer.la \
$(NULL)
if OS_WIN32
--
2.1.0
More information about the virt-tools-list
mailing list