]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - tools/perf/util/setup.py
perf tools: Fix python extension build
[karo-tx-linux.git] / tools / perf / util / setup.py
1 #!/usr/bin/python2
2
3 from distutils.core import setup, Extension
4 from os import getenv
5
6 from distutils.command.build_ext   import build_ext   as _build_ext
7 from distutils.command.install_lib import install_lib as _install_lib
8
9 class build_ext(_build_ext):
10     def finalize_options(self):
11         _build_ext.finalize_options(self)
12         self.build_lib  = build_lib
13         self.build_temp = build_tmp
14
15 class install_lib(_install_lib):
16     def finalize_options(self):
17         _install_lib.finalize_options(self)
18         self.build_dir = build_lib
19
20
21 cflags = getenv('CFLAGS', '').split()
22 # switch off several checks (need to be at the end of cflags list)
23 cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter' ]
24
25 src_perf  = getenv('srctree') + '/tools/perf'
26 build_lib = getenv('PYTHON_EXTBUILD_LIB')
27 build_tmp = getenv('PYTHON_EXTBUILD_TMP')
28 libtraceevent = getenv('LIBTRACEEVENT')
29 libapikfs = getenv('LIBAPI')
30
31 ext_sources = [f.strip() for f in file('util/python-ext-sources')
32                                 if len(f.strip()) > 0 and f[0] != '#']
33
34 # use full paths with source files
35 ext_sources = map(lambda x: '%s/%s' % (src_perf, x) , ext_sources)
36
37 perf = Extension('perf',
38                   sources = ext_sources,
39                   include_dirs = ['util/include'],
40                   extra_compile_args = cflags,
41                   extra_objects = [libtraceevent, libapikfs],
42                  )
43
44 setup(name='perf',
45       version='0.1',
46       description='Interface with the Linux profiling infrastructure',
47       author='Arnaldo Carvalho de Melo',
48       author_email='acme@redhat.com',
49       license='GPLv2',
50       url='http://perf.wiki.kernel.org',
51       ext_modules=[perf],
52       cmdclass={'build_ext': build_ext, 'install_lib': install_lib})