* [PATCH] perf tools: Add support to install perf python extension
@ 2011-07-21 16:45 Jiri Olsa
2011-07-21 17:11 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 8+ messages in thread
From: Jiri Olsa @ 2011-07-21 16:45 UTC (permalink / raw)
To: acme, a.p.zijlstra, mingo, paulus; +Cc: linux-kernel, Jiri Olsa
Changing the distutils to use their own default 'build'
directory.
Such setup makes the install command simple, because using
--build-lib and --build-temp does not seem to comply with
the way the distutils' install commands expect it.
Also keeping the python/perf.so file, so it could be used
for testing as of until now.
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
---
tools/perf/Makefile | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 940257b..9c82a56 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -178,9 +178,8 @@ strip-libs = $(filter-out -l%,$(1))
$(OUTPUT)python/perf.so: $(PYRF_OBJS)
$(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
- --quiet build_ext \
- --build-lib='$(OUTPUT)python' \
- --build-temp='$(OUTPUT)python/temp'
+ --quiet build_ext; \
+ cp $$(find build -name 'perf.so') python
#
# No Perl scripts right now:
#
@@ -504,9 +503,7 @@ else
PYTHON_WORD := $(call shell-wordify,$(PYTHON))
- python-clean := $(PYTHON_WORD) util/setup.py clean \
- --build-lib='$(OUTPUT)python' \
- --build-temp='$(OUTPUT)python/temp'
+ python-clean := $(PYTHON_WORD) util/setup.py --quiet clean -a; $(RM) -f python/perf.so
ifdef NO_LIBPYTHON
$(call disable-python)
@@ -863,6 +860,9 @@ install: all
$(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
$(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
+install-python_ext:
+ $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
+
install-doc:
$(MAKE) -C Documentation install
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] perf tools: Add support to install perf python extension
2011-07-21 16:45 [PATCH] perf tools: Add support to install perf python extension Jiri Olsa
@ 2011-07-21 17:11 ` Arnaldo Carvalho de Melo
2011-07-21 18:47 ` Jiri Olsa
0 siblings, 1 reply; 8+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-07-21 17:11 UTC (permalink / raw)
To: Jiri Olsa; +Cc: a.p.zijlstra, mingo, paulus, linux-kernel
Em Thu, Jul 21, 2011 at 06:45:26PM +0200, Jiri Olsa escreveu:
> Changing the distutils to use their own default 'build'
> directory.
>
> Such setup makes the install command simple, because using
> --build-lib and --build-temp does not seem to comply with
> the way the distutils' install commands expect it.
>
> Also keeping the python/perf.so file, so it could be used
> for testing as of until now.
Yeah, I gave up when I couldn't get:
$ make O=/tmp/build-dir-for-perf/ -C tools/perf/ install
to work, does it now? Checking...
- Arnaldo
> Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> ---
> tools/perf/Makefile | 12 ++++++------
> 1 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 940257b..9c82a56 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -178,9 +178,8 @@ strip-libs = $(filter-out -l%,$(1))
>
> $(OUTPUT)python/perf.so: $(PYRF_OBJS)
> $(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
> - --quiet build_ext \
> - --build-lib='$(OUTPUT)python' \
> - --build-temp='$(OUTPUT)python/temp'
> + --quiet build_ext; \
> + cp $$(find build -name 'perf.so') python
> #
> # No Perl scripts right now:
> #
> @@ -504,9 +503,7 @@ else
>
> PYTHON_WORD := $(call shell-wordify,$(PYTHON))
>
> - python-clean := $(PYTHON_WORD) util/setup.py clean \
> - --build-lib='$(OUTPUT)python' \
> - --build-temp='$(OUTPUT)python/temp'
> + python-clean := $(PYTHON_WORD) util/setup.py --quiet clean -a; $(RM) -f python/perf.so
>
> ifdef NO_LIBPYTHON
> $(call disable-python)
> @@ -863,6 +860,9 @@ install: all
> $(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
> $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
>
> +install-python_ext:
> + $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
> +
> install-doc:
> $(MAKE) -C Documentation install
>
> --
> 1.7.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] perf tools: Add support to install perf python extension
2011-07-21 17:11 ` Arnaldo Carvalho de Melo
@ 2011-07-21 18:47 ` Jiri Olsa
2011-07-21 19:04 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 8+ messages in thread
From: Jiri Olsa @ 2011-07-21 18:47 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: a.p.zijlstra, mingo, paulus, linux-kernel
On Thu, Jul 21, 2011 at 02:11:48PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Jul 21, 2011 at 06:45:26PM +0200, Jiri Olsa escreveu:
> > Changing the distutils to use their own default 'build'
> > directory.
> >
> > Such setup makes the install command simple, because using
> > --build-lib and --build-temp does not seem to comply with
> > the way the distutils' install commands expect it.
> >
> > Also keeping the python/perf.so file, so it could be used
> > for testing as of until now.
>
> Yeah, I gave up when I couldn't get:
>
> $ make O=/tmp/build-dir-for-perf/ -C tools/perf/ install
>
> to work, does it now? Checking...
nope, I added install-python_ext since it installs to the
python system lib area, and it could break standard install
I think there's a way to install python modules under $HOME,
maybe we could do that if no DESTDIR is specified..
I can add it later ;)
thanks,
jirka
>
> - Arnaldo
>
> > Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> > ---
> > tools/perf/Makefile | 12 ++++++------
> > 1 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> > index 940257b..9c82a56 100644
> > --- a/tools/perf/Makefile
> > +++ b/tools/perf/Makefile
> > @@ -178,9 +178,8 @@ strip-libs = $(filter-out -l%,$(1))
> >
> > $(OUTPUT)python/perf.so: $(PYRF_OBJS)
> > $(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
> > - --quiet build_ext \
> > - --build-lib='$(OUTPUT)python' \
> > - --build-temp='$(OUTPUT)python/temp'
> > + --quiet build_ext; \
> > + cp $$(find build -name 'perf.so') python
> > #
> > # No Perl scripts right now:
> > #
> > @@ -504,9 +503,7 @@ else
> >
> > PYTHON_WORD := $(call shell-wordify,$(PYTHON))
> >
> > - python-clean := $(PYTHON_WORD) util/setup.py clean \
> > - --build-lib='$(OUTPUT)python' \
> > - --build-temp='$(OUTPUT)python/temp'
> > + python-clean := $(PYTHON_WORD) util/setup.py --quiet clean -a; $(RM) -f python/perf.so
> >
> > ifdef NO_LIBPYTHON
> > $(call disable-python)
> > @@ -863,6 +860,9 @@ install: all
> > $(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
> > $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
> >
> > +install-python_ext:
> > + $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
> > +
> > install-doc:
> > $(MAKE) -C Documentation install
> >
> > --
> > 1.7.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] perf tools: Add support to install perf python extension
2011-07-21 18:47 ` Jiri Olsa
@ 2011-07-21 19:04 ` Arnaldo Carvalho de Melo
2011-07-21 19:41 ` Jiri Olsa
0 siblings, 1 reply; 8+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-07-21 19:04 UTC (permalink / raw)
To: Jiri Olsa; +Cc: a.p.zijlstra, mingo, paulus, linux-kernel
Em Thu, Jul 21, 2011 at 08:47:15PM +0200, Jiri Olsa escreveu:
> On Thu, Jul 21, 2011 at 02:11:48PM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Jul 21, 2011 at 06:45:26PM +0200, Jiri Olsa escreveu:
> > > Changing the distutils to use their own default 'build'
> > > directory.
> > >
> > > Such setup makes the install command simple, because using
> > > --build-lib and --build-temp does not seem to comply with
> > > the way the distutils' install commands expect it.
> > >
> > > Also keeping the python/perf.so file, so it could be used
> > > for testing as of until now.
> >
> > Yeah, I gave up when I couldn't get:
> >
> > $ make O=/tmp/build-dir-for-perf/ -C tools/perf/ install
> >
> > to work, does it now? Checking...
>
> nope, I added install-python_ext since it installs to the
> python system lib area, and it could break standard install
But where is that it picks the binaries built? The problem I was
experiencing was that it wasn't obeying O=, just using the source dir
as the build dir, effectively building it again, in a different place.
> I think there's a way to install python modules under $HOME,
> maybe we could do that if no DESTDIR is specified..
> I can add it later ;)
Right, but this is not what I was talking about :-)
- Arnaldo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] perf tools: Add support to install perf python extension
2011-07-21 19:04 ` Arnaldo Carvalho de Melo
@ 2011-07-21 19:41 ` Jiri Olsa
2011-07-21 21:16 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 8+ messages in thread
From: Jiri Olsa @ 2011-07-21 19:41 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: a.p.zijlstra, mingo, paulus, linux-kernel
On Thu, Jul 21, 2011 at 04:04:07PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Jul 21, 2011 at 08:47:15PM +0200, Jiri Olsa escreveu:
> > On Thu, Jul 21, 2011 at 02:11:48PM -0300, Arnaldo Carvalho de Melo wrote:
> > > Em Thu, Jul 21, 2011 at 06:45:26PM +0200, Jiri Olsa escreveu:
> > > > Changing the distutils to use their own default 'build'
> > > > directory.
> > > >
> > > > Such setup makes the install command simple, because using
> > > > --build-lib and --build-temp does not seem to comply with
> > > > the way the distutils' install commands expect it.
> > > >
> > > > Also keeping the python/perf.so file, so it could be used
> > > > for testing as of until now.
> > >
> > > Yeah, I gave up when I couldn't get:
> > >
> > > $ make O=/tmp/build-dir-for-perf/ -C tools/perf/ install
> > >
> > > to work, does it now? Checking...
> >
> > nope, I added install-python_ext since it installs to the
> > python system lib area, and it could break standard install
>
> But where is that it picks the binaries built? The problem I was
> experiencing was that it wasn't obeying O=, just using the source dir
I haven't checked the 'O=' that much.. will do :)
> as the build dir, effectively building it again, in a different place.
I dont have that much experince with python, but here's what I found:
(might be missing something..)
build_ext command
- build_ext will by default create a 'build' directory and
put all the stuff in - temp and final dirs/binary
- you can overload this with build-lib/build-temp options
install command
- install does not have option to specify the build-lib directory
(but it has the --root option that we need)
- so running just install assumes you have used default 'build'
directory and if it does not exist it starts rebuild
- there's another command install_lib, which let's you specify
the build-lib.. BUT it wont let you specify the --root option ;)
There's possibility to use setup.cfg file and generate/put options
for each command, so at the end we could choose what directory to use.
Also there might be a way to overload distutils class and put our
specific options to this new class..
As I checked some of python extension packages, some of them
do not use distutils at all.. can't imagine why ;)
jirka
>
> > I think there's a way to install python modules under $HOME,
> > maybe we could do that if no DESTDIR is specified..
> > I can add it later ;)
>
> Right, but this is not what I was talking about :-)
>
> - Arnaldo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] perf tools: Add support to install perf python extension
2011-07-21 19:41 ` Jiri Olsa
@ 2011-07-21 21:16 ` Arnaldo Carvalho de Melo
2011-07-22 11:33 ` [PATCHv2] " Jiri Olsa
0 siblings, 1 reply; 8+ messages in thread
From: Arnaldo Carvalho de Melo @ 2011-07-21 21:16 UTC (permalink / raw)
To: Jiri Olsa; +Cc: a.p.zijlstra, mingo, paulus, linux-kernel
Em Thu, Jul 21, 2011 at 09:41:50PM +0200, Jiri Olsa escreveu:
> On Thu, Jul 21, 2011 at 04:04:07PM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Jul 21, 2011 at 08:47:15PM +0200, Jiri Olsa escreveu:
> > > nope, I added install-python_ext since it installs to the
> > > python system lib area, and it could break standard install
> > But where is that it picks the binaries built? The problem I was
> > experiencing was that it wasn't obeying O=, just using the source dir
> I haven't checked the 'O=' that much.. will do :)
> > as the build dir, effectively building it again, in a different place.
> I dont have that much experince with python, but here's what I found:
> (might be missing something..)
<SNIP>
> Also there might be a way to overload distutils class and put our
> specific options to this new class..
> As I checked some of python extension packages, some of them
> do not use distutils at all.. can't imagine why ;)
Ok, we're on the same page with that ';)' ;)
I'd love to use what is 'pythonic', i.e. whatever the python people
think we should use and don't bother with all the module
build/install details, but since we want to have O= working...
- Arnaldo
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCHv2] perf tools: Add support to install perf python extension
2011-07-21 21:16 ` Arnaldo Carvalho de Melo
@ 2011-07-22 11:33 ` Jiri Olsa
2011-08-10 8:27 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
0 siblings, 1 reply; 8+ messages in thread
From: Jiri Olsa @ 2011-07-22 11:33 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: a.p.zijlstra, mingo, paulus, linux-kernel
On Thu, Jul 21, 2011 at 06:16:10PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Jul 21, 2011 at 09:41:50PM +0200, Jiri Olsa escreveu:
> > On Thu, Jul 21, 2011 at 04:04:07PM -0300, Arnaldo Carvalho de Melo wrote:
> > > Em Thu, Jul 21, 2011 at 08:47:15PM +0200, Jiri Olsa escreveu:
> > > > nope, I added install-python_ext since it installs to the
> > > > python system lib area, and it could break standard install
>
> > > But where is that it picks the binaries built? The problem I was
> > > experiencing was that it wasn't obeying O=, just using the source dir
>
> > I haven't checked the 'O=' that much.. will do :)
>
> > > as the build dir, effectively building it again, in a different place.
>
> > I dont have that much experince with python, but here's what I found:
> > (might be missing something..)
>
> <SNIP>
>
> > Also there might be a way to overload distutils class and put our
> > specific options to this new class..
>
> > As I checked some of python extension packages, some of them
> > do not use distutils at all.. can't imagine why ;)
>
> Ok, we're on the same page with that ';)' ;)
>
> I'd love to use what is 'pythonic', i.e. whatever the python people
> think we should use and don't bother with all the module
> build/install details, but since we want to have O= working...
attached new version, working for me with the O= settings
jirka
---
Subject: [PATCH] perf tools: Add support to install perf python extension
Adding install-python_ext target to install python extension
related files. Installation directory is governed by python
distutils package and follows the DESTDIR variable settings.
Also moving python extension build output into '$(O)python_ext_build'
directory and making it configurable via PYTHON_EXTBUILD variable.
Keeping the '$(O)python/perf.so' file, so it could be used
for testing as of until now.
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
---
tools/perf/Makefile | 19 +++++++++++++------
tools/perf/util/setup.py | 21 ++++++++++++++++++++-
2 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 940257b..2b44a53 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -178,9 +178,9 @@ strip-libs = $(filter-out -l%,$(1))
$(OUTPUT)python/perf.so: $(PYRF_OBJS)
$(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
- --quiet build_ext \
- --build-lib='$(OUTPUT)python' \
- --build-temp='$(OUTPUT)python/temp'
+ --quiet build_ext; \
+ mkdir -p $(OUTPUT)python && \
+ cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/
#
# No Perl scripts right now:
#
@@ -504,9 +504,13 @@ else
PYTHON_WORD := $(call shell-wordify,$(PYTHON))
- python-clean := $(PYTHON_WORD) util/setup.py clean \
- --build-lib='$(OUTPUT)python' \
- --build-temp='$(OUTPUT)python/temp'
+ # python extension build directories
+ PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/
+ PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/
+ PYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/
+ export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP
+
+ python-clean := rm -rf $(PYTHON_EXTBUILD) $(OUTPUT)python/perf.so
ifdef NO_LIBPYTHON
$(call disable-python)
@@ -863,6 +867,9 @@ install: all
$(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
$(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
+install-python_ext:
+ $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
+
install-doc:
$(MAKE) -C Documentation install
diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py
index bbc982f..95d3700 100644
--- a/tools/perf/util/setup.py
+++ b/tools/perf/util/setup.py
@@ -3,9 +3,27 @@
from distutils.core import setup, Extension
from os import getenv
+from distutils.command.build_ext import build_ext as _build_ext
+from distutils.command.install_lib import install_lib as _install_lib
+
+class build_ext(_build_ext):
+ def finalize_options(self):
+ _build_ext.finalize_options(self)
+ self.build_lib = build_lib
+ self.build_temp = build_tmp
+
+class install_lib(_install_lib):
+ def finalize_options(self):
+ _install_lib.finalize_options(self)
+ self.build_dir = build_lib
+
+
cflags = ['-fno-strict-aliasing', '-Wno-write-strings']
cflags += getenv('CFLAGS', '').split()
+build_lib = getenv('PYTHON_EXTBUILD_LIB')
+build_tmp = getenv('PYTHON_EXTBUILD_TMP')
+
perf = Extension('perf',
sources = ['util/python.c', 'util/ctype.c', 'util/evlist.c',
'util/evsel.c', 'util/cpumap.c', 'util/thread_map.c',
@@ -21,4 +39,5 @@ setup(name='perf',
author_email='acme@redhat.com',
license='GPLv2',
url='http://perf.wiki.kernel.org',
- ext_modules=[perf])
+ ext_modules=[perf],
+ cmdclass={'build_ext': build_ext, 'install_lib': install_lib})
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [tip:perf/urgent] perf tools: Add support to install perf python extension
2011-07-22 11:33 ` [PATCHv2] " Jiri Olsa
@ 2011-08-10 8:27 ` tip-bot for Jiri Olsa
0 siblings, 0 replies; 8+ messages in thread
From: tip-bot for Jiri Olsa @ 2011-08-10 8:27 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, paulus, hpa, mingo, a.p.zijlstra, jolsa, tglx,
mingo
Commit-ID: 9941c96ad869d10f7e34e03990ce450ab8fcb83d
Gitweb: http://git.kernel.org/tip/9941c96ad869d10f7e34e03990ce450ab8fcb83d
Author: Jiri Olsa <jolsa@redhat.com>
AuthorDate: Fri, 22 Jul 2011 13:33:07 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 8 Aug 2011 12:54:26 -0300
perf tools: Add support to install perf python extension
Adding install-python_ext target to install python extension related
files. Installation directory is governed by python distutils package
and follows the DESTDIR variable settings.
Also moving python extension build output into '$(O)python_ext_build'
directory and making it configurable via PYTHON_EXTBUILD variable.
Keeping the '$(O)python/perf.so' file, so it could be used for testing
as of until now.
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20110722113307.GA1931@jolsa.brq.redhat.com
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Makefile | 19 +++++++++++++------
tools/perf/util/setup.py | 21 ++++++++++++++++++++-
2 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 5bf48fc..822f967 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -178,9 +178,9 @@ strip-libs = $(filter-out -l%,$(1))
$(OUTPUT)python/perf.so: $(PYRF_OBJS)
$(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
- --quiet build_ext \
- --build-lib='$(OUTPUT)python' \
- --build-temp='$(OUTPUT)python/temp'
+ --quiet build_ext; \
+ mkdir -p $(OUTPUT)python && \
+ cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/
#
# No Perl scripts right now:
#
@@ -506,9 +506,13 @@ else
PYTHON_WORD := $(call shell-wordify,$(PYTHON))
- python-clean := $(PYTHON_WORD) util/setup.py clean \
- --build-lib='$(OUTPUT)python' \
- --build-temp='$(OUTPUT)python/temp'
+ # python extension build directories
+ PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/
+ PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/
+ PYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/
+ export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP
+
+ python-clean := rm -rf $(PYTHON_EXTBUILD) $(OUTPUT)python/perf.so
ifdef NO_LIBPYTHON
$(call disable-python)
@@ -865,6 +869,9 @@ install: all
$(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
$(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
+install-python_ext:
+ $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
+
install-doc:
$(MAKE) -C Documentation install
diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py
index bbc982f..95d3700 100644
--- a/tools/perf/util/setup.py
+++ b/tools/perf/util/setup.py
@@ -3,9 +3,27 @@
from distutils.core import setup, Extension
from os import getenv
+from distutils.command.build_ext import build_ext as _build_ext
+from distutils.command.install_lib import install_lib as _install_lib
+
+class build_ext(_build_ext):
+ def finalize_options(self):
+ _build_ext.finalize_options(self)
+ self.build_lib = build_lib
+ self.build_temp = build_tmp
+
+class install_lib(_install_lib):
+ def finalize_options(self):
+ _install_lib.finalize_options(self)
+ self.build_dir = build_lib
+
+
cflags = ['-fno-strict-aliasing', '-Wno-write-strings']
cflags += getenv('CFLAGS', '').split()
+build_lib = getenv('PYTHON_EXTBUILD_LIB')
+build_tmp = getenv('PYTHON_EXTBUILD_TMP')
+
perf = Extension('perf',
sources = ['util/python.c', 'util/ctype.c', 'util/evlist.c',
'util/evsel.c', 'util/cpumap.c', 'util/thread_map.c',
@@ -21,4 +39,5 @@ setup(name='perf',
author_email='acme@redhat.com',
license='GPLv2',
url='http://perf.wiki.kernel.org',
- ext_modules=[perf])
+ ext_modules=[perf],
+ cmdclass={'build_ext': build_ext, 'install_lib': install_lib})
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-08-10 8:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-21 16:45 [PATCH] perf tools: Add support to install perf python extension Jiri Olsa
2011-07-21 17:11 ` Arnaldo Carvalho de Melo
2011-07-21 18:47 ` Jiri Olsa
2011-07-21 19:04 ` Arnaldo Carvalho de Melo
2011-07-21 19:41 ` Jiri Olsa
2011-07-21 21:16 ` Arnaldo Carvalho de Melo
2011-07-22 11:33 ` [PATCHv2] " Jiri Olsa
2011-08-10 8:27 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox