Comment change from clalance.
[virt-p2v.git] / Makefile
index 0124250..c3f2270 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,8 @@
 #----------------------------------------------------------------------
 # General configuration
 
-VERSION  := 0.1
+PACKAGE  := virt-p2v
+VERSION  := 0.3
 
 # i386 images also work on x86-64, so best to stick with i386.
 ARCH     := i386
@@ -19,25 +20,24 @@ BASEREPO := http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora
 export http_proxy := http://127.0.0.1:3128/
 export ftp_proxy := http://127.0.0.1:3128/
 
-LABEL   := virt-p2v-$(VERSION)
+LABEL   := $(PACKAGE)-$(VERSION)
 
 #----------------------------------------------------------------------
 
 all:
-       @echo "make build              Build the live CD ISO"
-       @echo "make boot [ISO=foo.iso] Boot built/named ISO (uses qemu)"
+       @echo "make build     Build the live CD ISO"
+       @echo "make boot [HDA=hda.img] [HDB=hdb.img] [ISO=livecd.iso]"
+       @echo "               Boot built/named ISO (uses qemu)"
 
-build: livecd.ks
+# Build live CD.
+
+build: checkroot livecd.ks
        rm -f $(LABEL).iso
-       livecd-creator --config=$< --fslabel=$(LABEL)
+       livecd-creator --config=livecd.ks --fslabel=$(LABEL)
        ls -lhtr *.iso
 
-ISO    = $(LABEL).iso
-
-boot:
-       qemu -m 512 -cdrom $(ISO)
-
 livecd.ks: livecd.ks.in livecd-post.sh Makefile
+       rm -f $@
        sed \
          -e 's|@BASEREPO@|$(BASEREPO)|g' \
          -e 's|@LANG@|$(LANG)|g' \
@@ -45,7 +45,8 @@ livecd.ks: livecd.ks.in livecd-post.sh Makefile
          -e 's|@TIMEZONE@|$(TIMEZONE)|g' \
          < $< | cat - livecd-post.sh > $@
 
-livecd-post.sh: livecd-post.sh.in p2v.init virt-p2v.sh inittab Makefile
+livecd-post.sh: livecd-post.sh.in p2v.init virt-p2v.sh inittab lvm.conf Makefile
+       rm -f $@
        sed \
          -e '/@P2V.INIT@/ r p2v.init' \
          -e '/@P2V.INIT@/ d' \
@@ -53,7 +54,61 @@ livecd-post.sh: livecd-post.sh.in p2v.init virt-p2v.sh inittab Makefile
          -e '/@VIRT-P2V.SH@/ d' \
          -e '/@INITTAB@/ r inittab' \
          -e '/@INITTAB@/ d' \
+         -e '/@LVM.CONF@/ r lvm.conf' \
+         -e '/@LVM.CONF@/ d' \
          < $< > $@
 
+# Run live CD under qemu.
+
+QEMU   := qemu
+ISO    := $(LABEL).iso
+HDA    :=
+HDB    :=
+
+QEMU_ARGS := -m 512 -cdrom $(ISO) -boot d
+ifneq ($(HDA),)
+QEMU_ARGS += -hda $(HDA)
+endif
+ifneq ($(HDB),)
+QEMU_ARGS += -hdb $(HDB)
+endif
+
+boot:
+       $(QEMU) $(QEMU_ARGS)
+
+# Standard rules.
+
+checkroot:
+       @if [ `id -u` -ne 0 ]; then \
+         echo "You must be root to perform this operation."; \
+         exit 1; \
+       fi
+
 clean:
        rm -f *~ core livecd.ks livecd-post.sh
+
+# Manifest.
+
+dist:
+       $(MAKE) check-manifest
+       rm -rf $(PACKAGE)-$(VERSION)
+       mkdir $(PACKAGE)-$(VERSION)
+       tar -cf - -T MANIFEST | tar -C $(PACKAGE)-$(VERSION) -xf -
+       $(INSTALL) -m 0755 configure $(PACKAGE)-$(VERSION)/
+       tar zcf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
+       rm -rf $(PACKAGE)-$(VERSION)
+       ls -l $(PACKAGE)-$(VERSION).tar.gz
+
+check-manifest:
+       @for d in `find -type d -name CVS | grep -v '^\./debian/'`; \
+       do \
+       b=`dirname $$d`/; \
+       awk -F/ '$$1 != "D" {print $$2}' $$d/Entries | \
+       sed -e "s|^|$$b|" -e "s|^\./||"; \
+       done | sort > .check-manifest; \
+       sort MANIFEST > .orig-manifest; \
+       diff -u .orig-manifest .check-manifest; rv=$$?; \
+       rm -f .orig-manifest .check-manifest; \
+       exit $$rv
+
+.PHONY:        build boot checkroot
\ No newline at end of file