-# libguestfs virt-cat
-# Copyright (C) 2009 Red Hat Inc.
+# libguestfs virt-cat, virt-filesystems and virt-ls.
+# Copyright (C) 2010 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
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+include $(top_srcdir)/subdir-rules.mk
+
EXTRA_DIST = \
run-cat-locally \
- virt-cat.pl
+ test-virt-cat.sh \
+ virt-cat.pod \
+ run-filesystems-locally \
+ test-virt-filesystems.sh \
+ virt-filesystems.pod \
+ run-ls-locally \
+ test-virt-ls.sh \
+ virt-ls.pod
+
+CLEANFILES = stamp-virt-cat.pod stamp-virt-ls.pod stamp-virt-filesystems.pod
+
+bin_PROGRAMS = virt-cat virt-filesystems virt-ls
+
+SHARED_SOURCE_FILES = \
+ ../fish/inspect.c \
+ ../fish/keys.c \
+ ../fish/options.h \
+ ../fish/options.c \
+ ../fish/virt.c
+
+virt_cat_SOURCES = \
+ $(SHARED_SOURCE_FILES) \
+ virt-cat.c
+
+virt_cat_CFLAGS = \
+ -I$(top_srcdir)/src -I$(top_builddir)/src \
+ -I$(top_srcdir)/fish \
+ -I$(srcdir)/../gnulib/lib -I../gnulib/lib \
+ -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
+ $(WARN_CFLAGS) $(WERROR_CFLAGS)
+
+virt_cat_LDADD = \
+ $(top_builddir)/src/libguestfs.la \
+ ../gnulib/lib/libgnu.la
+
+virt_filesystems_SOURCES = \
+ $(SHARED_SOURCE_FILES) \
+ virt-filesystems.c
+
+virt_filesystems_CFLAGS = \
+ -I$(top_srcdir)/src -I$(top_builddir)/src \
+ -I$(top_srcdir)/fish \
+ -I$(srcdir)/../gnulib/lib -I../gnulib/lib \
+ -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
+ $(WARN_CFLAGS) $(WERROR_CFLAGS)
+
+virt_filesystems_LDADD = \
+ $(top_builddir)/src/libguestfs.la \
+ ../gnulib/lib/libgnu.la
+
+virt_ls_SOURCES = \
+ $(SHARED_SOURCE_FILES) \
+ virt-ls.c
+
+virt_ls_CFLAGS = \
+ -I$(top_srcdir)/src -I$(top_builddir)/src \
+ -I$(top_srcdir)/fish \
+ -I$(srcdir)/../gnulib/lib -I../gnulib/lib \
+ -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
+ $(WARN_CFLAGS) $(WERROR_CFLAGS)
+
+virt_ls_LDADD = \
+ $(top_builddir)/src/libguestfs.la \
+ ../gnulib/lib/libgnu.la
+
+# Manual pages and HTML files for the website.
+man_MANS = virt-cat.1 virt-filesystems.1 virt-ls.1
+
+noinst_DATA = \
+ $(top_builddir)/html/virt-cat.1.html \
+ $(top_builddir)/html/virt-filesystems.1.html \
+ $(top_builddir)/html/virt-ls.1.html
+
+virt-cat.1 $(top_builddir)/html/virt-cat.1.html: stamp-virt-cat.pod
+
+stamp-virt-cat.pod: virt-cat.pod
+ $(top_srcdir)/podwrapper.sh \
+ --man virt-cat.1 \
+ --html $(top_builddir)/html/virt-cat.1.html \
+ $<
+ touch $@
+
+virt-ls.1 $(top_builddir)/html/virt-ls.1.html: stamp-virt-ls.pod
-if HAVE_CAT
+stamp-virt-ls.pod: virt-ls.pod
+ $(top_srcdir)/podwrapper.sh \
+ --man virt-ls.1 \
+ --html $(top_builddir)/html/virt-ls.1.html \
+ $<
+ touch $@
-man_MANS = virt-cat.1
+virt-filesystems.1 $(top_builddir)/html/virt-filesystems.1.html: stamp-virt-filesystems.pod
-noinst_DATA = $(top_builddir)/html/virt-cat.1.html
+stamp-virt-filesystems.pod: virt-filesystems.pod
+ $(top_srcdir)/podwrapper.sh \
+ --man virt-filesystems.1 \
+ --html $(top_builddir)/html/virt-filesystems.1.html \
+ $<
+ touch $@
-virt-cat.1: virt-cat.pl
- $(POD2MAN) \
- --section 1 \
- -c "Virtualization Support" \
- --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
- $< > $@
+# Tests.
-$(top_builddir)/html/virt-cat.1.html: virt-cat.pl
- mkdir -p $(top_builddir)/html
- cd $(top_builddir) && pod2html \
- --css 'pod.css' \
- --title 'virt-cat, display a file in a virtual machine' \
- --htmldir html \
- --outfile html/virt-cat.1.html \
- cat/$<
+random_val := $(shell awk 'BEGIN{srand(); print 1+int(255*rand())}' < /dev/null)
-install-data-hook:
- mkdir -p $(DESTDIR)$(bindir)
- install -m 0755 virt-cat.pl $(DESTDIR)$(bindir)/virt-cat
+TESTS_ENVIRONMENT = \
+ MALLOC_PERTURB_=$(random_val) \
+ LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
+ LIBGUESTFS_PATH=$(top_builddir)/appliance
-endif
+TESTS = test-virt-cat.sh test-virt-filesystems.sh test-virt-ls.sh