* [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 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.