X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=fish%2FMakefile.am;h=2624a7d558d0558e202258dede979011d186eb01;hp=2d8c16b83a9d6f2d5e66e4247e76e3d3071c4169;hb=HEAD;hpb=92444940f3ff80975e64e07e4a4861454101a529 diff --git a/fish/Makefile.am b/fish/Makefile.am index 2d8c16b..2624a7d 100644 --- a/fish/Makefile.am +++ b/fish/Makefile.am @@ -1,5 +1,5 @@ # libguestfs -# Copyright (C) 2009-2010 Red Hat Inc. +# Copyright (C) 2009-2011 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -13,16 +13,25 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk +CLEANFILES = \ + stamp-guestfish.pod \ + stamp-virt-copy-in.pod \ + stamp-virt-copy-out.pod \ + stamp-virt-tar-in.pod \ + stamp-virt-tar-out.pod + bin_PROGRAMS = guestfish generator_built = \ cmds.c \ cmds_gperf.gperf \ completion.c \ + event-names.c \ + fish-cmds.h \ guestfish-actions.pod \ guestfish-commands.pod \ prepopts.h \ @@ -36,19 +45,32 @@ BUILT_SOURCES = \ EXTRA_DIST = \ $(BUILT_SOURCES) \ + $(TESTS) \ rc_protocol.x \ guestfish.pod \ - guestfish-bash-completion.sh - -# These source files (all related to option parsing) are shared -# between guestfish and guestmount. Keep a convenient list here just -# so we know which ones are shared. These files must not include -# other guestfish files. + guestfish-bash-completion.sh \ + libguestfs-tools.conf \ + virt-copy-in \ + virt-copy-out \ + virt-tar-in \ + virt-tar-out \ + virt-copy-in.pod \ + virt-copy-out.pod \ + virt-tar-in.pod \ + virt-tar-out.pod + +# These source files (mostly related to option parsing) are shared +# 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 \ inspect.c \ keys.c \ options.h \ options.c \ + progress.h \ + progress.c \ virt.c guestfish_SOURCES = \ @@ -58,8 +80,10 @@ guestfish_SOURCES = \ cmds_gperf.h \ copy.c \ destpaths.c \ + display.c \ echo.c \ edit.c \ + events.c \ fish.c \ fish.h \ glob.c \ @@ -74,18 +98,17 @@ guestfish_SOURCES = \ prep_fs.c \ prep_lv.c \ prep_boot.c \ - progress.c \ rc.c \ reopen.c \ - rmsd.h \ + setenv.c \ supported.c \ tilde.c \ time.c -# This convenience library is solely to avoid compiler warnings -# in its generated sources. -librc_protocol_la_SOURCES = rc_protocol.c -librc_protocol_la_CFLAGS = -Wall -Wno-unused +# This convenience library is solely to compile its generated sources with +# custom flags. +librc_protocol_la_SOURCES = rc_protocol.c rc_protocol.h +librc_protocol_la_CFLAGS = -Wall -Wno-unused -fno-strict-aliasing # Build the command lookup perfect hash code. The generated code has # lots of warnings so we must compile it in a separate mini-library. @@ -98,15 +121,18 @@ cmds_gperf.c: cmds_gperf.gperf mv $@-t $@ guestfish_CFLAGS = \ + -DGUESTFS_WARN_DEPRECATED=1 \ -I$(top_srcdir)/src -I$(top_builddir)/src \ -I$(top_srcdir)/fish -I$(top_builddir)/fish \ - -DGUESTFS_DEFAULT_PATH='"$(libdir)/guestfs"' \ -DLOCALEBASEDIR=\""$(datadir)/locale"\" \ -I$(srcdir)/../gnulib/lib -I../gnulib/lib \ - $(WARN_CFLAGS) $(WERROR_CFLAGS) + $(WARN_CFLAGS) $(WERROR_CFLAGS) \ + $(LIBCONFIG_CFLAGS) guestfish_LDADD = \ - $(top_builddir)/src/libguestfs.la $(LIBREADLINE) -lm + $(LIBCONFIG_LIBS) \ + $(LIBREADLINE) \ + $(top_builddir)/src/libguestfs.la -lm # Make guestfish use the convenience libraries. noinst_LTLIBRARIES = libcmds.la librc_protocol.la @@ -116,7 +142,7 @@ if HAVE_RPCGEN rc_protocol.c: rc_protocol.x rm -f $@-t $@-t2 $(RPCGEN) -c -o $@-t $< - sed 's,\.\./\.\./fish/,,' < $@-t > $@-t2 + sed 's,\.\./\(\.\./\)*fish,.,' < $@-t > $@-t2 rm $@-t mv $@-t2 $@ @@ -126,31 +152,103 @@ rc_protocol.h: rc_protocol.x mv $@-t $@ endif -# Build a partly-static library (for the binary distribution). - -guestfish.static$(EXEEXT): $(guestfish_OBJECTS) $(guestfish_DEPENDENCIES) - $(top_srcdir)/relink-static.sh \ - $(guestfish_LINK) $(guestfish_OBJECTS) -static $(guestfish_LDADD) $(guestfish_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -ltinfo -lpcre -lhivex -lmagic -lz -lm - -# Manual page. -# guestfish-actions.pod and guestfish-commands.pod are autogenerated. -# There is no include mechanism for POD, so we have to do it by hand. - -man_MANS = guestfish.1 - -guestfish.1: guestfish.pod guestfish-actions.pod guestfish-commands.pod - sed \ - -e '/@ACTIONS@/rguestfish-actions.pod' -e 's/@ACTIONS@//' \ - -e '/@FISH_COMMANDS@/rguestfish-commands.pod' -e 's/@FISH_COMMANDS@//' \ - < $< | \ - $(POD2MAN) \ - --section 1 \ - -c "Virtualization Support" \ - --name "guestfish" \ - --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \ - > $@ +# Script wrappers. + +bin_SCRIPTS = virt-copy-in virt-copy-out virt-tar-in virt-tar-out + +# Manual pages. + +man_MANS = \ + guestfish.1 \ + virt-copy-in.1 \ + virt-copy-out.1 \ + virt-tar-in.1 \ + virt-tar-out.1 +noinst_DATA = \ + $(top_builddir)/html/guestfish.1.html \ + $(top_builddir)/html/virt-copy-in.1.html \ + $(top_builddir)/html/virt-copy-out.1.html \ + $(top_builddir)/html/virt-tar-in.1.html \ + $(top_builddir)/html/virt-tar-out.1.html + +guestfish.1 $(top_builddir)/html/guestfish.1.html: stamp-guestfish.pod + +stamp-guestfish.pod: guestfish.pod guestfish-actions.pod guestfish-commands.pod + $(top_builddir)/podwrapper.sh \ + --man guestfish.1 \ + --html $(top_builddir)/html/guestfish.1.html \ + --insert $(srcdir)/guestfish-actions.pod:@ACTIONS@ \ + --insert $(srcdir)/guestfish-commands.pod:@FISH_COMMANDS@ \ + $< + touch $@ + +virt-copy-in.1 $(top_builddir)/html/virt-copy-in.1.html: stamp-virt-copy-in.pod + +stamp-virt-copy-in.pod: virt-copy-in.pod + $(top_builddir)/podwrapper.sh \ + --man virt-copy-in.1 \ + --html $(top_builddir)/html/virt-copy-in.1.html \ + $< + touch $@ + +virt-copy-out.1 $(top_builddir)/html/virt-copy-out.1.html: stamp-virt-copy-out.pod + +stamp-virt-copy-out.pod: virt-copy-out.pod + $(top_builddir)/podwrapper.sh \ + --man virt-copy-out.1 \ + --html $(top_builddir)/html/virt-copy-out.1.html \ + $< + touch $@ + +virt-tar-in.1 $(top_builddir)/html/virt-tar-in.1.html: stamp-virt-tar-in.pod + +stamp-virt-tar-in.pod: virt-tar-in.pod + $(top_builddir)/podwrapper.sh \ + --man virt-tar-in.1 \ + --html $(top_builddir)/html/virt-tar-in.1.html \ + $< + touch $@ + +virt-tar-out.1 $(top_builddir)/html/virt-tar-out.1.html: stamp-virt-tar-out.pod + +stamp-virt-tar-out.pod: virt-tar-out.pod + $(top_builddir)/podwrapper.sh \ + --man virt-tar-out.1 \ + --html $(top_builddir)/html/virt-tar-out.1.html \ + $< + touch $@ + +# libguestfs tools config file. + +toolsconfdir = $(sysconfdir) +toolsconf_DATA = libguestfs-tools.conf # Bash completion script. bashcompletiondir = $(sysconfdir)/bash_completion.d bashcompletion_DATA = guestfish-bash-completion.sh + +# Tests. + +random_val := $(shell awk 'BEGIN{srand(); print 1+int(255*rand())}' < /dev/null) + +TESTS_ENVIRONMENT = \ + MALLOC_PERTURB_=$(random_val) \ + LD_LIBRARY_PATH=$(top_builddir)/src/.libs \ + LIBGUESTFS_PATH=$(top_builddir)/appliance \ + TMPDIR=$(top_builddir) + +TESTS = \ + test-add-domain.sh \ + test-copy.sh \ + test-find0.sh \ + test-guestfish-a.sh \ + test-guestfish-d.sh \ + test-guestfish-escapes.sh \ + test-guestfish-events.sh \ + test-guestfish-tilde.sh \ + test-read_file.sh \ + test-remote.sh \ + test-reopen.sh \ + test-stringlist.sh \ + test-upload-to-dir.sh