blob: c8680984d2d6680f56a974a1b54056a5e74263e1 [file] [log] [blame]
Arnaldo Carvalho de Melo877108e2011-01-29 15:44:29 -02001#!/usr/bin/python2
2
3from distutils.core import setup, Extension
Robert Richter1b7155f2011-03-29 20:02:57 +02004from os import getenv
5
Jiri Olsa9941c96a2011-07-22 13:33:07 +02006from distutils.command.build_ext import build_ext as _build_ext
7from distutils.command.install_lib import install_lib as _install_lib
8
9class 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
15class install_lib(_install_lib):
16 def finalize_options(self):
17 _install_lib.finalize_options(self)
18 self.build_dir = build_lib
19
20
Jiri Olsa9c12cf92013-03-21 11:30:54 +010021cflags = getenv('CFLAGS', '').split()
22# switch off several checks (need to be at the end of cflags list)
23cflags += ['-fno-strict-aliasing', '-Wno-write-strings', '-Wno-unused-parameter' ]
Arnaldo Carvalho de Melo877108e2011-01-29 15:44:29 -020024
Jiri Olsa67d52682016-02-27 21:21:12 +010025src_perf = getenv('srctree') + '/tools/perf'
Jiri Olsa9941c96a2011-07-22 13:33:07 +020026build_lib = getenv('PYTHON_EXTBUILD_LIB')
27build_tmp = getenv('PYTHON_EXTBUILD_TMP')
Arnaldo Carvalho de Melo45bff412012-10-18 11:38:35 -030028libtraceevent = getenv('LIBTRACEEVENT')
Jiri Olsa285a8f22015-01-10 20:53:13 +010029libapikfs = getenv('LIBAPI')
Jiri Olsa9941c96a2011-07-22 13:33:07 +020030
Namhyung Kim6a5c13af2012-02-12 19:45:24 +090031ext_sources = [f.strip() for f in file('util/python-ext-sources')
32 if len(f.strip()) > 0 and f[0] != '#']
33
Jiri Olsa67d52682016-02-27 21:21:12 +010034# use full paths with source files
35ext_sources = map(lambda x: '%s/%s' % (src_perf, x) , ext_sources)
36
Arnaldo Carvalho de Melo877108e2011-01-29 15:44:29 -020037perf = Extension('perf',
Namhyung Kim6a5c13af2012-02-12 19:45:24 +090038 sources = ext_sources,
Arnaldo Carvalho de Melof6bbc1d2011-01-31 20:56:27 -020039 include_dirs = ['util/include'],
Robert Richter1b7155f2011-03-29 20:02:57 +020040 extra_compile_args = cflags,
Borislav Petkov553873e2013-12-09 17:14:23 +010041 extra_objects = [libtraceevent, libapikfs],
Robert Richter1b7155f2011-03-29 20:02:57 +020042 )
Arnaldo Carvalho de Melo877108e2011-01-29 15:44:29 -020043
44setup(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',
Jiri Olsa9941c96a2011-07-22 13:33:07 +020051 ext_modules=[perf],
52 cmdclass={'build_ext': build_ext, 'install_lib': install_lib})