#!/usr/bin/env python # # $Id: setup.py 1142 2011-10-05 18:45:49Z g.rodola $ # # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import sys import os try: from setuptools import setup, Extension except ImportError: from distutils.core import setup, Extension __ver__ = "0.3.1" # Hack for Python 3 to tell distutils to run 2to3 against the files # copied in the build directory before installing. # Reference: http://docs.python.org/dev/howto/pyporting.html#during-installation try: from distutils.command.build_py import build_py_2to3 as build_py except ImportError: from distutils.command.build_py import build_py if os.name == 'posix': posix_extension = Extension('_psutil_posix', sources = ['psutil/_psutil_posix.c']) # Windows if sys.platform.lower().startswith("win"): def get_winver(): maj,min = sys.getwindowsversion()[0:2] return '0x0%s' % ((maj * 100) + min) extensions = [Extension('_psutil_mswindows', sources=['psutil/_psutil_mswindows.c', 'psutil/_psutil_common.c', 'psutil/arch/mswindows/process_info.c', 'psutil/arch/mswindows/process_handles.c', 'psutil/arch/mswindows/security.c'], define_macros=[('_WIN32_WINNT', get_winver()), ('_AVAIL_WINVER_', get_winver())], libraries=["psapi", "kernel32", "advapi32", "shell32", "netapi32"] )] # OS X elif sys.platform.lower().startswith("darwin"): extensions = [Extension('_psutil_osx', sources = ['psutil/_psutil_osx.c', 'psutil/_psutil_common.c', 'psutil/arch/osx/process_info.c'], extra_link_args=['-framework', 'CoreFoundation', '-framework', 'IOKit'] ), posix_extension] # FreeBSD elif sys.platform.lower().startswith("freebsd"): extensions = [Extension('_psutil_bsd', sources = ['psutil/_psutil_bsd.c', 'psutil/_psutil_common.c', 'psutil/arch/bsd/process_info.c'] ), posix_extension] # Linux elif sys.platform.lower().startswith("linux"): extensions = [Extension('_psutil_linux', sources=['psutil/_psutil_linux.c'], ), posix_extension] else: raise NotImplementedError('platform %s is not supported' % sys.platform) def main(): setup_args = dict( name='psutil', version=__ver__, download_url="http://psutil.googlecode.com/files/psutil-%s.tar.gz" % __ver__, description='A process utilities module for Python', long_description="""\ psutil is a module providing convenience functions for monitoring system and processes in a portable way by using Python.""", keywords=['ps', 'top', 'kill', 'free', 'lsof', 'netstat', 'nice', 'tty', 'ionice', 'uptime', 'taskmgr', 'process', 'df', 'monitoring'], author='Giampaolo Rodola, Jay Loden', author_email='psutil@googlegroups.com', url='http://code.google.com/p/psutil/', platforms='Platform Independent', license='License :: OSI Approved :: BSD License', packages=['psutil'], cmdclass={'build_py':build_py}, # Python 3.X classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Console', 'Operating System :: MacOS :: MacOS X', 'Operating System :: Microsoft :: Windows :: Windows NT/2000', 'Operating System :: POSIX :: Linux', 'Operating System :: POSIX :: BSD :: FreeBSD', 'Operating System :: OS Independent', 'Programming Language :: C', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.4', 'Programming Language :: Python :: 2.5', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.0', 'Programming Language :: Python :: 3.1', 'Programming Language :: Python :: 3.2', 'Topic :: System :: Monitoring', 'Topic :: System :: Networking', 'Topic :: System :: Benchmark', 'Topic :: System :: Systems Administration', 'Topic :: Utilities', 'Topic :: Software Development :: Libraries :: Python Modules', 'Intended Audience :: Developers', 'Intended Audience :: System Administrators', 'License :: OSI Approved :: MIT License', ], ) if extensions is not None: setup_args["ext_modules"] = extensions setup(**setup_args) if __name__ == '__main__': main()