X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=images%2FMakefile.am;h=568808041d99ed15aa3cbf5b87a86b1a7605b83a;hp=885538295b512c087005f5547c829c4c19c909b3;hb=fcc631dedb894379cde01af563df3f6a364db7cb;hpb=1799b5ce4741446704418fe06ea7e13a91028b7e diff --git a/images/Makefile.am b/images/Makefile.am index 8855382..5688080 100644 --- a/images/Makefile.am +++ b/images/Makefile.am @@ -1,5 +1,5 @@ # libguestfs test images -# Copyright (C) 2009 Red Hat Inc. +# Copyright (C) 2009-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 @@ -15,48 +15,119 @@ # 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 + +# Old RHEL 5 autoconf doesn't have builddir. +builddir ?= $(top_builddir)/images + EXTRA_DIST = \ helloworld.tar \ helloworld.tar.gz \ + helloworld.tar.xz \ mbr-ext2-empty.img.gz \ - empty known-1 known-2 known-3 + empty known-1 known-2 known-3 known-4 known-5 \ + bin-i586-dynamic \ + bin-sparc-dynamic \ + bin-win32.exe \ + bin-win64.exe \ + bin-x86_64-dynamic \ + lib-i586.so \ + lib-sparc.so \ + lib-win32.dll \ + lib-win64.dll \ + lib-x86_64.so \ + test-grep.txt \ + guest-aux/make-debian-img.sh \ + guest-aux/debian-packages \ + guest-aux/make-fedora-img.sh \ + guest-aux/fedora-name.db.txt \ + guest-aux/fedora-name.db \ + guest-aux/make-ubuntu-img.sh \ + guest-aux/make-windows-img.sh \ + guest-aux/windows-software \ + guest-aux/windows-software.reg \ + guest-aux/windows-system \ + guest-aux/windows-system.reg \ + guest-aux/minimal-hive -noinst_DATA = test.sqsh +noinst_DATA = test.iso + +# This is 'check_DATA' because we don't need it until 'make check' +# time and we need the tools we have built in order to make it. +check_DATA = debian.img fedora.img ubuntu.img windows.img CLEANFILES = \ - test.sqsh \ + test.iso test.sqsh \ 100kallzeroes 100kallnewlines 100kallspaces 100krandom 10klines \ - initrd + initrd $(check_DATA) -squash_files = helloworld.tar helloworld.tar.gz empty known-1 known-2 known-3 \ - 100kallzeroes 100kallnewlines 100kallspaces 100krandom 10klines \ - initrd +images_files_src = \ + $(srcdir)/helloworld.tar \ + $(srcdir)/helloworld.tar.gz \ + $(srcdir)/helloworld.tar.xz \ + $(srcdir)/empty \ + $(srcdir)/known-1 \ + $(srcdir)/known-2 \ + $(srcdir)/known-3 \ + $(srcdir)/known-4 \ + $(srcdir)/known-5 \ + $(srcdir)/bin-i586-dynamic \ + $(srcdir)/bin-sparc-dynamic \ + $(srcdir)/bin-win32.exe \ + $(srcdir)/bin-win64.exe \ + $(srcdir)/bin-x86_64-dynamic \ + $(srcdir)/lib-i586.so \ + $(srcdir)/lib-sparc.so \ + $(srcdir)/lib-win32.dll \ + $(srcdir)/lib-win64.dll \ + $(srcdir)/lib-x86_64.so \ + $(srcdir)/test-grep.txt -test.sqsh: $(squash_files) - rm -f $@ - $(MKSQUASHFS) $(squash_files) $@ +images_files_build = \ + $(builddir)/100kallzeroes \ + $(builddir)/100kallnewlines \ + $(builddir)/100kallspaces \ + $(builddir)/100krandom \ + $(builddir)/10klines \ + $(builddir)/abssymlink \ + $(builddir)/hello.b64 \ + $(builddir)/initrd \ + $(builddir)/initrd-x86_64.img \ + $(builddir)/initrd-x86_64.img.gz \ + $(builddir)/test-grep.txt.gz + +images_files = $(images_files_src) $(images_files_build) + +test.iso: $(images_files) + rm -f $@ $@-t + mkdir -p directory + $(MKISOFS) -J -r -graft-points \ + -o $@-t \ + $(images_files) /directory=directory + rmdir directory + mv $@-t $@ -100kallzeroes: +$(builddir)/100kallzeroes: rm -f $@ $@-t dd if=/dev/zero of=$@-t bs=1024 count=100 mv $@-t $@ -100kallnewlines: 100kallzeroes +$(builddir)/100kallnewlines: $(builddir)/100kallzeroes rm -f $@ $@-t tr '\0' '\n' < $< > $@-t mv $@-t $@ -100kallspaces: 100kallzeroes +$(builddir)/100kallspaces: $(builddir)/100kallzeroes rm -f $@ $@-t tr '\0' ' ' < $< > $@-t mv $@-t $@ -100krandom: +$(builddir)/100krandom: rm -f $@ $@-t dd if=/dev/urandom of=$@-t bs=1024 count=100 mv $@-t $@ -10klines: +$(builddir)/10klines: rm -f $@ $@-t i=0; \ while [ $$i -lt 10000 ]; do \ @@ -65,7 +136,75 @@ test.sqsh: $(squash_files) done > $@-t mv $@-t $@ -initrd: empty known-1 known-2 known-3 +$(builddir)/abssymlink: + ln -sf /10klines $@ + +$(builddir)/hello.b64: + echo "hello" | base64 > $@ + +$(builddir)/initrd: empty known-1 known-2 known-3 known-4 known-5 rm -f $@ $@-t for f in $^; do echo $$f; done | cpio -o -H newc | gzip --best > $@-t mv $@-t $@ + +# Create a dummy initrd with a single file called 'bin/nash' which +# is used to test the Sys::Guestfs::Lib::file_architecture function. +$(builddir)/initrd-x86_64.img: bin-x86_64-dynamic + rm -rf bin $@ $@-t + mkdir bin + cp $< bin/nash + echo bin/nash | cpio -o -H newc > $@-t + mv $@-t $@ + rm -rf bin $@-t + +$(builddir)/initrd-x86_64.img.gz: initrd-x86_64.img + rm -f $@ $@-t + gzip --best -c $< > $@-t + mv $@-t $@ + +$(builddir)/test-grep.txt.gz: test-grep.txt + rm -f $@ $@-t + gzip --best -c $< > $@-t + mv $@-t $@ + +# Make a (dummy) Fedora image. +fedora.img: guest-aux/make-fedora-img.sh guest-aux/fedora-name.db + LIBGUESTFS_PATH=../appliance \ + LD_LIBRARY_PATH=../src/.libs \ + bash $< + +guest-aux/fedora-name.db: guest-aux/fedora-name.db.txt + db_load $@ < $< + +# Make a (dummy) Debian image. +debian.img: guest-aux/make-debian-img.sh + LIBGUESTFS_PATH=../appliance \ + LD_LIBRARY_PATH=../src/.libs \ + bash $< + +# Make a (dummy) Ubuntu image. +ubuntu.img: guest-aux/make-ubuntu-img.sh + LIBGUESTFS_PATH=../appliance \ + LD_LIBRARY_PATH=../src/.libs \ + bash $< + +# Make a (dummy) Windows image. +windows.img: guest-aux/make-windows-img.sh \ + guest-aux/windows-software guest-aux/windows-system + LIBGUESTFS_PATH=../appliance \ + LD_LIBRARY_PATH=../src/.libs \ + bash $< + +# Since users might not have the tools needed to create this, we +# also distribute these files. +guest-aux/windows-software: guest-aux/windows-software.reg + rm -f $@ $@-t + cp guest-aux/minimal-hive $@-t + hivexregedit --merge $@-t --prefix 'HKEY_LOCAL_MACHINE\SOFTWARE' $< + mv $@-t $@ + +guest-aux/windows-system: guest-aux/windows-system.reg + rm -f $@ $@-t + cp guest-aux/minimal-hive $@-t + hivexregedit --merge $@-t --prefix 'HKEY_LOCAL_MACHINE\SYSTEM' $< + mv $@-t $@