]> granicus.if.org Git - python/commitdiff
Provide a bit more information to the compiler when building Expat.
authorFred Drake <fdrake@acm.org>
Tue, 21 Oct 2003 15:41:15 +0000 (15:41 +0000)
committerFred Drake <fdrake@acm.org>
Tue, 21 Oct 2003 15:41:15 +0000 (15:41 +0000)
This avoids having to modify the Expat sources in any way starting
with Expat 1.95.7.

setup.py

index 528681c7d3c4c3e51973f044869d946a9b508d23..40dbf4b306bf9ef4903c4fa3ccd1022aaa281693 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -737,21 +737,26 @@ class PyBuildExt(build_ext):
         else:
             xmlbo = "4321"
         expatinc = os.path.join(os.getcwd(), srcdir, 'Modules', 'expat')
-        exts.append(Extension('pyexpat',
-                              sources = [
-            'pyexpat.c',
-            'expat/xmlparse.c',
-            'expat/xmlrole.c',
-            'expat/xmltok.c',
-            ],
-                              define_macros = [
+        define_macros = [
             ('XML_NS', '1'),
             ('XML_DTD', '1'),
             ('BYTEORDER', xmlbo),
             ('XML_CONTEXT_BYTES','1024'),
-            ],
-                              include_dirs = [expatinc]
-                               ))
+            ]
+        config_h = sysconfig.get_config_h_filename()
+        config_h_vars = sysconfig.parse_config_h(open(config_h))
+        for feature_macro in ['HAVE_MEMMOVE', 'HAVE_BCOPY']:
+            if config_h_vars.has_key(feature_macro):
+                define_macros.append((feature_macro, '1'))
+        exts.append(Extension('pyexpat',
+                              define_macros = define_macros,
+                              include_dirs = [expatinc],
+                              sources = ['pyexpat.c',
+                                         'expat/xmlparse.c',
+                                         'expat/xmlrole.c',
+                                         'expat/xmltok.c',
+                                         ],
+                              ))
 
         # Dynamic loading module
         if sys.maxint == 0x7fffffff: