X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=fish%2FMakefile.am;h=972b13d6557f81b8170f409d105edfba1a76237a;hp=e1e8833e3cc851bd72d79c36d650fb4ef43f4697;hb=b8f9a20b039b34ba41098d1360866b6f9f74463d;hpb=54837f6d7ba83178625e2f0c3c063457d9f3f79c diff --git a/fish/Makefile.am b/fish/Makefile.am index e1e8833..972b13d 100644 --- a/fish/Makefile.am +++ b/fish/Makefile.am @@ -17,15 +17,22 @@ include $(top_srcdir)/subdir-rules.mk +CLEANFILES = stamp-guestfish.pod + bin_PROGRAMS = guestfish generator_built = \ cmds.c \ + cmds_gperf.gperf \ completion.c \ - guestfish-actions.pod + guestfish-actions.pod \ + guestfish-commands.pod \ + prepopts.h \ + prepopts.c BUILT_SOURCES = \ $(generator_built) \ + cmds_gperf.c \ rc_protocol.h \ rc_protocol.c @@ -33,51 +40,87 @@ EXTRA_DIST = \ $(BUILT_SOURCES) \ rc_protocol.x \ guestfish.pod \ - guestfish-bash-completion.sh + guestfish-bash-completion.sh \ + 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 (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. +SHARED_SOURCE_FILES = \ + inspect.c \ + keys.c \ + options.h \ + options.c \ + virt.c guestfish_SOURCES = \ $(generator_built) \ + $(SHARED_SOURCE_FILES) \ alloc.c \ + cmds_gperf.h \ + copy.c \ destpaths.c \ echo.c \ edit.c \ fish.c \ fish.h \ glob.c \ - inspect.c \ + help.c \ + hexedit.c \ lcd.c \ man.c \ more.c \ prep.c \ + prep_disk.c \ + prep_part.c \ + prep_fs.c \ + prep_lv.c \ + prep_boot.c \ progress.c \ rc.c \ reopen.c \ + rmsd.h \ supported.c \ tilde.c \ - time.c \ - virt.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 +# Build the command lookup perfect hash code. The generated code has +# lots of warnings so we must compile it in a separate mini-library. +libcmds_la_SOURCES = cmds_gperf.c +libcmds_la_CFLAGS = + +cmds_gperf.c: cmds_gperf.gperf + rm -f $@ + $(GPERF) -t $< > $@-t + mv $@-t $@ + guestfish_CFLAGS = \ -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 \ - $(LIBVIRT_CFLAGS) $(LIBXML2_CFLAGS) \ $(WARN_CFLAGS) $(WERROR_CFLAGS) guestfish_LDADD = \ - $(LIBVIRT_LIBS) $(LIBXML2_LIBS) \ $(top_builddir)/src/libguestfs.la $(LIBREADLINE) -lm -# Make libguestfs use the convenience library. -noinst_LTLIBRARIES = librc_protocol.la -guestfish_LDADD += librc_protocol.la ../gnulib/lib/libgnu.la +# Make guestfish use the convenience libraries. +noinst_LTLIBRARIES = libcmds.la librc_protocol.la +guestfish_LDADD += libcmds.la librc_protocol.la ../gnulib/lib/libgnu.la if HAVE_RPCGEN rc_protocol.c: rc_protocol.x @@ -93,28 +136,71 @@ 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) -lpcre -lhivex -lmagic -lz -lm - -# Manual page. -# guestfish-actions.pod is 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 - sed \ - -e '/@ACTIONS@/rguestfish-actions.pod' -e 's/@ACTIONS@//' \ - < $< | \ - $(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_srcdir)/podwrapper.sh \ + --man guestfish.1 \ + --html $(top_builddir)/html/guestfish.1.html \ + --insert guestfish-actions.pod:@ACTIONS@ \ + --insert 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_srcdir)/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_srcdir)/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_srcdir)/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_srcdir)/podwrapper.sh \ + --man virt-tar-out.1 \ + --html $(top_builddir)/html/virt-tar-out.1.html \ + $< + touch $@ # Bash completion script.