Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
setup.py
Go to the documentation of this file.
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 = ['-fno-strict-aliasing', '-Wno-write-strings']
22 cflags += getenv('CFLAGS', '').split()
23 
24 build_lib = getenv('PYTHON_EXTBUILD_LIB')
25 build_tmp = getenv('PYTHON_EXTBUILD_TMP')
26 libtraceevent = getenv('LIBTRACEEVENT')
27 
28 ext_sources = [f.strip() for f in file('util/python-ext-sources')
29  if len(f.strip()) > 0 and f[0] != '#']
30 
31 perf = Extension('perf',
32  sources = ext_sources,
33  include_dirs = ['util/include'],
34  extra_compile_args = cflags,
35  extra_objects = [libtraceevent],
36  )
37 
38 setup(name='perf',
39  version='0.1',
40  description='Interface with the Linux profiling infrastructure',
41  author='Arnaldo Carvalho de Melo',
42  author_email='[email protected]',
43  license='GPLv2',
44  url='http://perf.wiki.kernel.org',
45  ext_modules=[perf],
46  cmdclass={'build_ext': build_ext, 'install_lib': install_lib})