-def compile_without_gstabs(env, sources, c_file):
- '''This is a hack used to compile some source files without the
- -gstabs option.
-
- It seems that some versions of mingw32's gcc (4.4.2 at least) die
- when compiling large files with the -gstabs option. -gstabs is
- related to debug symbols and can be omitted from the effected
- files.
-
- This function compiles the given c_file without -gstabs, removes
- the c_file from the sources list, then appends the new .o file to
- sources. Then return the new sources list.
- '''
-
- # Modify CCFLAGS to not have -gstabs option:
- env2 = env.Clone()
- flags = str(env2['CCFLAGS'])
- flags = flags.replace("-gstabs", "")
- env2['CCFLAGS'] = SCons.Util.CLVar(flags)
-
- # Build the special-case files:
- obj_file = env2.SharedObject(c_file)
-
- # Replace ".cpp" or ".c" with ".o"
- o_file = c_file.replace(".cpp", ".o")
- o_file = o_file.replace(".c", ".o")
-
- # Replace the .c files with the specially-compiled .o file
- sources.remove(c_file)
- sources.append(o_file)
-
- return sources
-
-