Message ID | 20190201145035.22739-11-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Enable build and install of our rST docs | expand |
Peter Maydell <peter.maydell@linaro.org> writes: > Abstract out the "identify the pkgversion" code from the > rule for creating qemu-version.h, so it sets makefile > variables for QEMU_PKGVERSION and QEMU_FULL_VERSION. > (We will want to use these when building the Sphinx docs.) > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > Makefile | 33 ++++++++++++++++----------------- > 1 file changed, 16 insertions(+), 17 deletions(-) > > diff --git a/Makefile b/Makefile > index d519fadee39..2d19d28a271 100644 > --- a/Makefile > +++ b/Makefile > @@ -87,6 +87,20 @@ endif > > include $(SRC_PATH)/rules.mak > > +# Create QEMU_PKGVERSION and FULL_VERSION strings > +# If PKGVERSION is set, use that; otherwise get version and -dirty status from git > +QEMU_PKGVERSION := $(if $(PKGVERSION),$(PKGVERSION),$(shell \ > + cd $(SRC_PATH); \ > + if test -d .git; then \ > + git describe --match 'v*' 2>/dev/null | tr -d '\n'; \ > + if ! git diff-index --quiet HEAD &>/dev/null; then \ > + echo "-dirty"; \ > + fi; \ > + fi)) > + > +# Either "version (pkgversion)", or just "version" if pkgversion not set > +FULL_VERSION := $(if $(QEMU_PKGVERSION),$(VERSION) ($(QEMU_PKGVERSION)),$(VERSION)) > + > GENERATED_FILES = qemu-version.h config-host.h qemu-options.def > > #see Makefile.objs for the definition of QAPI_MODULES > @@ -391,23 +405,8 @@ all: $(DOCS) sphinxdocs $(TOOLS) $(HELPERS-y) recurse-all modules > > qemu-version.h: FORCE > $(call quiet-command, \ > - (cd $(SRC_PATH); \ > - if test -n "$(PKGVERSION)"; then \ > - pkgvers="$(PKGVERSION)"; \ > - else \ > - if test -d .git; then \ > - pkgvers=$$(git describe --match 'v*' 2>/dev/null | tr -d '\n');\ > - if ! git diff-index --quiet HEAD &>/dev/null; then \ > - pkgvers="$${pkgvers}-dirty"; \ > - fi; \ > - fi; \ > - fi; \ > - printf "#define QEMU_PKGVERSION \"$${pkgvers}\"\n"; \ > - if test -n "$${pkgvers}"; then \ > - printf '#define QEMU_FULL_VERSION QEMU_VERSION " (" QEMU_PKGVERSION ")"\n'; \ > - else \ > - printf '#define QEMU_FULL_VERSION QEMU_VERSION\n'; \ > - fi; \ > + (printf '#define QEMU_PKGVERSION "$(QEMU_PKGVERSION)"\n'; \ > + printf '#define QEMU_FULL_VERSION "$(FULL_VERSION)"\n'; \ > ) > $@.tmp) > $(call quiet-command, if ! cmp -s $@ $@.tmp; then \ > mv $@.tmp $@; \ -- Alex Bennée
diff --git a/Makefile b/Makefile index d519fadee39..2d19d28a271 100644 --- a/Makefile +++ b/Makefile @@ -87,6 +87,20 @@ endif include $(SRC_PATH)/rules.mak +# Create QEMU_PKGVERSION and FULL_VERSION strings +# If PKGVERSION is set, use that; otherwise get version and -dirty status from git +QEMU_PKGVERSION := $(if $(PKGVERSION),$(PKGVERSION),$(shell \ + cd $(SRC_PATH); \ + if test -d .git; then \ + git describe --match 'v*' 2>/dev/null | tr -d '\n'; \ + if ! git diff-index --quiet HEAD &>/dev/null; then \ + echo "-dirty"; \ + fi; \ + fi)) + +# Either "version (pkgversion)", or just "version" if pkgversion not set +FULL_VERSION := $(if $(QEMU_PKGVERSION),$(VERSION) ($(QEMU_PKGVERSION)),$(VERSION)) + GENERATED_FILES = qemu-version.h config-host.h qemu-options.def #see Makefile.objs for the definition of QAPI_MODULES @@ -391,23 +405,8 @@ all: $(DOCS) sphinxdocs $(TOOLS) $(HELPERS-y) recurse-all modules qemu-version.h: FORCE $(call quiet-command, \ - (cd $(SRC_PATH); \ - if test -n "$(PKGVERSION)"; then \ - pkgvers="$(PKGVERSION)"; \ - else \ - if test -d .git; then \ - pkgvers=$$(git describe --match 'v*' 2>/dev/null | tr -d '\n');\ - if ! git diff-index --quiet HEAD &>/dev/null; then \ - pkgvers="$${pkgvers}-dirty"; \ - fi; \ - fi; \ - fi; \ - printf "#define QEMU_PKGVERSION \"$${pkgvers}\"\n"; \ - if test -n "$${pkgvers}"; then \ - printf '#define QEMU_FULL_VERSION QEMU_VERSION " (" QEMU_PKGVERSION ")"\n'; \ - else \ - printf '#define QEMU_FULL_VERSION QEMU_VERSION\n'; \ - fi; \ + (printf '#define QEMU_PKGVERSION "$(QEMU_PKGVERSION)"\n'; \ + printf '#define QEMU_FULL_VERSION "$(FULL_VERSION)"\n'; \ ) > $@.tmp) $(call quiet-command, if ! cmp -s $@ $@.tmp; then \ mv $@.tmp $@; \
Abstract out the "identify the pkgversion" code from the rule for creating qemu-version.h, so it sets makefile variables for QEMU_PKGVERSION and QEMU_FULL_VERSION. (We will want to use these when building the Sphinx docs.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- Makefile | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) -- 2.20.1