Add .gitignore file for git.
[virt-p2v.git] / Makefile.in
index 75395e6..89e6474 100644 (file)
 #----------------------------------------------------------------------
 # General configuration
 
-PACKAGE  := @PACKAGE_NAME@
-VERSION  := @PACKAGE_VERSION@
+PACKAGE                := @PACKAGE_NAME@
+VERSION                := @PACKAGE_VERSION@
 
-HAVE_PERLDOC := @HAVE_PERLDOC@
-HAVE_QEMU := @HAVE_QEMU@
-HAVE_QEMU_KVM := @HAVE_QEMU_KVM@
+INSTALL                := @INSTALL@
+
+HAVE_PERLDOC   := @HAVE_PERLDOC@
+HAVE_QEMU      := @HAVE_QEMU@
+HAVE_QEMU_KVM  := @HAVE_QEMU_KVM@
 HAVE_LIVECD_CREATOR := @HAVE_LIVECD_CREATOR@
+HAVE_LIVECD_ISO_TO_PXEBOOT := @HAVE_LIVECD_ISO_TO_PXEBOOT@
 
-LABEL   := $(PACKAGE)-$(VERSION)
-ISO     := $(LABEL).iso
+LABEL          := $(PACKAGE)-$(VERSION)
+ISO            := $(LABEL).iso
+PXE_TAR                := $(PACKAGE)-$(VERSION)-pxeboot.tar
+VIRTP2V_RPM     := $(PACKAGE)-$(VERSION)-1.noarch.rpm
 
 #----------------------------------------------------------------------
 
 all:
+       @echo "make rpm       Build the virt-p2v RPM"
        @echo "make build     Build the live CD ISO"
-       @echo "make boot [HDA=hda.img] [HDB=hdb.img] [ISO=livecd.iso]"
+       @echo "make boot [HDA=hda.img] [HDB=hdb.img] [ISO=livecd.iso] [SERIAL=yes]"
        @echo "                 Boot built/named ISO (uses qemu)"
        @echo "make update    Update an existing live CD ISO with new"
        @echo "                 virt-p2v script, without doing full rebuild"
+       @echo "make pxe       Build a PXE image (in tftpboot/ subdirectory)"
        @echo "make man       Make man pages (needs POD)"
 
 # Build live CD.
 
 ifeq ($(HAVE_LIVECD_CREATOR),livecd-creator)
 
-build: p2v.ks checkroot checkscript
+build: checkroot checkrpm checkscript
        rm -f $(ISO)
-       livecd-creator --config=$< --fslabel=$(LABEL)
+       livecd-creator --config=p2v.ks --fslabel=$(LABEL)
        ls -lhtr *.iso
 
 endif
 
+# Build RPM of virt-p2v.
+
+rpm:   checknotroot p2vrepo/$(VIRTP2V_RPM)
+
+RPM_FLAGS := --define "_topdir       %(pwd)/rpmbuild" \
+            --define "_builddir     %{_topdir}/BUILD" \
+            --define "_rpmdir       %{_topdir}/RPMS" \
+            --define "_srcrpmdir    %{_topdir}/SRPMS" \
+            --define "_specdir      %{_topdir}/SPECS" \
+            --define "_sourcedir    %(pwd)"
+
+p2vrepo/$(VIRTP2V_RPM): \
+               virt-p2v.spec \
+               virt-p2v virt-p2v-update-wrapper iso-attach \
+               inittab tty1
+       $(MAKE) dist
+       rm -rf rpmbuild
+       mkdir rpmbuild rpmbuild/{RPMS,BUILD,SRPMS,SPECS} rpmbuild/RPMS/noarch
+       rpmbuild $(RPM_FLAGS) -ba $<
+       mkdir -p p2vrepo
+       cp rpmbuild/RPMS/noarch/$(VIRTP2V_RPM) p2vrepo
+       createrepo p2vrepo
+
 # Run live CD under qemu.
 
 ifeq ($(HAVE_QEMU_KVM),qemu-kvm)
@@ -74,6 +104,8 @@ endif
 ifneq ($(HDB),)
 QEMU_ARGS += -hdb $(HDB)
 endif
+SERIAL    = none
+QEMU_ARGS += -serial $(SERIAL)
 
 boot:
        $(QEMU) $(QEMU_ARGS)
@@ -82,9 +114,18 @@ endif
 # Update an existing ISO.
 
 update: checkroot checkscript
-       -./iso-attach delete $(ISO)
+       -./iso-attach delete $(ISO) 2>/dev/null
        ./iso-attach add $(ISO) virt-p2v
 
+# PXE boot.
+
+ifeq ($(HAVE_LIVECD_ISO_TO_PXEBOOT),livecd-iso-to-pxeboot)
+
+pxe: checkroot checkscript
+       livecd-iso-to-pxeboot $(ISO)
+
+endif
+
 # Check that we are root.
 
 checkroot:
@@ -93,15 +134,36 @@ checkroot:
          exit 1; \
        fi
 
+# Check that we are not root.
+
+checknotroot:
+       @if [ `id -u` -eq 0 ]; then \
+         echo "You must not perform this step as root."; \
+         exit 1; \
+       fi
+
 # Check that the script compiles.
 
 checkscript:
+       test -x virt-p2v
        ./virt-p2v --test
 
+# Check that the RPM has been built.
+
+checkrpm:
+       test -f p2vrepo/$(VIRTP2V_RPM)
+
 # Clean.
 
 clean:
-       rm -f *~ core livecd.ks livecd-post.sh
+       rm -f core *~ pod2htm*
+
+distclean: clean
+       rm -rf autom4te.cache config.log config.status configure \
+         p2v.ks Makefile po/Makefile virt-p2v.spec
+
+reallyreallyclean: distclean
+       rm -f virt-p2v-*.tar.gz virt-p2v-*.iso
 
 # Manifest.
 
@@ -110,6 +172,7 @@ dist:
        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
@@ -149,4 +212,20 @@ website: man dist
        cp virt-p2v.1.css $(WEBSITE_DIR)
        cp $(PACKAGE)-$(VERSION).tar.gz $(WEBSITE_DIR)
 
+# Upload everything.
+
+upload: upload_iso upload_pxe
+
+# Upload ISO.
+
+upload_iso:
+       scp -l 300 $(ISO) et.redhat.com:public_html/tmp/
+
+# Upload PXE image.
+
+upload_pxe:
+       tar cf $(PXE_TAR) tftpboot
+       scp -l 300 $(PXE_TAR) et.redhat.com:public_html/tmp/
+#      rm $(PXE_TAR)
+
 .PHONY:        build boot checkroot
\ No newline at end of file