
Currently, setup.py is created by configure in builddir while source files (.py and .i) reside in srcdir. Adjust paths in setup.py appropriately to make it possible to perform an out-of-source build. This is far from perfect but it mostly works. Python files are copied from srcdir, and swig *.i files are read from there. However, swig output files are created in srcdir rather than builddir, and distutils copies '..' literally when constructing '.o' paths. As a result, '../python/foo.i' would end up being compiled to 'build/temp*/../python/foo.i'. The alternative would be to copy '*.i' files to builddir before proceeding with the build, either in Makefile or through creating additional distutils command.
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
#!/usr/bin/env python
|
|
|
|
from distutils.core import setup, Extension
|
|
|
|
opts = ['-O', '-nodefaultctor']
|
|
include = ['@top_builddir@/include', '@top_srcdir@/include']
|
|
library_dirs = ['@top_builddir@/lib/.libs']
|
|
|
|
netlink_capi = Extension('netlink/_capi',
|
|
sources = ['@srcdir@/netlink/capi.i'],
|
|
include_dirs = include,
|
|
swig_opts = opts,
|
|
library_dirs = library_dirs,
|
|
libraries = ['nl-3'],
|
|
)
|
|
|
|
route_capi = Extension('netlink/route/_capi',
|
|
sources = ['@srcdir@/netlink/route/capi.i'],
|
|
include_dirs = include,
|
|
swig_opts = opts,
|
|
library_dirs = library_dirs,
|
|
libraries = ['nl-3', 'nl-route-3'],
|
|
)
|
|
|
|
genl_capi = Extension('netlink/genl/_capi',
|
|
sources = ['@srcdir@/netlink/genl/capi.i'],
|
|
include_dirs = include,
|
|
swig_opts = opts,
|
|
library_dirs = library_dirs,
|
|
libraries = ['nl-3', 'nl-genl-3'],
|
|
)
|
|
|
|
setup(name = 'netlink',
|
|
version = '1.0',
|
|
description = 'Python wrapper for netlink protocols',
|
|
author = 'Thomas Graf',
|
|
author_email = 'tgraf@suug.ch',
|
|
ext_modules = [netlink_capi, route_capi, genl_capi],
|
|
package_dir = {'': '@srcdir@'},
|
|
packages = ['netlink', 'netlink.genl', 'netlink.route',
|
|
'netlink.route.links', 'netlink.route.qdisc'],
|
|
)
|