]> granicus.if.org Git - python/commitdiff
add a --with-system-expat option to build pyexpat against the system's lib #7609
authorBenjamin Peterson <benjamin@python.org>
Thu, 31 Dec 2009 03:17:18 +0000 (03:17 +0000)
committerBenjamin Peterson <benjamin@python.org>
Thu, 31 Dec 2009 03:17:18 +0000 (03:17 +0000)
Misc/NEWS
configure
configure.in
setup.py

index 87242b17362cc354bcbcef057dff05687b6d3c59..c78eaa8e9401eeed79328b25f3f6d3aa74271097 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -93,6 +93,10 @@ C-API
 Build
 -----
 
+- Issue #7609: Add a --with-system-expat option that causes the system's expat
+  library to be used for the pyexpat module instead of the one included with
+  Python.
+
 - Issue #7589: Only build the nis module when the correct header files are
   found.
 
index 1fe54539206d333af547015e96b5fe98d5c3baa2..7b99041ba457630b08fa20d6186d7fb34e336d91 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 76644 .
+# From configure.in Revision: 77031 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for python 2.7.
 #
@@ -1348,6 +1348,8 @@ Optional Packages:
   --with-suffix=.exe      set executable suffix
   --with-pydebug          build with Py_DEBUG defined
   --with-libs='lib1 ...'  link against additional libs
+  --with-system-expat     build pyexpat module using an installed expat
+                          library
   --with-system-ffi       build _ctypes module using an installed ffi library
   --with-dbmliborder=db1:db2:...
                           order to check db backends for dbm. Valid value is a
@@ -3857,7 +3859,7 @@ else
   { echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6; }
 fi
-rm -f -r conftest*
+rm -f conftest*
 
 
 
@@ -5410,7 +5412,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 else
   ac_cv_header_stdc=no
 fi
-rm -f -r conftest*
+rm -f conftest*
 
 fi
 
@@ -5431,7 +5433,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 else
   ac_cv_header_stdc=no
 fi
-rm -f -r conftest*
+rm -f conftest*
 
 fi
 
@@ -6529,7 +6531,7 @@ _ACEOF
 
 
 fi
-rm -f -r conftest*
+rm -f conftest*
 
 { echo "$as_me:$LINENO: result: $was_it_defined" >&5
 echo "${ECHO_T}$was_it_defined" >&6; }
@@ -7059,7 +7061,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 else
   ac_cv_type_uid_t=no
 fi
-rm -f -r conftest*
+rm -f conftest*
 
 fi
 { echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
@@ -15513,6 +15515,19 @@ echo "${ECHO_T}no" >&6; }
 fi
 
 
+# Check for use of the system expat library
+{ echo "$as_me:$LINENO: checking for --with-system-expat" >&5
+echo $ECHO_N "checking for --with-system-expat... $ECHO_C" >&6; }
+
+# Check whether --with-system_expat was given.
+if test "${with_system_expat+set}" = set; then
+  withval=$with_system_expat;
+fi
+
+
+{ echo "$as_me:$LINENO: result: $with_system_expat" >&5
+echo "${ECHO_T}$with_system_expat" >&6; }
+
 # Check for use of the system libffi library
 { echo "$as_me:$LINENO: checking for --with-system-ffi" >&5
 echo $ECHO_N "checking for --with-system-ffi... $ECHO_C" >&6; }
@@ -15719,7 +15734,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 else
   unistd_defines_pthreads=no
 fi
-rm -f -r conftest*
+rm -f conftest*
 
     { echo "$as_me:$LINENO: result: $unistd_defines_pthreads" >&5
 echo "${ECHO_T}$unistd_defines_pthreads" >&6; }
@@ -17333,7 +17348,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "yes" >/dev/null 2>&1; then
   ipv6type=$i
 fi
-rm -f -r conftest*
+rm -f conftest*
 
                        ;;
                kame)
@@ -17356,7 +17371,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
                                ipv6libdir=/usr/local/v6/lib
                                ipv6trylibc=yes
 fi
-rm -f -r conftest*
+rm -f conftest*
 
                        ;;
                linux-glibc)
@@ -17377,7 +17392,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   ipv6type=$i;
                                ipv6trylibc=yes
 fi
-rm -f -r conftest*
+rm -f conftest*
 
                        ;;
                linux-inet6)
@@ -17415,7 +17430,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
                                ipv6lib=inet6;
                                ipv6libdir=/usr/local/v6/lib
 fi
-rm -f -r conftest*
+rm -f conftest*
 
                        ;;
                v6d)
@@ -17438,7 +17453,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
                                ipv6libdir=/usr/local/v6/lib;
                                BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"
 fi
-rm -f -r conftest*
+rm -f conftest*
 
                        ;;
                zeta)
@@ -17460,7 +17475,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
                                ipv6lib=inet6;
                                ipv6libdir=/usr/local/v6/lib
 fi
-rm -f -r conftest*
+rm -f conftest*
 
                        ;;
                esac
@@ -26003,7 +26018,7 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 fi
-rm -f -r conftest*
+rm -f conftest*
 
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -26022,7 +26037,7 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 fi
-rm -f -r conftest*
+rm -f conftest*
 
 fi
 
@@ -26292,7 +26307,7 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 fi
-rm -f -r conftest*
+rm -f conftest*
 
 fi
 
index 59056b904fbad2d87c5ee4684aa2e658df1d992e..6f05f7578d79e74b722d1fced6b25b05ebfaf57f 100644 (file)
@@ -1964,6 +1964,13 @@ LIBS="$withval $LIBS"
 ],
 [AC_MSG_RESULT(no)])
 
+# Check for use of the system expat library
+AC_MSG_CHECKING(for --with-system-expat)
+AC_ARG_WITH(system_expat,
+            AC_HELP_STRING(--with-system-expat, build pyexpat module using an installed expat library))
+
+AC_MSG_RESULT($with_system_expat)
+
 # Check for use of the system libffi library
 AC_MSG_CHECKING(for --with-system-ffi)
 AC_ARG_WITH(system_ffi,
index 1af4022a4f5a9d487f37bb71a9e94d4d48260331..a8c9059066c1ee0a34e8e7e5cfc91498c0e85087 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1220,19 +1220,26 @@ class PyBuildExt(build_ext):
         #
         # More information on Expat can be found at www.libexpat.org.
         #
-        expatinc = os.path.join(os.getcwd(), srcdir, 'Modules', 'expat')
-        define_macros = [
-            ('HAVE_EXPAT_CONFIG_H', '1'),
-        ]
+        if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
+            expat_inc = []
+            define_macros = []
+            expat_lib = ['expat']
+            expat_sources = []
+        else:
+            expat_inc = [os.path.join(os.getcwd(), srcdir, 'Modules', 'expat')]
+            define_macros = [
+                ('HAVE_EXPAT_CONFIG_H', '1'),
+            ]
+            expat_lib = []
+            expat_sources = ['expat/xmlparse.c',
+                             'expat/xmlrole.c',
+                             'expat/xmltok.c']
 
         exts.append(Extension('pyexpat',
                               define_macros = define_macros,
-                              include_dirs = [expatinc],
-                              sources = ['pyexpat.c',
-                                         'expat/xmlparse.c',
-                                         'expat/xmlrole.c',
-                                         'expat/xmltok.c',
-                                         ],
+                              include_dirs = expat_inc,
+                              libraries = expat_lib,
+                              sources = ['pyexpat.c'] + expat_sources
                               ))
 
         # Fredrik Lundh's cElementTree module.  Note that this also
@@ -1242,7 +1249,8 @@ class PyBuildExt(build_ext):
             define_macros.append(('USE_PYEXPAT_CAPI', None))
             exts.append(Extension('_elementtree',
                                   define_macros = define_macros,
-                                  include_dirs = [expatinc],
+                                  include_dirs = expat_inc,
+                                  libraries = expat_lib,
                                   sources = ['_elementtree.c'],
                                   ))
         else: