1#!/usr/bin/env python
2# To use:
3#       python setup.py install
4#
5
6import platform
7
8try:
9    import distutils
10    from distutils import sysconfig
11    from distutils.command.install import install
12    from distutils.core import setup, Extension
13except:
14    raise SystemExit("Distutils problem")
15
16install.sub_commands = [x for x in install.sub_commands if 'egg' not in x[0]]
17
18prefix = sysconfig.PREFIX
19inc_dirs = [prefix + "/include", "Modules/_sqlite"]
20lib_dirs = [prefix + "/lib"]
21libs = ["sqlite3"]
22macros = [('MODULE_NAME', '"sqlite3"')]
23sqlite_srcs = [
24'_sqlite/connection.c',
25'_sqlite/cursor.c',
26'_sqlite/microprotocols.c',
27'_sqlite/module.c',
28'_sqlite/prepare_protocol.c',
29'_sqlite/row.c',
30'_sqlite/statement.c',
31'_sqlite/util.c']
32
33major, minor = map(int, platform.python_version_tuple()[:2])
34
35if (major, minor) <= (3, 10):
36    sqlite_srcs.append('_sqlite/cache.c',)
37
38try:
39    import ctypes
40    ctypes.CDLL('libsqlite3.so').sqlite3_load_extension
41except AttributeError:
42    macros.append(('SQLITE_OMIT_LOAD_EXTENSION', '1'))
43
44setup(name = "sqlite3",
45      description = "SQLite 3 extension to Python",
46
47      ext_modules = [Extension('_sqlite3', sqlite_srcs,
48                               include_dirs = inc_dirs,
49                               libraries = libs,
50                               library_dirs = lib_dirs,
51                               runtime_library_dirs = lib_dirs,
52                               define_macros = macros)]
53      )
54