SWIGing a source file <name>.i silently overwrites <name>.c if it is
present - at least the swigged file should be named <name>_wrap.c as
this is also SWIG's default. (Even better would be to generate the
wrapped sources in a different location, but I'll leave this for
later).

Newer versions of SWIG don't accept the -dnone flag any more.

Since virtually nobody uses SWIG with distutils, this should do no
harm.

Suggested be Martin Bless on c.l.p.
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index 7a39314..98617f7 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -511,7 +511,7 @@
         for source in sources:
             (base, ext) = os.path.splitext(source)
             if ext == ".i":             # SWIG interface file
-                new_sources.append(base + target_ext)
+                new_sources.append(base + '_wrap' + target_ext)
                 swig_sources.append(source)
                 swig_targets[source] = new_sources[-1]
             else:
@@ -521,7 +521,7 @@
             return new_sources
 
         swig = self.find_swig()
-        swig_cmd = [swig, "-python", "-dnone", "-ISWIG"]
+        swig_cmd = [swig, "-python"]
         if self.swig_cpp:
             swig_cmd.append("-c++")