from distutils.core import setup, Extension from distutils.command.build_ext import build_ext main = Extension('main', sources = ['main.c']) class MainBuilder(build_ext): def build_extensions(self): cc = self.compiler with open('main.c', 'wt') as fobj: fobj.write('int main(int argc, char** argv) { return(0); }') objects = cc.compile(['main.c']) cc.link_executable(objects, 'main.exe') setup(name = 'PackageName', ext_modules = [main], cmdclass = dict(build_ext = MainBuilder))