Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 368 lines (329 sloc) 13.848 kb
3a6bffbf » scoder
2012-07-30 exclude ppc target from MacOS-X build with XCode 4.0+, patch by John …
1 import os, re, sys, subprocess
2 from distutils import log, sysconfig, version
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
3
4 try:
5 from urlparse import urlsplit, urljoin
6 from urllib import urlretrieve
7 except ImportError:
c0b410f4 » scoder
2010-03-25 [svn r4382] r5530@lenny: sbehnel | 2010-03-25 14:17:06 +0100
8 from urllib.parse import urlsplit, urljoin
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
9 from urllib.request import urlretrieve
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
10
11 multi_make_options = []
12 try:
1e2369b6 » scoder
2010-06-21 [svn r4424] r5612@lenny: sbehnel | 2010-06-21 20:07:58 +0200
13 import multiprocessing
14 cpus = multiprocessing.cpu_count()
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
15 if cpus > 1:
16 if cpus > 5:
17 cpus = 5
18 multi_make_options = ['-j%d' % (cpus+1)]
1e2369b6 » scoder
2010-06-21 [svn r4424] r5612@lenny: sbehnel | 2010-06-21 20:07:58 +0200
19 except:
20 pass
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
21
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
22
af100067 » scoder
2010-01-30 [svn r4341] r5461@lenny: sbehnel | 2010-01-30 23:02:39 +0100
23 # use pre-built libraries on Windows
24
25 def download_and_extract_zlatkovic_binaries(destdir):
26 url = 'ftp://ftp.zlatkovic.com/pub/libxml/'
27 libs = dict(
28 libxml2 = None,
29 libxslt = None,
30 zlib = None,
31 iconv = None,
32 )
33 for fn in ftp_listdir(url):
34 for libname in libs:
35 if fn.startswith(libname):
36 assert libs[libname] is None, 'duplicate listings?'
37 assert fn.endswith('.win32.zip')
38 libs[libname] = fn
39
40 if not os.path.exists(destdir): os.makedirs(destdir)
41 for libname, libfn in libs.items():
42 srcfile = urljoin(url, libfn)
43 destfile = os.path.join(destdir, libfn)
44 print('Retrieving "%s" to "%s"' % (srcfile, destfile))
45 urlretrieve(srcfile, destfile)
46 d = unpack_zipfile(destfile, destdir)
47 libs[libname] = d
48
49 return libs
50
51 def unpack_zipfile(zipfn, destdir):
52 assert zipfn.endswith('.zip')
53 import zipfile
54 print('Unpacking %s into %s' % (os.path.basename(zipfn), destdir))
55 f = zipfile.ZipFile(zipfn)
56 try:
57 f.extractall(path=destdir)
58 finally:
59 f.close()
60 edir = os.path.join(destdir, os.path.basename(zipfn)[:-len('.zip')])
61 assert os.path.exists(edir), 'missing: %s' % edir
62 return edir
63
64 def get_prebuilt_libxml2xslt(download_dir, static_include_dirs, static_library_dirs):
65 assert sys.platform.startswith('win')
66 libs = download_and_extract_zlatkovic_binaries(download_dir)
67 for libname, path in libs.items():
68 i = os.path.join(path, 'include')
69 l = os.path.join(path, 'lib')
70 assert os.path.exists(i), 'does not exist: %s' % i
71 assert os.path.exists(l), 'does not exist: %s' % l
72 static_include_dirs.append(i)
73 static_library_dirs.append(l)
74
75
76 ## Routines to download and build libxml2/xslt from sources:
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
77
78 LIBXML2_LOCATION = 'ftp://xmlsoft.org/libxml2/'
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
79 LIBICONV_LOCATION = 'ftp://ftp.gnu.org/pub/gnu/libiconv/'
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
80 match_libfile_version = re.compile('^[^-]*-([.0-9-]+)[.].*').match
81
82 def ftp_listdir(url):
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
83 import ftplib, posixpath
84 scheme, netloc, path, qs, fragment = urlsplit(url)
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
85 assert scheme.lower() == 'ftp'
86 server = ftplib.FTP(netloc)
87 server.login()
88 files = [posixpath.basename(fn) for fn in server.nlst(path)]
89 return files
90
91 def tryint(s):
92 try:
93 return int(s)
94 except ValueError:
95 return s
96
97 def download_libxml2(dest_dir, version=None):
98 """Downloads libxml2, returning the filename where the library was downloaded"""
99 version_re = re.compile(r'^LATEST_LIBXML2_IS_(.*)$')
100 filename = 'libxml2-%s.tar.gz'
101 return download_library(dest_dir, LIBXML2_LOCATION, 'libxml2',
102 version_re, filename, version=version)
103
104 def download_libxslt(dest_dir, version=None):
105 """Downloads libxslt, returning the filename where the library was downloaded"""
106 version_re = re.compile(r'^LATEST_LIBXSLT_IS_(.*)$')
107 filename = 'libxslt-%s.tar.gz'
108 return download_library(dest_dir, LIBXML2_LOCATION, 'libxslt',
109 version_re, filename, version=version)
110
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
111 def download_libiconv(dest_dir, version=None):
112 """Downloads libiconv, returning the filename where the library was downloaded"""
113 version_re = re.compile(r'^libiconv-([0-9.]+[0-9]).tar.gz$')
114 filename = 'libiconv-%s.tar.gz'
115 return download_library(dest_dir, LIBICONV_LOCATION, 'libiconv',
116 version_re, filename, version=version)
117
486113ca » matteobertozzi
2011-08-24 patch that copies headers only if --static is
118 def download_library(dest_dir, location, name, version_re, filename,
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
119 version=None):
120 if version is None:
121 try:
122 fns = ftp_listdir(location)
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
123 versions = []
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
124 for fn in fns:
125 match = version_re.search(fn)
126 if match:
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
127 version_string = match.group(1)
96769e12 » scoder
2010-03-25 [svn r4381] r5528@lenny: sbehnel | 2010-03-25 14:15:20 +0100
128 versions.append((tuple(map(tryint, version_string.split('.'))),
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
129 version_string))
130 if versions:
131 versions.sort()
132 version = versions[-1][-1]
133 print('Latest version of %s is %s' % (name, version))
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
134 else:
135 raise Exception(
136 "Could not find the most current version of the %s from the files: %s"
137 % (name, fns))
138 except IOError:
139 # network failure - maybe we have the files already?
140 latest = (0,0,0)
141 fns = os.listdir(dest_dir)
142 for fn in fns:
143 if fn.startswith(name+'-'):
144 match = match_libfile_version(fn)
145 if match:
3bb49169 » Stefan Behnel
2011-08-25 fix library version handling in buildlibxml.py
146 version_tuple = tuple(map(tryint, match.group(1).split('.')))
147 if version_tuple > latest:
148 latest = version_tuple
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
149 filename = fn
3bb49169 » Stefan Behnel
2011-08-25 fix library version handling in buildlibxml.py
150 version = None
151 if latest == (0,0,0):
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
152 raise
3bb49169 » Stefan Behnel
2011-08-25 fix library version handling in buildlibxml.py
153 if version:
154 filename = filename % version
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
155 full_url = urljoin(location, filename)
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
156 dest_filename = os.path.join(dest_dir, filename)
157 if os.path.exists(dest_filename):
158 print('Using existing %s downloaded into %s (delete this file if you want to re-download the package)'
159 % (name, dest_filename))
160 else:
161 print('Downloading %s into %s' % (name, dest_filename))
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
162 urlretrieve(full_url, dest_filename)
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
163 return dest_filename
164
165 ## Backported method of tarfile.TarFile.extractall (doesn't exist in 2.4):
166 def _extractall(self, path=".", members=None):
167 """Extract all members from the archive to the current working
168 directory and set owner, modification time and permissions on
169 directories afterwards. `path' specifies a different directory
170 to extract to. `members' is optional and must be a subset of the
171 list returned by getmembers().
172 """
173 import copy
174 is_ignored_file = re.compile(
175 r'''[\\/]((test|results?)[\\/]
176 |doc[\\/].*(Log|[.](out|imp|err|png|ent|gif|tif|pdf))$
177 |tests[\\/](.*[\\/])?(?!Makefile)[^\\/]*$
178 |python[\\/].*[.]py$
179 )
180 ''', re.X).search
181
182 directories = []
183
184 if members is None:
185 members = self
186
187 for tarinfo in members:
188 if is_ignored_file(tarinfo.name):
189 continue
190 if tarinfo.isdir():
191 # Extract directories with a safe mode.
192 directories.append((tarinfo.name, tarinfo))
193 tarinfo = copy.copy(tarinfo)
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
194 tarinfo.mode = 448 # 0700
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
195 self.extract(tarinfo, path)
196
197 # Reverse sort directories.
198 directories.sort()
199 directories.reverse()
200
201 # Set correct owner, mtime and filemode on directories.
202 for name, tarinfo in directories:
203 dirpath = os.path.join(path, name)
204 try:
205 self.chown(tarinfo, dirpath)
206 self.utime(tarinfo, dirpath)
207 self.chmod(tarinfo, dirpath)
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
208 except tarfile.ExtractError:
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
209 if self.errorlevel > 1:
210 raise
211 else:
91aa6381 » scoder
2009-06-02 [svn r4152] r5130@delle: sbehnel | 2009-06-02 21:05:27 +0200
212 self._dbg(1, "tarfile: %s" % sys.exc_info()[1])
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
213
214 def unpack_tarball(tar_filename, dest):
215 import tarfile
216 print('Unpacking %s into %s' % (os.path.basename(tar_filename), dest))
217 tar = tarfile.open(tar_filename)
218 base_dir = None
219 for member in tar:
220 base_name = member.name.split('/')[0]
221 if base_dir is None:
222 base_dir = base_name
223 else:
224 if base_dir != base_name:
225 print('Unexpected path in %s: %s' % (tar_filename, base_name))
226 _extractall(tar, dest)
227 tar.close()
228 return os.path.join(dest, base_dir)
229
230 def call_subprocess(cmd, **kw):
486113ca » matteobertozzi
2011-08-24 patch that copies headers only if --static is
231 try:
232 from subprocess import proc_call
233 except ImportError:
234 # no subprocess for Python 2.3
235 def proc_call(cmd, **kwargs):
236 cwd = kwargs.get('cwd', '.')
237 old_cwd = os.getcwd()
238 try:
239 os.chdir(cwd)
240 return os.system(' '.join(cmd))
241 finally:
242 os.chdir(old_cwd)
243
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
244 cwd = kw.get('cwd', '.')
245 cmd_desc = ' '.join(cmd)
246 log.info('Running "%s" in %s' % (cmd_desc, cwd))
486113ca » matteobertozzi
2011-08-24 patch that copies headers only if --static is
247 returncode = proc_call(cmd, **kw)
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
248 if returncode:
249 raise Exception('Command "%s" returned code %s' % (cmd_desc, returncode))
250
251 def safe_mkdir(dir):
252 if not os.path.exists(dir):
253 os.makedirs(dir)
254
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
255 def cmmi(configure_cmd, build_dir, multicore=None, **call_setup):
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
256 print('Starting build in %s' % build_dir)
257 call_subprocess(configure_cmd, cwd=build_dir, **call_setup)
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
258 if not multicore:
259 make_jobs = multi_make_options
260 elif int(multicore) > 1:
261 make_jobs = ['-j%s' % multicore]
262 else:
263 make_jobs = []
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
264 call_subprocess(
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
265 ['make'] + make_jobs,
266 cwd=build_dir, **call_setup)
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
267 call_subprocess(
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
268 ['make'] + make_jobs + ['install'],
269 cwd=build_dir, **call_setup)
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
270
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
271 def build_libxml2xslt(download_dir, build_dir,
272 static_include_dirs, static_library_dirs,
273 static_cflags, static_binaries,
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
274 libxml2_version=None, libxslt_version=None, libiconv_version=None,
275 multicore=None):
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
276 safe_mkdir(download_dir)
277 safe_mkdir(build_dir)
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
278 libiconv_dir = unpack_tarball(download_libiconv(download_dir, libiconv_version), build_dir)
279 libxml2_dir = unpack_tarball(download_libxml2(download_dir, libxml2_version), build_dir)
280 libxslt_dir = unpack_tarball(download_libxslt(download_dir, libxslt_version), build_dir)
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
281 prefix = os.path.join(os.path.abspath(build_dir), 'libxml2')
282 safe_mkdir(prefix)
283
3ea097db » scoder
2008-11-16 [svn r4006] r4862@delle: sbehnel | 2008-11-16 09:15:33 +0100
284 call_setup = {}
285 env_setup = None
e64c6e90 » scoder
2012-07-30 minor cleanup
286 if sys.platform == 'darwin':
92b74066 » scoder
2009-11-24 [svn r4273] r5333@delle: sbehnel | 2009-11-24 18:55:53 +0100
287 import platform
c037f61b » scoder
2012-07-30 code cleanup
288 # check target architectures on MacOS-X (ppc, i386, x86_64)
96769e12 » scoder
2010-03-25 [svn r4381] r5528@lenny: sbehnel | 2010-03-25 14:15:20 +0100
289 major_version, minor_version = tuple(map(int, platform.mac_ver()[0].split('.')[:2]))
3ea097db » scoder
2008-11-16 [svn r4006] r4862@delle: sbehnel | 2008-11-16 09:15:33 +0100
290 if major_version > 7:
c037f61b » scoder
2012-07-30 code cleanup
291 # Check to see if ppc is supported (XCode4 drops ppc support)
292 include_ppc = True
293 if os.path.exists('/usr/bin/xcodebuild'):
294 pipe = subprocess.Popen(['/usr/bin/xcodebuild', '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
295 out, err = pipe.communicate()
296 xcode_version = out.splitlines()[0]
297 # Also parse only first digit, because 3.2.1 can't be parsed nicely
298 if (xcode_version.startswith('Xcode') and
299 version.StrictVersion(xcode_version.split()[1]) >= version.StrictVersion('4.0')):
300 include_ppc = False
3a6bffbf » scoder
2012-07-30 exclude ppc target from MacOS-X build with XCode 4.0+, patch by John …
301 arch_string = ""
302 if include_ppc:
303 arch_string = "-arch ppc "
92b74066 » scoder
2009-11-24 [svn r4273] r5333@delle: sbehnel | 2009-11-24 18:55:53 +0100
304 if minor_version < 6:
106e76df » ento
2012-07-30 make buildlibxml.py respect environment variables
305 env_default = {
3a6bffbf » scoder
2012-07-30 exclude ppc target from MacOS-X build with XCode 4.0+, patch by John …
306 'CFLAGS' : arch_string + "-arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -O2",
307 'LDFLAGS' : arch_string + "-arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk",
92b74066 » scoder
2009-11-24 [svn r4273] r5333@delle: sbehnel | 2009-11-24 18:55:53 +0100
308 'MACOSX_DEPLOYMENT_TARGET' : "10.3"
106e76df » ento
2012-07-30 make buildlibxml.py respect environment variables
309 }
92b74066 » scoder
2009-11-24 [svn r4273] r5333@delle: sbehnel | 2009-11-24 18:55:53 +0100
310 else:
106e76df » ento
2012-07-30 make buildlibxml.py respect environment variables
311 env_default = {
3a6bffbf » scoder
2012-07-30 exclude ppc target from MacOS-X build with XCode 4.0+, patch by John …
312 'CFLAGS' : arch_string + "-arch i386 -arch x86_64 -O2",
313 'LDFLAGS' : arch_string + "-arch i386 -arch x86_64",
92b74066 » scoder
2009-11-24 [svn r4273] r5333@delle: sbehnel | 2009-11-24 18:55:53 +0100
314 'MACOSX_DEPLOYMENT_TARGET' : "10.6"
106e76df » ento
2012-07-30 make buildlibxml.py respect environment variables
315 }
316 env = os.environ.copy()
317 env_default.update(env)
318 call_setup['env'] = env_default
3ea097db » scoder
2008-11-16 [svn r4006] r4862@delle: sbehnel | 2008-11-16 09:15:33 +0100
319
320 configure_cmd = ['./configure',
bef5dd84 » scoder
2008-11-11 [svn r4003] r4858@delle: sbehnel | 2008-11-11 23:05:25 +0100
321 '--disable-dependency-tracking',
3ea097db » scoder
2008-11-16 [svn r4006] r4862@delle: sbehnel | 2008-11-16 09:15:33 +0100
322 '--disable-shared',
323 '--prefix=%s' % prefix,
324 ]
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
325
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
326 # build libiconv
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
327 cmmi(configure_cmd, libiconv_dir, multicore, **call_setup)
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
328
329 # build libxml2
330 libxml2_configure_cmd = configure_cmd + [
331 '--without-python',
332 '--with-iconv=%s' % prefix]
9bfc878b » scoder
2010-03-15 [svn r4377] r5521@lenny: sbehnel | 2010-03-15 13:50:10 +0100
333 try:
334 if libxml2_version and tuple(map(tryint, libxml2_version.split('.'))) >= (2,7,3):
335 libxml2_configure_cmd.append('--enable-rebuild-docs=no')
336 except Exception:
337 pass # this isn't required, so ignore any errors
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
338 cmmi(libxml2_configure_cmd, libxml2_dir, multicore, **call_setup)
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
339
340 # build libxslt
3ea097db » scoder
2008-11-16 [svn r4006] r4862@delle: sbehnel | 2008-11-16 09:15:33 +0100
341 libxslt_configure_cmd = configure_cmd + [
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
342 '--without-python',
3ea097db » scoder
2008-11-16 [svn r4006] r4862@delle: sbehnel | 2008-11-16 09:15:33 +0100
343 '--with-libxml-prefix=%s' % prefix,
344 ]
345 if sys.platform in ('darwin',):
346 libxslt_configure_cmd += [
347 '--without-crypto',
348 ]
efcc53c5 » scoder
2010-03-13 [svn r4375] r5514@lenny: sbehnel | 2010-03-13 15:05:54 +0100
349 cmmi(libxslt_configure_cmd, libxslt_dir, multicore, **call_setup)
3ea097db » scoder
2008-11-16 [svn r4006] r4862@delle: sbehnel | 2008-11-16 09:15:33 +0100
350
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
351 # collect build setup for lxml
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
352 xslt_config = os.path.join(prefix, 'bin', 'xslt-config')
353 xml2_config = os.path.join(prefix, 'bin', 'xml2-config')
354
355 lib_dir = os.path.join(prefix, 'lib')
356 static_include_dirs.extend([
ba024ace » scoder
2008-12-25 [svn r4053] r4939@delle: sbehnel | 2008-12-25 20:28:26 +0100
357 os.path.join(prefix, 'include'),
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
358 os.path.join(prefix, 'include', 'libxml2'),
359 os.path.join(prefix, 'include', 'libxslt'),
360 os.path.join(prefix, 'include', 'libexslt')])
361 static_library_dirs.append(lib_dir)
362
363 for filename in os.listdir(lib_dir):
543e679d » scoder
2009-08-14 [svn r4191] r5205@delle: sbehnel | 2009-08-14 22:15:36 +0200
364 if [l for l in ['iconv', 'libxml2', 'libxslt', 'libexslt'] if l in filename]:
b23b38b3 » scoder
2008-11-06 [svn r3994] r4835@delle: sbehnel | 2008-11-06 22:16:35 +0100
365 if [ext for ext in ['.a'] if filename.endswith(ext)]:
366 static_binaries.append(os.path.join(lib_dir,filename))
367
368 return (xml2_config, xslt_config)
Something went wrong with that request. Please try again.