From: Andrew M. Kuchling <amk@amk.ca>
Date: Wed, 26 Feb 2003 18:52:07 +0000 (+0000)
Subject: [Bug #668662] Patch from Pearu Pearson: if a C source file is
X-Git-Tag: v2.3c1~1674
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=10da45e2371b6e44b32105cf8a1cdb655e173ca2;p=python

[Bug #668662] Patch from Pearu Pearson: if a C source file is
    specified with an absolute path, the object file is also
    written to an absolute path.  The patch drops the drive and
    leading '/' from the source path, so a path like /path/to/foo.c
    results in an object file like build/temp.i686linux/path/to/foo.o.
---

diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index bfcf1279f1..46fb743db0 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -932,6 +932,8 @@ class CCompiler:
         obj_names = []
         for src_name in source_filenames:
             base, ext = os.path.splitext(src_name)
+            base = os.path.splitdrive(base)[1] # Chop off the drive
+            base = base[os.path.isabs(base):]  # If abs, chop off leading /
             if ext not in self.src_extensions:
                 raise UnknownFileError, \
                       "unknown file type '%s' (from '%s')" % (ext, src_name)