From 49ffce173ef739c8f3f26f236287e57f5d018a19 Mon Sep 17 00:00:00 2001
From: Greg Ward <gward@python.net>
Date: Thu, 2 Mar 2000 01:21:54 +0000
Subject: [PATCH] In the 'compile()' method: preserve the directory portion of
 source filenames when constructing object filenames, even if output_dir given
 -- eg. "foo/bar.c" will compile to "foo/bar.o" without an output_dir, and to
 "temp/foo/bar.o" if output_dir is "temp".

---
 Lib/distutils/unixccompiler.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index 77d12d32bc..518132f670 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -100,6 +100,7 @@ class UnixCCompiler (CCompiler):
     def compile (self,
                  sources,
                  output_dir=None,
+                 keep_dir=0,
                  macros=None,
                  include_dirs=None,
                  debug=0,
@@ -134,7 +135,11 @@ class UnixCCompiler (CCompiler):
         # don't have to recompile.  (Simplistic check -- we just compare the
         # source and object file, no deep dependency checking involving
         # header files.  Hmmm.)
-        objects = self.object_filenames (sources, output_dir=output_dir)
+        objects = self.object_filenames (sources,
+                                         output_dir=output_dir,
+                                         keep_dir=keep_dir)
+        all_objects = copy (objects)    # preserve full list to return
+
         if not self.force:
             skipped = newer_pairwise (sources, objects)
             for skipped_pair in skipped:
@@ -169,7 +174,7 @@ class UnixCCompiler (CCompiler):
         # Have to re-fetch list of object filenames, because we want to
         # return *all* of them, including those that weren't recompiled on
         # this call!
-        return self.object_filenames (orig_sources, output_dir=output_dir)
+        return all_objects
 
 
     def _fix_link_args (self, output_dir, libraries, library_dirs):
-- 
2.40.0