+# Makefile for virt-p2v
+#
+# Copyright (C) 2007 Red Hat Inc.
+# Written by Richard W.M. Jones <rjones@redhat.com>
+#
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
# $Id$
#----------------------------------------------------------------------
# General configuration
-VERSION := 0.1
+PACKAGE := virt-p2v
+VERSION := 0.7
# i386 images also work on x86-64, so best to stick with i386.
ARCH := i386
KEYBOARD := us
TIMEZONE := US/Eastern
-BASEREPO := http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/$(ARCH)/os/
+BASEREPO := http://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/$(ARCH)/os/
# Select a suitable HTTP proxy.
# The default assumes a local squid proxy.
-export http_proxy := http://127.0.0.1:3128/
-export ftp_proxy := http://127.0.0.1:3128/
+#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-test.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-test.ks: livecd-test.ks.in livecd-post.sh Makefile
+livecd.ks: livecd.ks.in livecd-post.sh Makefile
+ rm -f $@
sed \
-e 's|@BASEREPO@|$(BASEREPO)|g' \
-e 's|@LANG@|$(LANG)|g' \
-e 's|@TIMEZONE@|$(TIMEZONE)|g' \
< $< | cat - livecd-post.sh > $@
-livecd-post.sh: livecd-post.sh.in p2v.init virt-p2v.sh Makefile
+livecd-post.sh: livecd-post.sh.in virt-p2v.sh inittab lvm.conf Makefile
+ rm -f $@
sed \
- -e '/@P2V.INIT@/ r p2v.init' \
- -e '/@P2V.INIT@/ d' \
-e '/@VIRT-P2V.SH@/ r virt-p2v.sh' \
-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 -
+ 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