aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile5
-rw-r--r--tools/misc/mkdeb56
-rw-r--r--xen/Makefile4
3 files changed, 65 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 662e31f549..9f1e3c4af1 100644
--- a/Makefile
+++ b/Makefile
@@ -118,6 +118,11 @@ world:
$(MAKE) kdelete
$(MAKE) dist
+# Package a build in a .deb file
+.PHONY: deb
+deb: dist
+ fakeroot sh ./tools/misc/mkdeb $(XEN_ROOT) $$($(MAKE) -C xen xenversion | grep -v :)
+
# clean doesn't do a kclean
.PHONY: clean
clean::
diff --git a/tools/misc/mkdeb b/tools/misc/mkdeb
new file mode 100644
index 0000000000..603cd6baa8
--- /dev/null
+++ b/tools/misc/mkdeb
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# mkdeb: package the dist/install output of a Xen build in a .deb
+#
+# Takes 2 arguments, the path to the dist directory and the version
+
+set -e
+
+if test -z "$1" -o -z "$2" ; then
+ echo "usage: $0 path-to-XEN_ROOT xen-version"
+ exit 1
+fi
+
+cd $1
+version=$2
+if test "$XEN_TARGET_ARCH" = "x86_32"; then
+ arch=i386
+else
+ arch=amd64
+fi
+
+# Prepare the directory to package
+cd dist
+rm -rf deb
+cp -a install deb
+
+# Debian doesn't use /usr/lib64 for 64-bit libraries
+if test -d deb/usr/lib64 ; then
+ cp -a deb/usr/lib64/* deb/usr/lib/
+ rm -rf deb/usr/lib64
+fi
+
+# Fill in the debian boilerplate
+mkdir -p deb/DEBIAN
+cat >deb/DEBIAN/control <<EOF
+Package: xen-upstream-$version
+Source: xen-upstream
+Version: $version
+Architecture: $arch
+Maintainer: Unmaintained snapshot
+Section: admin
+Priority: optional
+Installed-Size: $(du -ks deb | cut -f1)
+Description: Xen hypervisor and tools, version $version
+ This package contains the Xen hypervisor and associated tools, built
+ from a source tree. It is not a fully packaged and supported Xen, just
+ the output of a xen "make dist" wrapped in a .deb to make it easy to
+ uninstall.
+EOF
+
+# Package it up
+chown -R root:root deb
+dpkg --build deb $xen-upstream-$version.deb
+
+# Tidy up after ourselves
+rm -rf deb
diff --git a/xen/Makefile b/xen/Makefile
index dcaab5cbf2..19ada7ef54 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -129,6 +129,10 @@ define set_exuberant_flags
--extra=+f --c-kinds=+px") || true`
endef
+.PHONY: xenversion
+xenversion:
+ @echo $(XEN_FULLVERSION)
+
.PHONY: _TAGS
_TAGS:
set -e; rm -f TAGS; \