Windows
Operating System Limitations
Environment space and environment variable limitations must be kept in mind. At http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true Microsoft says...
- The maximum individual environment variable size is 8192bytes. The maximum total environment variable size for all variables, which includes variable names and the equal sign, is 65,536KB.
But at http://support.microsoft.com/kb/830473 they also say...
Even though the Win32 limitation for environment variables is 32,767 characters, Command Prompt ignores any environment variables that are inherited from the parent process and are longer than its own limitations of either 2047 or 8191 characters (as appropriate to the operating system). For more information about the SetEnvironmentVariable function, visit the following Microsoft Web site: http://msdn2.microsoft.com/en-us/library/ms686206.aspx
In order to find native libs required by python and its extension the location of these libs can be put into the PATH environment variable. If this is what SCons does, does it detect overflowing the process' environment space or the maximum size of the PATH environment variable? If it does not, at some point it will break, and worse, because everyone checks out to a different path, so that the resulting locations will vary in length, it will break down more or less at random.
Visual C++
- If using Microsoft Visual C++, you need to set 'INCLUDE', 'LIB' and 'PATH' in your environment, then import them when you create your 'Environment' object. These will be used to locate the MSVC++ tools and set 'CPPFLAGS' etc.
If you need to #include <windows.h>, make sure you don't use the '/Za' compiler flag. You'll get a whole lot of errors, the reason for which will not be apparent from the messages.
Note, on the other hand that if you want to process 'bison' output with MS VC++, you will need to use CCFLAGS=['/Za'].
Linux
When linking Fortran and C objects, especially if you're using G77 to compile the Fortran, you'll often need to explicitly link to 'libg2c'. The location of this file is usually not /usr/lib -- it will be somewhere in a subdirectory there, which you need to explicitly add to your 'LIBPATH'.
