Robert,
Thanks that was very helpful. Here is what I have come up with:
#!/usr/bin/env python
import distribute_setup
distribute_setup.use_setuptools()
from setuptools import setup
from distutils.command.build import build as _build
class build(_build):
# Overload the built-in build command such that manpage (ec.1) is created
# during the build phase
def run(self):
import manpage # simply importing the manpage creates the manpage as a
side effect
_build.initialize_options(self)
setup(
name='ec',
...,
data_files=[
('man/man1', ['ec.1'])
],
setup_requires='docutils >= 0.7',
install_requires='python >= 2.6',
cmdclass={'build': build}
)
Initially I overloaded the run() method for build, but that only worked if
I explicitly specified 'build' when I ran setup (i.e., 'python setup.py
build').
It did not work if I specified 'install', which surprised me because I thought
install automatically ran the build command if it is needed. While it might, it
does not execute build's run() method, even though I thoroughly cleaned the
install directory before I ran install. So instead I overloaded
initialize_options(). I don't know if this is a good approach, because I am
not
sure initialize_options() is always called. I could also overload run() in the
install class, but I decided against it because it seems more in keeping of the
spirit of the build and install commands that building the manpage be done in
the build phase.
Is this what you were thinking? Is there any way to improve on this approach?
-Ken
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig