[Distutils] Question re extension modules.
M.-A. Lemburg
mal at egenix.com
Mon Jan 17 10:24:31 CET 2005
Titus Brown wrote:
> Hi again,
>
> I'm developing a C++ library & associated extension module within the
> same directory. My setup.py contains this line:
>
> parser_mod = Extension("paircomp._paircomp_parser",
> ["c++-ext/_paircomp_parser.cc",],
> include_dirs=['../lib',],
> library_dirs=['../lib',],
> libraries=['paircomp', 'stdc++'])
>
> One of the important libraries that I need to include is -lpaircomp,
> in '../lib/libpaircomp.a'.
>
> Currently when I change libpaircomp.a (by, for example, making some
> internal change to the C++ library that's not reflected in the API)
> my Python extensions do not get recompiled by 'python setup.py build'.
> (This is run automatically by the Makefile.)
distutils doesn't do dependency tracking like make.
> So at the moment I either have to use Makefile trickery or just do an
> 'rm -fr build' to force recompilation of the extension when the library
> is changed.
>
> Is there a canonical way to tell distutils that 'this extension depends
> on this file, so force rebuild if the file changes'?
No.
> One obvious possibility would be to simple compare last-changed dates
> on all of the libraries with last-changed dates on the .so file
> produced by setup.py.
distutils is a tool for packaging code, not a replacement
for development tools like make. You normally only run
distutils setup.py scripts after you've completed developing
your code.
make is a much better tool for dependency checking, so the
"right" way to handle the dependency problem is to add
proper targets to the Makefile.
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source (#1, Jan 10 2005)
>>> Python/Zope Consulting and Support ... http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
More information about the Distutils-SIG
mailing list