Imported Upstream version 1.0.1
[joel/debian/python-sqlite.git] / setup.py
1 #!/usr/bin/env python
2
3 import os, sys
4 from distutils.core import setup
5 from distutils.extension import Extension
6
7 __version__ = "1.0.1"
8
9 sqlite = "sqlite"
10 sources = ["_sqlite.c", "encode.c", "port/strsep.c"]
11 macros = []
12
13 if sys.platform in ("linux-i386", "linux2"): # most Linux
14     include_dirs = ['/usr/include/sqlite']
15     library_dirs = ['/usr/lib/']
16     libraries = [sqlite]
17     runtime_library_dirs = []
18     extra_objects = []
19 elif sys.platform in ("freebsd4", "freebsd5", "openbsd2", "cygwin", "darwin"):
20     if sys.platform == "darwin":
21         LOCALBASE = os.environ.get("LOCALBASE", "/opt/local")
22     else:
23         LOCALBASE = os.environ.get("LOCALBASE", "/usr/local")
24     include_dirs = ['%s/include' % LOCALBASE]
25     library_dirs = ['%s/lib/' % LOCALBASE]
26     libraries = [sqlite]
27     runtime_library_dirs = []
28     extra_objects = []
29 elif sys.platform == "win32":
30     include_dirs = [r'..\sqlite']
31     library_dirs = [r'..\sqlite']
32     libraries = ["sqlite"]
33     runtime_library_dirs = []
34     extra_objects = []
35 elif os.name == "posix": # most Unixish platforms
36     include_dirs = ['/usr/local/include']
37     library_dirs = ['/usr/local/lib']
38     libraries = [sqlite]
39     # On some platorms, this can be used to find the shared libraries
40     # at runtime, if they are in a non-standard location. Doesn't
41     # work for Linux gcc.
42     ## runtime_library_dirs = library_dirs
43     runtime_library_dirs = []
44     # This can be used on Linux to force use of static sqlite lib
45     ## extra_objects = ['/usr/lib/sqlite/libsqlite.a']
46     extra_objects = []
47 else:
48     raise "UnknownPlatform", "sys.platform=%s, os.name=%s" % \
49           (sys.platform, os.name)
50     
51 long_description = \
52 """Python interface to SQLite
53
54 pysqlite is an interface to the SQLite database server for Python. It aims to be
55 fully compliant with Python database API version 2.0 while also exploiting the
56 unique features of SQLite.
57
58 """
59
60 def main():
61     py_modules = ["sqlite.main"]
62                           
63     # patch distutils if it can't cope with the "classifiers" keyword
64     if sys.version < '2.2.3':
65         from distutils.dist import DistributionMetadata
66         DistributionMetadata.classifiers = None
67         DistributionMetadata.download_url = None
68     
69     setup ( # Distribution meta-data
70             name = "pysqlite",
71             version = __version__,
72             description = "An interface to SQLite",
73             long_description=long_description,
74             author = "PySQLite developers",
75             author_email = "pysqlite-devel@lists.sourceforge.net",
76             license = "Python license",
77             platforms = "ALL",
78             url = "http://pysqlite.sourceforge.net/",
79
80             # Description of the modules and packages in the distribution
81             py_modules = py_modules,
82
83             ext_modules = [Extension( name='_sqlite',
84                                       sources=sources,
85                                       include_dirs=include_dirs,
86                                       library_dirs=library_dirs,
87                                       runtime_library_dirs=runtime_library_dirs,
88                                       libraries=libraries,
89                                       extra_objects=extra_objects,
90                                       define_macros=macros
91                                       )],
92             classifiers = [
93             "Development Status :: 5 - Production/Stable",
94             "Intended Audience :: Developers",
95             "License :: OSI Approved :: MIT License",
96             "Operating System :: Microsoft :: Windows :: Windows NT/2000",
97             "Operating System :: POSIX",
98             "Programming Language :: C",
99             "Programming Language :: Python",
100             "Topic :: Database :: Database Engines/Servers",
101             "Topic :: Database :: Front-Ends"]
102             )
103
104 if __name__ == "__main__":
105     main()