Nikita the Spider <[EMAIL PROTECTED]> wrote: > Hi all, > I'm a newbie when it comes to distributing C-based Python modules. I'm > just now sharing my first with the rest of the world (it's actually V. > Marangozov's shared memory module for IPC) and I've learned that the > module needs a different set of compile flags for Linux than for my Mac. > My question is this: is there a convention or standard that says where > platform-specific compile flags should reside? I could put them in > setup.py,
If you need, specifically, *compile-flags*, then setup.py is a good place for them (also linker-flags &c). > OTOH I know that within the .C file I can add something like > this: > #ifdef __FreeBSD__ > #include <machine/param.h> /* for system definition of PAGE_SIZE */ > #endif This is NOT a "compile-flag" -- it's a reasonable C technique, though. > That works, but for maximum Python programmer-friendliness I should > perhaps put the complexity in setup.py rather than in a .C file. > > Opinions appreciated. My opinion: flags in setup.py, conditional includes (&c) in the .c or .h file[s]. If you can do something either way: if you know platform X will ALWAYS want that something, "hard-code" it in the .c or .h; if you want to make it easier to change for Python programmers, then put it in the setup.py. Alex -- http://mail.python.org/mailman/listinfo/python-list