[lxml-dev] lxml Mac installation idea

Guntsche Michael mike at it-loops.com
Sat Nov 15 23:47:24 CET 2008


On Nov 14, 2008, at 11:36, Mark Bestley wrote:

> Yep it is fun - UNIVERSALSDK is not always set either. (and on my  
> build
> setting it was a problem)

Here the last incarnation of my patch. I got rid of setting the  
environment variables and deleting them afterwards.
Should have done it like this in the first place.

/Mike

Index: buildlibxml.py
===================================================================
--- buildlibxml.py	(revision 59932)
+++ buildlibxml.py	(working copy)
@@ -165,17 +165,34 @@
      prefix = os.path.join(os.path.abspath(build_dir), 'libxml2')
      safe_mkdir(prefix)

-    configure_cmd = ['./configure', '--without-python',
+
+    # We compile Universal if we are on a machine > 10.3
+    major_version = int(os.uname()[2].split('.')[0])
+
+    if major_version > 7:
+        universal_env = {
+            'CFLAGS' : "-arch ppc -arch i386 -isysroot /Developer/ 
SDKs/MacOSX10.4u.sdk -O2",
+            'LDFLAGS' : "-arch ppc -arch i386 -isysroot /Developer/ 
SDKs/MacOSX10.4u.sdk",
+            'MACOSX_DEPLOYMENT_TARGET' : "10.3"
+        }
+    else: universal_env = None
+
+    # We are loosing the link to iconv add it again
+    static_binaries.append('-liconv')
+
+    configure_cmd = ['./configure', '--without-python' ,
                       '--disable-dependency-tracking',
                       '--disable-shared', '--prefix=%s' % prefix]
-    call_subprocess(configure_cmd, cwd=libxml2_dir)
+    call_subprocess(configure_cmd, cwd=libxml2_dir, env=universal_env)
      call_subprocess(
          ['make'], cwd=libxml2_dir)
      call_subprocess(
          ['make', 'install'], cwd=libxml2_dir)

-    libxslt_configure_cmd = configure_cmd + ['--with-libxml-prefix= 
%s' % prefix]
-    call_subprocess(libxslt_configure_cmd, cwd=libxslt_dir)
+    libxslt_configure_cmd = configure_cmd + ['--with-libxml-prefix= 
%s' % prefix,
+                                             '--without-crypto',
+                                             '--disable-shared']
+    call_subprocess(libxslt_configure_cmd, cwd=libxslt_dir,  
env=universal_env)
      call_subprocess(
          ['make'], cwd=libxslt_dir)
      call_subprocess(
@@ -191,11 +208,6 @@
              os.path.join(prefix, 'include', 'libexslt')])
      static_library_dirs.append(lib_dir)

-    unisdk_dir = sysconfig.get_config_var('UNIVERSALSDK')
-    if unisdk_dir:
-        static_cflags.extend(['-isysroot', unisdk_dir,
-                              '-arch', '-i386', '-arch', 'ppc'])
-
      for filename in os.listdir(lib_dir):
          if [l for l in ['libxml2', 'libxslt', 'libexslt'] if l in  
filename]:
              if [ext for ext in ['.a'] if filename.endswith(ext)]:



More information about the lxml-dev mailing list