[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