Вы можете сделать это, переопределив команду build_ext из distutils.
from distutils.core import setup, Extension
from distutils.command.build_ext import build_ext as _build_ext
module=Extension(....) # The way to build your extension
class build_ext(_build_ext):
description = "Custom Build Process"
def initialize_options(self):
_build_ext.initialize_options(self)
def finalize_options(self):
_build_ext.finalize_options(self)
def run(self):
# Code to generate your .h
.....
# Start classic Extension build
_build_ext.run(self)
setup(...
ext_modules = [module],
cmdclass = { "build_ext": build_ext},
...)
Так что каждый раз, когда вы строите расширение, восстанавливается .h.