From 34bb443ee74df3780d86044dbf6492eb798c5807 Mon Sep 17 00:00:00 2001 From: Anthony Liguori Date: Tue, 17 Jul 2012 13:33:32 -0500 Subject: [PATCH] build: add make dist target (v2) Let's stop screwing up releases by having a script do the work that Anthony's fat fingers can't seem to get right. Cc: Michael Roth Reviewed-by: Eric Blake Tested-by: Michael Roth Signed-off-by: Anthony Liguori --- Makefile | 30 +++++++++++++++--------------- scripts/make-release | 24 ++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 15 deletions(-) create mode 100755 scripts/make-release diff --git a/Makefile b/Makefile index 6eeabd0b74..720c1080db 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ Makefile: ; configure: ; .PHONY: all clean cscope distclean dvi html info install install-doc \ - pdf recurse-all speed tar tarbin test + pdf recurse-all speed test dist $(call set-vpath, $(SRC_PATH)) @@ -233,6 +233,20 @@ clean: rm -f $$d/qemu-options.def; \ done +VERSION ?= $(shell cat VERSION) + +dist: qemu-$(VERSION).tar.bz2 + +qemu-%.tar.bz2: + $(SRC_PATH)/scripts/make-release "$(SRC_PATH)" "$(patsubst qemu-%.tar.bz2,%,$@)" + +VERSION ?= $(shell cat VERSION) + +dist: qemu-$(VERSION).tar.bz2 + +qemu-%.tar.bz2: + $(SRC_PATH)/scripts/make-release "$(SRC_PATH)" "$(patsubst qemu-%.tar.bz2,%,$@)" + distclean: clean rm -f config-host.mak config-host.h* config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi rm -f config-all-devices.mak @@ -391,20 +405,6 @@ qemu-doc.dvi qemu-doc.html qemu-doc.info qemu-doc.pdf: \ qemu-img.texi qemu-nbd.texi qemu-options.texi \ qemu-monitor.texi qemu-img-cmds.texi -VERSION ?= $(shell cat VERSION) -FILE = qemu-$(VERSION) - -# tar release (use 'make -k tar' on a checkouted tree) -tar: - rm -rf /tmp/$(FILE) - cp -r . /tmp/$(FILE) - cd /tmp && tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS --exclude .git --exclude .svn - rm -rf /tmp/$(FILE) - -# Add a dependency on the generated files, so that they are always -# rebuilt before other object files -Makefile: $(GENERATED_HEADERS) - # Include automatically generated dependency files # All subdir dependencies come automatically from our recursive subdir rules -include $(wildcard *.d) diff --git a/scripts/make-release b/scripts/make-release new file mode 100755 index 0000000000..196c755f57 --- /dev/null +++ b/scripts/make-release @@ -0,0 +1,24 @@ +#!/bin/bash -e +# +# QEMU Release Script +# +# Copyright IBM, Corp. 2012 +# +# Authors: +# Anthony Liguori +# +# This work is licensed under the terms of the GNU GPLv2 or later. +# See the COPYING file in the top-level directory. + +src="$1" +version="$2" +destination=qemu-${version} + +git clone "${src}" ${destination} +pushd ${destination} +git checkout "v${version}" +git submodule update --init +rm -rf .git roms/*/.git +popd +tar cfj ${destination}.tar.bz2 ${destination} +rm -rf ${destination}