Chris@87: #!/usr/bin/env python Chris@87: """ Chris@87: setup.py for installing F2PY Chris@87: Chris@87: Usage: Chris@87: python setup.py install Chris@87: Chris@87: Copyright 2001-2005 Pearu Peterson all rights reserved, Chris@87: Pearu Peterson Chris@87: Permission to use, modify, and distribute this software is given under the Chris@87: terms of the NumPy License. Chris@87: Chris@87: NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. Chris@87: $Revision: 1.32 $ Chris@87: $Date: 2005/01/30 17:22:14 $ Chris@87: Pearu Peterson Chris@87: Chris@87: """ Chris@87: from __future__ import division, print_function Chris@87: Chris@87: __version__ = "$Id: setup.py,v 1.32 2005/01/30 17:22:14 pearu Exp $" Chris@87: Chris@87: import os Chris@87: import sys Chris@87: from distutils.dep_util import newer Chris@87: from numpy.distutils import log Chris@87: from numpy.distutils.core import setup Chris@87: from numpy.distutils.misc_util import Configuration Chris@87: Chris@87: from __version__ import version Chris@87: Chris@87: def configuration(parent_package='',top_path=None): Chris@87: config = Configuration('f2py', parent_package, top_path) Chris@87: Chris@87: config.add_data_dir('docs') Chris@87: config.add_data_dir('tests') Chris@87: Chris@87: config.add_data_files('src/fortranobject.c', Chris@87: 'src/fortranobject.h', Chris@87: 'f2py.1' Chris@87: ) Chris@87: Chris@87: config.make_svn_version_py() Chris@87: Chris@87: def generate_f2py_py(build_dir): Chris@87: f2py_exe = 'f2py'+os.path.basename(sys.executable)[6:] Chris@87: if f2py_exe[-4:]=='.exe': Chris@87: f2py_exe = f2py_exe[:-4] + '.py' Chris@87: if 'bdist_wininst' in sys.argv and f2py_exe[-3:] != '.py': Chris@87: f2py_exe = f2py_exe + '.py' Chris@87: target = os.path.join(build_dir, f2py_exe) Chris@87: if newer(__file__, target): Chris@87: log.info('Creating %s', target) Chris@87: f = open(target, 'w') Chris@87: f.write('''\ Chris@87: #!%s Chris@87: # See http://cens.ioc.ee/projects/f2py2e/ Chris@87: import os, sys Chris@87: for mode in ["g3-numpy", "2e-numeric", "2e-numarray", "2e-numpy"]: Chris@87: try: Chris@87: i=sys.argv.index("--"+mode) Chris@87: del sys.argv[i] Chris@87: break Chris@87: except ValueError: pass Chris@87: os.environ["NO_SCIPY_IMPORT"]="f2py" Chris@87: if mode=="g3-numpy": Chris@87: sys.stderr.write("G3 f2py support is not implemented, yet.\\n") Chris@87: sys.exit(1) Chris@87: elif mode=="2e-numeric": Chris@87: from f2py2e import main Chris@87: elif mode=="2e-numarray": Chris@87: sys.argv.append("-DNUMARRAY") Chris@87: from f2py2e import main Chris@87: elif mode=="2e-numpy": Chris@87: from numpy.f2py import main Chris@87: else: Chris@87: sys.stderr.write("Unknown mode: " + repr(mode) + "\\n") Chris@87: sys.exit(1) Chris@87: main() Chris@87: '''%(sys.executable)) Chris@87: f.close() Chris@87: return target Chris@87: Chris@87: config.add_scripts(generate_f2py_py) Chris@87: Chris@87: log.info('F2PY Version %s', config.get_version()) Chris@87: Chris@87: return config Chris@87: Chris@87: if __name__ == "__main__": Chris@87: Chris@87: config = configuration(top_path='') Chris@87: version = config.get_version() Chris@87: print('F2PY Version', version) Chris@87: config = config.todict() Chris@87: Chris@87: if sys.version[:3]>='2.3': Chris@87: config['download_url'] = "http://cens.ioc.ee/projects/f2py2e/2.x"\ Chris@87: "/F2PY-2-latest.tar.gz" Chris@87: config['classifiers'] = [ Chris@87: 'Development Status :: 5 - Production/Stable', Chris@87: 'Intended Audience :: Developers', Chris@87: 'Intended Audience :: Science/Research', Chris@87: 'License :: OSI Approved :: NumPy License', Chris@87: 'Natural Language :: English', Chris@87: 'Operating System :: OS Independent', Chris@87: 'Programming Language :: C', Chris@87: 'Programming Language :: Fortran', Chris@87: 'Programming Language :: Python', Chris@87: 'Topic :: Scientific/Engineering', Chris@87: 'Topic :: Software Development :: Code Generators', Chris@87: ] Chris@87: setup(version=version, Chris@87: description = "F2PY - Fortran to Python Interface Generaton", Chris@87: author = "Pearu Peterson", Chris@87: author_email = "pearu@cens.ioc.ee", Chris@87: maintainer = "Pearu Peterson", Chris@87: maintainer_email = "pearu@cens.ioc.ee", Chris@87: license = "BSD", Chris@87: platforms = "Unix, Windows (mingw|cygwin), Mac OSX", Chris@87: long_description = """\ Chris@87: The Fortran to Python Interface Generator, or F2PY for short, is a Chris@87: command line tool (f2py) for generating Python C/API modules for Chris@87: wrapping Fortran 77/90/95 subroutines, accessing common blocks from Chris@87: Python, and calling Python functions from Fortran (call-backs). Chris@87: Interfacing subroutines/data from Fortran 90/95 modules is supported.""", Chris@87: url = "http://cens.ioc.ee/projects/f2py2e/", Chris@87: keywords = ['Fortran', 'f2py'], Chris@87: **config)