All of lore.kernel.org
 help / color / mirror / Atom feed
* [v3 for 4.5 1/2] make: Add subtree-force-update target
@ 2014-09-15 16:25 George Dunlap
  2014-09-15 16:25 ` [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball George Dunlap
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: George Dunlap @ 2014-09-15 16:25 UTC (permalink / raw)
  To: xen-devel; +Cc: George Dunlap, Ian Jackson, Olaf Hering, Ian Campbell

subtree-force-update will update all subtrees according to the current TAG specified
in Config.mk.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>

---
v3:
 - Rename to subtree-force-update
 - Add command to help
 - Add a target to update all trees unconditionally (for the tarball release)

CC: Ian Campbell <ian.campbell@citrix.com>
CC: Ian Jackson <ian.jackson@citrix.com>
CC: Olaf Hering <olaf@aepfle.de>
---
 Makefile                | 49 +++++++++++++++++++++++++++++--------------------
 tools/Makefile          | 14 ++++++++++++++
 tools/firmware/Makefile | 12 ++++++++++++
 3 files changed, 55 insertions(+), 20 deletions(-)

diff --git a/Makefile b/Makefile
index 580df64..2389057 100644
--- a/Makefile
+++ b/Makefile
@@ -135,6 +135,14 @@ debball: dist
 rpmball: dist
 	bash ./tools/misc/mkrpm $(XEN_ROOT) $$($(MAKE) -C xen xenversion --no-print-directory)
 
+.PHONY: subtree-force-update
+subtree-force-update:
+	$(MAKE) -C tools subtree-force-update
+
+.PHONY: subtree-force-update-all
+subtree-force-update-all:
+	$(MAKE) -C tools subtree-force-update-all
+
 .PHONY: clean
 clean::
 	$(MAKE) -C xen clean
@@ -173,34 +181,35 @@ src-tarball: distclean
 .PHONY: help
 help:
 	@echo 'Installation targets:'
-	@echo '  install          - build and install everything'
-	@echo '  install-xen      - build and install the Xen hypervisor'
-	@echo '  install-tools    - build and install the control tools'
-	@echo '  install-stubdom  - build and install the stubdomain images'
-	@echo '  install-docs     - build and install user documentation'
+	@echo '  install               - build and install everything'
+	@echo '  install-xen           - build and install the Xen hypervisor'
+	@echo '  install-tools         - build and install the control tools'
+	@echo '  install-stubdom       - build and install the stubdomain images'
+	@echo '  install-docs          - build and install user documentation'
 	@echo ''
 	@echo 'Building targets:'
-	@echo '  dist             - build and install everything into local dist directory'
-	@echo '  world            - clean everything then make dist'
-	@echo '  xen              - build and install Xen hypervisor'
-	@echo '  tools            - build and install tools'
-	@echo '  stubdom          - build and install the stubdomain images'
-	@echo '  docs             - build and install user documentation'
-	@echo '  dev-docs         - build developer-only documentation'
+	@echo '  dist                  - build and install everything into local dist directory'
+	@echo '  world                 - clean everything then make dist'
+	@echo '  xen                   - build and install Xen hypervisor'
+	@echo '  tools                 - build and install tools'
+	@echo '  stubdom               - build and install the stubdomain images'
+	@echo '  docs                  - build and install user documentation'
+	@echo '  dev-docs              - build developer-only documentation'
 	@echo ''
 	@echo 'Cleaning targets:'
-	@echo '  clean            - clean the Xen, tools and docs (but not guest kernel trees)'
-	@echo '  distclean        - clean plus delete kernel build trees and'
-	@echo '                     local downloaded files'
+	@echo '  clean                 - clean the Xen, tools and docs (but not guest kernel trees)'
+	@echo '  distclean             - clean plus delete kernel build trees and'
+	@echo '                          local downloaded files'
+	@echo '  subtree-force-update  - Call *-force-update on all git subtrees (qemu, seabios, ovmf)'
 	@echo ''
 	@echo 'Miscellaneous targets:'
-	@echo '  uninstall        - attempt to remove installed Xen tools'
-	@echo '                     (use with extreme care!)'
+	@echo '  uninstall             - attempt to remove installed Xen tools'
+	@echo '                          (use with extreme care!)'
 	@echo
 	@echo 'Trusted Boot (tboot) targets:'
-	@echo '  build-tboot      - download and build the tboot module'
-	@echo '  install-tboot    - download, build, and install the tboot module'
-	@echo '  clean-tboot      - clean the tboot module if it exists'
+	@echo '  build-tboot           - download and build the tboot module'
+	@echo '  install-tboot         - download, build, and install the tboot module'
+	@echo '  clean-tboot           - clean the tboot module if it exists'
 	@echo
 	@echo 'Environment:'
 	@echo '  [ this documentation is sadly not complete ]'
diff --git a/tools/Makefile b/tools/Makefile
index b6476c9..f8ed6c4 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -240,3 +240,17 @@ subdir-all-debugger/kdd: .phony
 
 subdir-distclean-firmware: .phony
 	$(MAKE) -C firmware distclean
+
+subtree-force-update:
+ifeq ($(CONFIG_QEMU_XEN),y)
+	$(MAKE) qemu-xen-dir-force-update
+endif
+ifeq ($(CONFIG_QEMU_TRAD),y)
+	$(MAKE) qemu-xen-traditional-dir-force-update
+endif
+	$(MAKE) -C firmware subtree-force-update
+
+subtree-force-update-all:
+	$(MAKE) qemu-xen-dir-force-update
+	$(MAKE) qemu-xen-traditional-dir-force-update
+	$(MAKE) -C firmware subtree-force-update-all
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index 660bacb..ca5df42 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -88,3 +88,15 @@ subdir-clean-seabios-dir:
 	set -e; if test -d seabios-dir/.; then \
 		$(MAKE) -C seabios-dir clean; \
 	fi
+
+subtree-force-update:
+ifeq ($(CONFIG_SEABIOS),y)
+	$(MAKE) seabios-dir-force-update
+endif
+ifeq ($(CONFIG_OVMF),y)
+	$(MAKE) ovmf-dir-force-update
+endif
+
+subtree-force-update-all:
+	$(MAKE) seabios-dir-force-update
+	$(MAKE) ovmf-dir-force-update
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball
  2014-09-15 16:25 [v3 for 4.5 1/2] make: Add subtree-force-update target George Dunlap
@ 2014-09-15 16:25 ` George Dunlap
  2014-09-16  8:11   ` Jan Beulich
  2014-09-23 17:48   ` Ian Jackson
  2014-09-17 13:38 ` [v3 for 4.5 1/2] make: Add subtree-force-update target George Dunlap
  2014-09-23 17:40 ` Ian Jackson
  2 siblings, 2 replies; 10+ messages in thread
From: George Dunlap @ 2014-09-15 16:25 UTC (permalink / raw)
  To: xen-devel
  Cc: Olaf Hering, Ian Campbell, George Dunlap, Jan Beulich,
	Anthony Perard, Ian Jackson

At the moment, making a release tarball is an annoyingly manual
process that involves running "git archive" into a temporary directory.

Script this process up and make a target, so that the release manager
can simply type "make src-tarball-release" and have everything show up
nice and neat in dist/xen-$version.tar.gz.  "make src-tarball" will
make a version number based on git describe, which will typically have
the most recent tag, number of commits since that tag, and the git
commit id of the current HEAD.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>

---

v2:
* Put quotes around assignments with variables in them
* Avoid pushd/popd
* Get rid of unnecessary error checks (since set -e will take care of it)
* Make a function to do the git archive
* Add "src-tarball-release" to do a clean version (e.g., 4.4.1)
* "src-tarball" will name it based on "git describe" (includes a short commit hash).
* Add mkdir -p $xen_root/dist/ to the script so that it works on a freshly cloned tree

v3:
* Use fixed filename for temporary directory
* Make script "crash-only"
* Include all subtrees, configured or not

CC: Ian Campbell <ian.campbell@citrix.com>
CC: Ian Jackson <ian.jackson@citrix.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Anthony Perard <anthony.perard@citrix.com>
CC: Olaf Hering <olaf@aepfle.de>
---
 Makefile             | 28 +++++++++++++++++++++-------
 tools/misc/mktarball | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 7 deletions(-)
 create mode 100755 tools/misc/mktarball

diff --git a/Makefile b/Makefile
index 2389057..3b9bf7a 100644
--- a/Makefile
+++ b/Makefile
@@ -143,6 +143,23 @@ subtree-force-update:
 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
@@ -171,13 +188,6 @@ endif
 .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:'
@@ -211,6 +221,10 @@ help:
 	@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 ]'
 
diff --git a/tools/misc/mktarball b/tools/misc/mktarball
new file mode 100755
index 0000000..bdc1c5a
--- /dev/null
+++ b/tools/misc/mktarball
@@ -0,0 +1,38 @@
+#!/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"
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball
  2014-09-15 16:25 ` [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball George Dunlap
@ 2014-09-16  8:11   ` Jan Beulich
  2014-09-16  8:49     ` George Dunlap
  2014-09-23 17:48   ` Ian Jackson
  1 sibling, 1 reply; 10+ messages in thread
From: Jan Beulich @ 2014-09-16  8:11 UTC (permalink / raw)
  To: George Dunlap
  Cc: Anthony Perard, Ian Jackson, Olaf Hering, Ian Campbell, xen-devel

>>> On 15.09.14 at 18:25, <george.dunlap@eu.citrix.com> wrote:
> --- /dev/null
> +++ b/tools/misc/mktarball
> @@ -0,0 +1,38 @@
> +#!/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 | \

Is HEAD really the right thing here?

Jan

> +	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"
> -- 
> 1.9.1

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball
  2014-09-16  8:11   ` Jan Beulich
@ 2014-09-16  8:49     ` George Dunlap
  2014-09-16  8:55       ` Jan Beulich
  0 siblings, 1 reply; 10+ messages in thread
From: George Dunlap @ 2014-09-16  8:49 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Anthony Perard, Ian Jackson, Olaf Hering, Ian Campbell, xen-devel

On Tue, Sep 16, 2014 at 9:11 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>> On 15.09.14 at 18:25, <george.dunlap@eu.citrix.com> wrote:
>> --- /dev/null
>> +++ b/tools/misc/mktarball
>> @@ -0,0 +1,38 @@
>> +#!/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 | \
>
> Is HEAD really the right thing here?

As opposed to...?

 -George

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball
  2014-09-16  8:49     ` George Dunlap
@ 2014-09-16  8:55       ` Jan Beulich
  2014-09-16  9:37         ` George Dunlap
  0 siblings, 1 reply; 10+ messages in thread
From: Jan Beulich @ 2014-09-16  8:55 UTC (permalink / raw)
  To: George Dunlap
  Cc: Anthony Perard, Ian Jackson, Olaf Hering, Ian Campbell, xen-devel

>>> On 16.09.14 at 10:49, <George.Dunlap@eu.citrix.com> wrote:
> On Tue, Sep 16, 2014 at 9:11 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>> On 15.09.14 at 18:25, <george.dunlap@eu.citrix.com> wrote:
>>> --- /dev/null
>>> +++ b/tools/misc/mktarball
>>> @@ -0,0 +1,38 @@
>>> +#!/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 | \
>>
>> Is HEAD really the right thing here?
> 
> As opposed to...?

My git-speak isn't good enough to be sure about suggesting an
alternative, but it would seem to me that the respective
*_REVISION variables from ./Config.mk should be used here.
Iiuc HEAD may refer to a newer commit.

Jan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball
  2014-09-16  8:55       ` Jan Beulich
@ 2014-09-16  9:37         ` George Dunlap
  2014-09-16  9:55           ` Jan Beulich
  0 siblings, 1 reply; 10+ messages in thread
From: George Dunlap @ 2014-09-16  9:37 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Anthony Perard, Ian Jackson, Olaf Hering, Ian Campbell, xen-devel

On Tue, Sep 16, 2014 at 9:55 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>> On 16.09.14 at 10:49, <George.Dunlap@eu.citrix.com> wrote:
>> On Tue, Sep 16, 2014 at 9:11 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>>> On 15.09.14 at 18:25, <george.dunlap@eu.citrix.com> wrote:
>>>> --- /dev/null
>>>> +++ b/tools/misc/mktarball
>>>> @@ -0,0 +1,38 @@
>>>> +#!/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 | \
>>>
>>> Is HEAD really the right thing here?
>>
>> As opposed to...?
>
> My git-speak isn't good enough to be sure about suggesting an
> alternative, but it would seem to me that the respective
> *_REVISION variables from ./Config.mk should be used here.
> Iiuc HEAD may refer to a newer commit.

HEAD should be the current state of the tree, and that's what we want:
just as the build will take the current state of the git subtrees, we
want the mktarball script by default to take the current state of
whatever the git subtrees are.

But the "make src-tarball[-release]" at the moment will first call
subtree-force-update on all the trees, so by the time we run the
script HEAD will be pointing to the _REVISION variables from
Config.mk.  I was going to add an option to allow the trees to be left
as they are, but that turns out to be more complicated than it's worth
right now, I think.

 -George

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball
  2014-09-16  9:37         ` George Dunlap
@ 2014-09-16  9:55           ` Jan Beulich
  0 siblings, 0 replies; 10+ messages in thread
From: Jan Beulich @ 2014-09-16  9:55 UTC (permalink / raw)
  To: George Dunlap
  Cc: Anthony Perard, Ian Jackson, Olaf Hering, Ian Campbell, xen-devel

>>> On 16.09.14 at 11:37, <George.Dunlap@eu.citrix.com> wrote:
> On Tue, Sep 16, 2014 at 9:55 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>> On 16.09.14 at 10:49, <George.Dunlap@eu.citrix.com> wrote:
>>> On Tue, Sep 16, 2014 at 9:11 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>>>> On 15.09.14 at 18:25, <george.dunlap@eu.citrix.com> wrote:
>>>>> --- /dev/null
>>>>> +++ b/tools/misc/mktarball
>>>>> @@ -0,0 +1,38 @@
>>>>> +#!/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 | \
>>>>
>>>> Is HEAD really the right thing here?
>>>
>>> As opposed to...?
>>
>> My git-speak isn't good enough to be sure about suggesting an
>> alternative, but it would seem to me that the respective
>> *_REVISION variables from ./Config.mk should be used here.
>> Iiuc HEAD may refer to a newer commit.
> 
> HEAD should be the current state of the tree, and that's what we want:
> just as the build will take the current state of the git subtrees, we
> want the mktarball script by default to take the current state of
> whatever the git subtrees are.
> 
> But the "make src-tarball[-release]" at the moment will first call
> subtree-force-update on all the trees, so by the time we run the
> script HEAD will be pointing to the _REVISION variables from
> Config.mk.

Ah, okay. As said, my git-speak is pretty limited, so never mind
the comment then.

Jan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 1/2] make: Add subtree-force-update target
  2014-09-15 16:25 [v3 for 4.5 1/2] make: Add subtree-force-update target George Dunlap
  2014-09-15 16:25 ` [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball George Dunlap
@ 2014-09-17 13:38 ` George Dunlap
  2014-09-23 17:40 ` Ian Jackson
  2 siblings, 0 replies; 10+ messages in thread
From: George Dunlap @ 2014-09-17 13:38 UTC (permalink / raw)
  To: xen-devel; +Cc: George Dunlap, Ian Jackson, Olaf Hering, Ian Campbell

IanJ,

Just a refresh: It would be nice if this could make it into 4.5, so a
review in the next week or so might be helpful.

 -George

On Mon, Sep 15, 2014 at 5:25 PM, George Dunlap
<george.dunlap@eu.citrix.com> wrote:
> subtree-force-update will update all subtrees according to the current TAG specified
> in Config.mk.
>
> Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
>
> ---
> v3:
>  - Rename to subtree-force-update
>  - Add command to help
>  - Add a target to update all trees unconditionally (for the tarball release)
>
> CC: Ian Campbell <ian.campbell@citrix.com>
> CC: Ian Jackson <ian.jackson@citrix.com>
> CC: Olaf Hering <olaf@aepfle.de>
> ---
>  Makefile                | 49 +++++++++++++++++++++++++++++--------------------
>  tools/Makefile          | 14 ++++++++++++++
>  tools/firmware/Makefile | 12 ++++++++++++
>  3 files changed, 55 insertions(+), 20 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 580df64..2389057 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -135,6 +135,14 @@ debball: dist
>  rpmball: dist
>         bash ./tools/misc/mkrpm $(XEN_ROOT) $$($(MAKE) -C xen xenversion --no-print-directory)
>
> +.PHONY: subtree-force-update
> +subtree-force-update:
> +       $(MAKE) -C tools subtree-force-update
> +
> +.PHONY: subtree-force-update-all
> +subtree-force-update-all:
> +       $(MAKE) -C tools subtree-force-update-all
> +
>  .PHONY: clean
>  clean::
>         $(MAKE) -C xen clean
> @@ -173,34 +181,35 @@ src-tarball: distclean
>  .PHONY: help
>  help:
>         @echo 'Installation targets:'
> -       @echo '  install          - build and install everything'
> -       @echo '  install-xen      - build and install the Xen hypervisor'
> -       @echo '  install-tools    - build and install the control tools'
> -       @echo '  install-stubdom  - build and install the stubdomain images'
> -       @echo '  install-docs     - build and install user documentation'
> +       @echo '  install               - build and install everything'
> +       @echo '  install-xen           - build and install the Xen hypervisor'
> +       @echo '  install-tools         - build and install the control tools'
> +       @echo '  install-stubdom       - build and install the stubdomain images'
> +       @echo '  install-docs          - build and install user documentation'
>         @echo ''
>         @echo 'Building targets:'
> -       @echo '  dist             - build and install everything into local dist directory'
> -       @echo '  world            - clean everything then make dist'
> -       @echo '  xen              - build and install Xen hypervisor'
> -       @echo '  tools            - build and install tools'
> -       @echo '  stubdom          - build and install the stubdomain images'
> -       @echo '  docs             - build and install user documentation'
> -       @echo '  dev-docs         - build developer-only documentation'
> +       @echo '  dist                  - build and install everything into local dist directory'
> +       @echo '  world                 - clean everything then make dist'
> +       @echo '  xen                   - build and install Xen hypervisor'
> +       @echo '  tools                 - build and install tools'
> +       @echo '  stubdom               - build and install the stubdomain images'
> +       @echo '  docs                  - build and install user documentation'
> +       @echo '  dev-docs              - build developer-only documentation'
>         @echo ''
>         @echo 'Cleaning targets:'
> -       @echo '  clean            - clean the Xen, tools and docs (but not guest kernel trees)'
> -       @echo '  distclean        - clean plus delete kernel build trees and'
> -       @echo '                     local downloaded files'
> +       @echo '  clean                 - clean the Xen, tools and docs (but not guest kernel trees)'
> +       @echo '  distclean             - clean plus delete kernel build trees and'
> +       @echo '                          local downloaded files'
> +       @echo '  subtree-force-update  - Call *-force-update on all git subtrees (qemu, seabios, ovmf)'
>         @echo ''
>         @echo 'Miscellaneous targets:'
> -       @echo '  uninstall        - attempt to remove installed Xen tools'
> -       @echo '                     (use with extreme care!)'
> +       @echo '  uninstall             - attempt to remove installed Xen tools'
> +       @echo '                          (use with extreme care!)'
>         @echo
>         @echo 'Trusted Boot (tboot) targets:'
> -       @echo '  build-tboot      - download and build the tboot module'
> -       @echo '  install-tboot    - download, build, and install the tboot module'
> -       @echo '  clean-tboot      - clean the tboot module if it exists'
> +       @echo '  build-tboot           - download and build the tboot module'
> +       @echo '  install-tboot         - download, build, and install the tboot module'
> +       @echo '  clean-tboot           - clean the tboot module if it exists'
>         @echo
>         @echo 'Environment:'
>         @echo '  [ this documentation is sadly not complete ]'
> diff --git a/tools/Makefile b/tools/Makefile
> index b6476c9..f8ed6c4 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -240,3 +240,17 @@ subdir-all-debugger/kdd: .phony
>
>  subdir-distclean-firmware: .phony
>         $(MAKE) -C firmware distclean
> +
> +subtree-force-update:
> +ifeq ($(CONFIG_QEMU_XEN),y)
> +       $(MAKE) qemu-xen-dir-force-update
> +endif
> +ifeq ($(CONFIG_QEMU_TRAD),y)
> +       $(MAKE) qemu-xen-traditional-dir-force-update
> +endif
> +       $(MAKE) -C firmware subtree-force-update
> +
> +subtree-force-update-all:
> +       $(MAKE) qemu-xen-dir-force-update
> +       $(MAKE) qemu-xen-traditional-dir-force-update
> +       $(MAKE) -C firmware subtree-force-update-all
> diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
> index 660bacb..ca5df42 100644
> --- a/tools/firmware/Makefile
> +++ b/tools/firmware/Makefile
> @@ -88,3 +88,15 @@ subdir-clean-seabios-dir:
>         set -e; if test -d seabios-dir/.; then \
>                 $(MAKE) -C seabios-dir clean; \
>         fi
> +
> +subtree-force-update:
> +ifeq ($(CONFIG_SEABIOS),y)
> +       $(MAKE) seabios-dir-force-update
> +endif
> +ifeq ($(CONFIG_OVMF),y)
> +       $(MAKE) ovmf-dir-force-update
> +endif
> +
> +subtree-force-update-all:
> +       $(MAKE) seabios-dir-force-update
> +       $(MAKE) ovmf-dir-force-update
> --
> 1.9.1
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 1/2] make: Add subtree-force-update target
  2014-09-15 16:25 [v3 for 4.5 1/2] make: Add subtree-force-update target George Dunlap
  2014-09-15 16:25 ` [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball George Dunlap
  2014-09-17 13:38 ` [v3 for 4.5 1/2] make: Add subtree-force-update target George Dunlap
@ 2014-09-23 17:40 ` Ian Jackson
  2 siblings, 0 replies; 10+ messages in thread
From: Ian Jackson @ 2014-09-23 17:40 UTC (permalink / raw)
  To: George Dunlap; +Cc: Olaf Hering, Ian Campbell, xen-devel

George Dunlap writes ("[v3 for 4.5 1/2] make: Add subtree-force-update target"):
> subtree-force-update will update all subtrees according to the current TAG specified
> in Config.mk.

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>

Ian.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball
  2014-09-15 16:25 ` [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball George Dunlap
  2014-09-16  8:11   ` Jan Beulich
@ 2014-09-23 17:48   ` Ian Jackson
  1 sibling, 0 replies; 10+ messages in thread
From: Ian Jackson @ 2014-09-23 17:48 UTC (permalink / raw)
  To: George Dunlap
  Cc: Anthony Perard, Olaf Hering, Ian Campbell, Jan Beulich, xen-devel

George Dunlap writes ("[v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball"):
> At the moment, making a release tarball is an annoyingly manual
> process that involves running "git archive" into a temporary directory.
> 
> Script this process up and make a target, so that the release manager
> can simply type "make src-tarball-release" and have everything show up
> nice and neat in dist/xen-$version.tar.gz.  "make src-tarball" will
> make a version number based on git describe, which will typically have
> the most recent tag, number of commits since that tag, and the git
> commit id of the current HEAD.

Applied, thanks.

Ian.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-09-23 17:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-15 16:25 [v3 for 4.5 1/2] make: Add subtree-force-update target George Dunlap
2014-09-15 16:25 ` [v3 for 4.5 2/2] make: Make "src-tarball" target actually make a source tarball George Dunlap
2014-09-16  8:11   ` Jan Beulich
2014-09-16  8:49     ` George Dunlap
2014-09-16  8:55       ` Jan Beulich
2014-09-16  9:37         ` George Dunlap
2014-09-16  9:55           ` Jan Beulich
2014-09-23 17:48   ` Ian Jackson
2014-09-17 13:38 ` [v3 for 4.5 1/2] make: Add subtree-force-update target George Dunlap
2014-09-23 17:40 ` Ian Jackson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.