
Mats Wichmann wrote:
At 01:54 PM 10/23/2002 +0200, M.-A. Lemburg wrote:
M.-A. Lemburg wrote:
Is there a way to find out the default include path used by a compiler ? Does distutils have an API for this ?
I scanned the code but couldn't find any hint.
So far I found these defaults:
Linux: libs: /lib, /usr/lib headers: /usr/include
Depends on what you mean by "default" :-)
What I'm working on is an automatic system for finding 3rd party libs to link against, e.g. say I have an extension which links against OpenSSL I want the setup.py to automatically find the .so and .h files. It easy to simply look in a few directories, but I found that I have to be very careful about adding things like -I/usr/include to the compiler run, because on some systems this can bomb (the compiler picks up non-compiler compatible standard C header files, like e.g. stdarg.h).
For any given Linux system, the linker will search libraries in locations built in to the compilation system (I think your list is correct there), plus whatever's listed in /etc/ld.so.conf. Sometimes assisted or hampered by what's in /etc/ld.so.cache :-{
Does the linker search there too or only the dynamic one at load time ?
Headers are searched in /usr/local/include and /usr/include, plus a compiler-private directory (pathname determined by compiler version and host details).
It's possible, if the compiler indeed is gcc, to ask the compiler to tell you the path to the "specs" file for that compiler which you can then examine to obtain more details than you wanted....(ahem, I've actually had to do this, please don't ask why).
Thanks, -- Marc-Andre Lemburg CEO eGenix.com Software GmbH _______________________________________________________________________ eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,... Python Consulting: http://www.egenix.com/ Python Software: http://www.egenix.com/files/python/