tools: build common fish sources in a static library

Create a new libfishcommon convenience static library to build just once
(instead of 12 times!) the majority of the guestfish sources used in the
rest of the C tools (mostly for command line stuff, inspection, and
mount).

The notable exceptions not using libfishcommon are guestfish itself, and
virt-rescue: both need to build at least one of the common sources using
additional CPPFLAGS.
This commit is contained in:
Pino Toscano
2016-09-26 14:16:44 +02:00
parent 23ca442f63
commit e3f681e1b8
10 changed files with 43 additions and 106 deletions

View File

@@ -31,17 +31,7 @@ SHARED_SOURCE_FILES = \
../df/estimate-max-threads.c \
../df/estimate-max-threads.h \
../df/parallel.c \
../df/parallel.h \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c
../df/parallel.h
virt_alignment_scan_SOURCES = \
$(SHARED_SOURCE_FILES) \
@@ -64,6 +54,7 @@ virt_alignment_scan_CFLAGS = \
virt_alignment_scan_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -31,16 +31,6 @@ EXTRA_DIST = \
bin_PROGRAMS = virt-cat virt-filesystems virt-log virt-ls
SHARED_SOURCE_FILES = \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c \
../fish/windows.h \
../fish/windows.c
@@ -62,6 +52,7 @@ virt_cat_CFLAGS = \
virt_cat_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \
@@ -85,6 +76,7 @@ virt_filesystems_CFLAGS = \
virt_filesystems_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \
@@ -108,6 +100,7 @@ virt_log_CFLAGS = \
virt_log_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \
@@ -133,6 +126,7 @@ virt_ls_CFLAGS = \
virt_ls_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -26,20 +26,7 @@ EXTRA_DIST = \
bin_PROGRAMS = virt-df
SHARED_SOURCE_FILES = \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c
virt_df_SOURCES = \
$(SHARED_SOURCE_FILES) \
virt-df.h \
domains.c \
domains.h \
@@ -67,6 +54,7 @@ virt_df_CFLAGS = \
virt_df_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -26,17 +26,7 @@ bin_PROGRAMS = virt-diff
SHARED_SOURCE_FILES = \
../cat/visit.h \
../cat/visit.c \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c
../cat/visit.c
virt_diff_SOURCES = \
$(SHARED_SOURCE_FILES) \
@@ -56,6 +46,7 @@ virt_diff_CFLAGS = \
virt_diff_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -25,18 +25,8 @@ EXTRA_DIST = \
bin_PROGRAMS = virt-edit
SHARED_SOURCE_FILES = \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/file-edit.h \
../fish/file-edit.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c \
../fish/windows.h \
../fish/windows.c
@@ -58,6 +48,7 @@ virt_edit_CFLAGS = \
virt_edit_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -71,8 +71,7 @@ EXTRA_DIST = \
# between guestfish, guestmount and some other virt tools. Keep a
# convenient list here just so we know which ones are shared. These
# files must not include other guestfish files.
SHARED_SOURCE_FILES = \
config.c \
FISHCOMMON_SOURCE_FILES = \
decrypt.c \
display-options.h \
display-options.c \
@@ -81,11 +80,35 @@ SHARED_SOURCE_FILES = \
keys.c \
options.h \
options.c \
progress.h \
progress.c \
uri.h \
uri.c
SHARED_SOURCE_FILES = \
$(FISHCOMMON_SOURCE_FILES) \
config.c \
progress.h \
progress.c
# libfishcommon.la contains guestfish code which is used in other
# C tools. Note this convenience static library is *not* used in
# guestfish, as the sources are built with extra defines
# (e.g. -DCOMPILING_GUESTFISH) in that case.
libfishcommon_la_SOURCES = \
$(FISHCOMMON_SOURCE_FILES)
libfishcommon_la_CPPFLAGS = \
-DGUESTFS_WARN_DEPRECATED=1 \
-I$(top_srcdir)/src -I$(top_builddir)/src \
-I$(top_srcdir)/fish -I$(top_builddir)/fish \
-I$(srcdir)/../gnulib/lib -I../gnulib/lib
libfishcommon_la_CFLAGS = \
$(WARN_CFLAGS) $(WERROR_CFLAGS) \
$(LIBXML2_CFLAGS)
libfishcommon_la_LIBADD = \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/src/libutils.la \
$(LIBXML2_LIBS) \
$(LTLIBINTL)
guestfish_SOURCES = \
$(generator_built) \
$(SHARED_SOURCE_FILES) \
@@ -159,7 +182,7 @@ guestfish_LDADD = \
-lm
# Make guestfish use the convenience libraries.
noinst_LTLIBRARIES = libcmds.la librc_protocol.la
noinst_LTLIBRARIES = libcmds.la librc_protocol.la libfishcommon.la
guestfish_LDADD += libcmds.la librc_protocol.la ../gnulib/lib/libgnu.la
if HAVE_RPCGEN

View File

@@ -24,20 +24,7 @@ EXTRA_DIST = \
bin_PROGRAMS = virt-format
SHARED_SOURCE_FILES = \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c
virt_format_SOURCES = \
$(SHARED_SOURCE_FILES) \
format.c
virt_format_CPPFLAGS = \
@@ -55,6 +42,7 @@ virt_format_CFLAGS = \
virt_format_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -33,17 +33,7 @@ bin_PROGRAMS = \
# These source files (all related to option parsing) are shared
# between guestfish and guestmount.
SHARED_SOURCE_FILES = \
../fish/config.c \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c
../fish/config.c
# guestmount
@@ -69,6 +59,7 @@ guestmount_LDADD = \
$(LIBCONFIG_LIBS) \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -52,20 +52,7 @@ dist_doc_DATA = \
bin_PROGRAMS = virt-inspector
SHARED_SOURCE_FILES = \
../fish/decrypt.c \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/inspect.c \
../fish/keys.c \
../fish/options.h \
../fish/options.c \
../fish/uri.h \
../fish/uri.c
virt_inspector_SOURCES = \
$(SHARED_SOURCE_FILES) \
inspector.c
virt_inspector_CPPFLAGS = \
@@ -82,6 +69,7 @@ virt_inspector_CFLAGS = \
virt_inspector_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LIBVIRT_LIBS) \
$(LTLIBINTL) \

View File

@@ -24,16 +24,7 @@ EXTRA_DIST = \
bin_PROGRAMS = virt-make-fs
SHARED_SOURCE_FILES = \
../fish/display-options.h \
../fish/display-options.c \
../fish/domain.c \
../fish/options.h \
../fish/options.c \
../fish/uri.c
virt_make_fs_SOURCES = \
$(SHARED_SOURCE_FILES) \
make-fs.c
virt_make_fs_CPPFLAGS = \
@@ -50,6 +41,7 @@ virt_make_fs_CFLAGS = \
virt_make_fs_LDADD = \
$(top_builddir)/src/libutils.la \
$(top_builddir)/src/libguestfs.la \
$(top_builddir)/fish/libfishcommon.la \
$(LIBXML2_LIBS) \
$(LTLIBINTL) \
../gnulib/lib/libgnu.la