lkml.org 
[lkml]   [2013]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] perf: Fix version when building out of tree

* David Ahern <dsahern@gmail.com> wrote:

> When building perf out of tree
> make perf-tar-src-pkg
> tar -xf perf-<ver>.tar -C /tmp
> cd /tmp/perf<ver>
> make -C tools/perf
>
> you get the warning message:
> make[1]: *** No rule to make target `kernelversion'. Stop.
>
> Fix by saving the perf version in the tar file and using that for the
> out of tree builds.
>
> Suggested-by: Ingo Molnar <mingo@kernel.org>
> Signed-off-by: David Ahern <dsahern@gmail.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> ---
> scripts/package/Makefile | 4 +++-
> tools/perf/util/PERF-VERSION-GEN | 16 +++++++++++++++-
> 2 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/package/Makefile b/scripts/package/Makefile
> index a4f31c900fa6..e44653986e0a 100644
> --- a/scripts/package/Makefile
> +++ b/scripts/package/Makefile
> @@ -115,7 +115,9 @@ git --git-dir=$(srctree)/.git archive --prefix=$(perf-tar)/ \
> -o $(perf-tar).tar; \
> mkdir -p $(perf-tar); \
> git --git-dir=$(srctree)/.git rev-parse HEAD > $(perf-tar)/HEAD; \
> -tar rf $(perf-tar).tar $(perf-tar)/HEAD; \
> +(cd $(srctree)/tools/perf; \
> +util/PERF-VERSION-GEN short ../../$(perf-tar)/ 2>/dev/null); \
> +tar rf $(perf-tar).tar $(perf-tar)/HEAD $(perf-tar)/PERF-VERSION-FILE; \
> rm -r $(perf-tar); \
> $(if $(findstring tar-src,$@),, \
> $(if $(findstring bz2,$@),bzip2, \
> diff --git a/tools/perf/util/PERF-VERSION-GEN b/tools/perf/util/PERF-VERSION-GEN
> index 15a77b7c0e36..142d7dcccfd2 100755
> --- a/tools/perf/util/PERF-VERSION-GEN
> +++ b/tools/perf/util/PERF-VERSION-GEN
> @@ -1,5 +1,12 @@
> #!/bin/sh
>
> +SHORT_FORM=no
> +
> +if [ "$1" = "short" ] ; then
> + SHORT_FORM=yes
> + shift
> +fi
> +
> if [ $# -eq 1 ] ; then
> OUTPUT=$1
> fi
> @@ -19,6 +26,9 @@ if test -d ../../.git -o -f ../../.git
> then
> TAG=$(git describe --abbrev=0 --match "v[0-9].[0-9]*" 2>/dev/null )
> CID=$(git log -1 --abbrev=4 --pretty=format:"%h" 2>/dev/null) && CID="-g$CID"
> +elif test -f ../../PERF-VERSION-FILE
> +then
> + TAG=$(cat ../../PERF-VERSION-FILE)
> fi
> if test -z "$TAG"
> then
> @@ -41,7 +51,11 @@ else
> fi
> test "$VN" = "$VC" || {
> echo >&2 "PERF_VERSION = $VN"
> - echo "#define PERF_VERSION \"$VN\"" >$GVF
> + if [ "$SHORT_FORM" = "yes" ]; then
> + echo "$VN" >$GVF
> + else
> + echo "#define PERF_VERSION \"$VN\"" >$GVF
> + fi
> }

I think you could avoid the 'short' complication altogether by doing
something like this:

> +elif test -f ../../PERF-VERSION-FILE
> +then
> + TAG=$(cut -d' ' -f3 ../../PERF-VERSION-FILE)

That extracts 'TAG' as a true sha1 and makes GVF correct on out of tree
builds as well.

haven't tested it though.

Thanks,

Ingo


\
 
 \ /
  Last update: 2013-11-06 07:21    [W:0.069 / U:0.688 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site