subtree-force-update-all:
$(MAKE) -C tools subtree-force-update-all
+# Make a source tarball, including qemu sub-trees.
+#
+# src-tarball will use "git describe" for the version number. This
+# will have the most recent tag, number of commits since that tag, and
+# git commit id of the head. This is suitable for a "snapshot"
+# tarball of an unreleased tree.
+#
+# src-tarball-release will use "make xenversion" as the version
+# number. This is suitable for release tarballs.
+.PHONY: src-tarball-release
+src-tarball-release: subtree-force-update-all
+ bash ./tools/misc/mktarball $(XEN_ROOT) $$($(MAKE) -C xen xenversion --no-print-directory)
+
+.PHONY: src-tarball
+src-tarball: subtree-force-update-all
+ bash ./tools/misc/mktarball $(XEN_ROOT) $$(git describe)
+
.PHONY: clean
clean::
$(MAKE) -C xen clean
.PHONY: mrproper
mrproper: distclean
-# Prepare for source tarball
-.PHONY: src-tarball
-src-tarball: distclean
- $(MAKE) -C xen .banner
- rm -rf xen/tools/figlet .[a-z]*
- $(MAKE) -C xen distclean
-
.PHONY: help
help:
@echo 'Installation targets:'
@echo ' install-tboot - download, build, and install the tboot module'
@echo ' clean-tboot - clean the tboot module if it exists'
@echo
+ @echo 'Package targets:'
+ @echo ' src-tarball-release - make a source tarball with xen and qemu tagged with a release'
+ @echo ' src-tarball - make a source tarball with xen and qemu tagged with git describe'
+ @echo
@echo 'Environment:'
@echo ' [ this documentation is sadly not complete ]'
--- /dev/null
+#!/bin/bash
+#
+# mktarball: Make a release tarball (including xen, qemu, and qemu-traditional)
+#
+# Takes 2 arguments, the path to the dist directory and the version
+set -ex
+
+function git_archive_into {
+ mkdir "$2"
+
+ git --git-dir="$1"/.git \
+ archive --format=tar HEAD | \
+ tar Cxf "$2" -
+}
+
+if [[ -z "$1" || -z "$2" ]] ; then
+ echo "usage: $0 path-to-XEN_ROOT xen-version"
+ exit 1
+fi
+
+xen_root="$1"
+desc="$2"
+
+tdir="$xen_root/dist/tmp.src-tarball"
+
+rm -rf $tdir
+
+mkdir -p $tdir
+
+git_archive_into $xen_root $tdir/xen-$desc
+
+git_archive_into $xen_root/tools/qemu-xen-dir-remote $tdir/xen-$desc/tools/qemu-xen
+
+git_archive_into $xen_root/tools/qemu-xen-traditional-dir-remote $tdir/xen-$desc/tools/qemu-xen-traditional
+
+GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
+
+echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"