Mercurial > cpython-lru_cache-weakref
annotate setup.py @ 62050:3797ee57d3d6
Merged revisions 81662 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81662 | ronald.oussoren | 2010-06-03 11:47:21 +0200 (Thu, 03 Jun 2010) | 9 lines
Fix for issue #7724: ensure that distutils and python's own setup.py
honor the MacOSX SDK when one is specified.
This is needed to be able to build using the 10.4u SDK while running
on OSX 10.6.
This is a fixed version of the patch in r80963, I've tested this patch
on OSX and Linux.
........
| author | Ronald Oussoren <ronaldoussoren@mac.com> |
|---|---|
| date | Thu, 03 Jun 2010 14:42:25 +0000 |
| parents | 1f7506f23771 |
| children | a360e114866b |
| rev | line source |
|---|---|
|
16287
4b72888c9e2f
Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents:
16283
diff
changeset
|
1 # Autodetecting setup.py script for building the Python extensions |
|
4b72888c9e2f
Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents:
16283
diff
changeset
|
2 # |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
3 |
|
16287
4b72888c9e2f
Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents:
16283
diff
changeset
|
4 __version__ = "$Revision$" |
|
4b72888c9e2f
Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents:
16283
diff
changeset
|
5 |
|
34125
1a938f456053
Change code in setup.py for parsing LDFLAGS and CPPFLAGS to use optparse
Brett Cannon <bcannon@gmail.com>
parents:
34124
diff
changeset
|
6 import sys, os, imp, re, optparse |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
7 from glob import glob |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58295
diff
changeset
|
8 import sysconfig |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
9 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
10 from distutils import log |
|
16750
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
11 from distutils import text_file |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
12 from distutils.errors import * |
| 15940 | 13 from distutils.core import Extension, setup |
| 14 from distutils.command.build_ext import build_ext | |
|
17886
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
15 from distutils.command.install import install |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
16 from distutils.command.install_lib import install_lib |
| 15940 | 17 |
|
58108
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
18 # Were we compiled --with-pydebug or with #define Py_DEBUG? |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
19 COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount') |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
20 |
| 15940 | 21 # This global variable is used to hold the list of modules to be disabled. |
| 22 disabled_module_list = [] | |
| 23 | |
|
21742
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
24 def add_dir_to_list(dirlist, dir): |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
25 """Add the directory 'dir' to the list 'dirlist' (at the front) if |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
26 1) 'dir' is not already in 'dirlist' |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
27 2) 'dir' actually exists, and is a directory.""" |
|
24008
44f7fc307673
Fixed a few showstoppers in the process of making MacPython use setup.py to build it's exension modules (in stead of relying on a private mechanism). It definitely doesn't work yet, but it looks promising.
Jack Jansen <jack.jansen@cwi.nl>
parents:
23970
diff
changeset
|
28 if dir is not None and os.path.isdir(dir) and dir not in dirlist: |
|
21742
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
29 dirlist.insert(0, dir) |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
30 |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
31 def macosx_sdk_root(): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
32 """ |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
33 Return the directory of the current OSX SDK, |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
34 or '/' if no SDK was specified. |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
35 """ |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
36 cflags = sysconfig.get_config_var('CFLAGS') |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
37 m = re.search(r'-isysroot\s+(\S+)', cflags) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
38 if m is None: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
39 sysroot = '/' |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
40 else: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
41 sysroot = m.group(1) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
42 return sysroot |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
43 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
44 def is_macosx_sdk_path(path): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
45 """ |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
46 Returns True if 'path' can be located in an OSX SDK |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
47 """ |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
48 return path.startswith('/usr/') or path.startswith('/System/') |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
49 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
50 def find_file(filename, std_dirs, paths): |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
51 """Searches for the directory where a given file is located, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
52 and returns a possibly-empty list of additional directories, or None |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
53 if the file couldn't be found at all. |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
54 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
55 'filename' is the name of a file, such as readline.h or libcrypto.a. |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
56 'std_dirs' is the list of standard system directories; if the |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
57 file is found in one of them, no additional directives are needed. |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
58 'paths' is a list of additional locations to check; if the file is |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
59 found in one of them, the resulting list will contain the directory. |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
60 """ |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
61 if sys.platform == 'darwin': |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
62 # Honor the MacOSX SDK setting when one was specified. |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
63 # An SDK is a directory with the same structure as a real |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
64 # system, but with only header files and libraries. |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
65 sysroot = macosx_sdk_root() |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
66 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
67 # Check the standard locations |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
68 for dir in std_dirs: |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
69 f = os.path.join(dir, filename) |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
70 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
71 if sys.platform == 'darwin' and is_macosx_sdk_path(dir): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
72 f = os.path.join(sysroot, dir[1:], filename) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
73 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
74 if os.path.exists(f): return [] |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
75 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
76 # Check the additional directories |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
77 for dir in paths: |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
78 f = os.path.join(dir, filename) |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
79 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
80 if sys.platform == 'darwin' and is_macosx_sdk_path(dir): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
81 f = os.path.join(sysroot, dir[1:], filename) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
82 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
83 if os.path.exists(f): |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
84 return [dir] |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
85 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
86 # Not found anywhere |
| 15940 | 87 return None |
| 88 | |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
89 def find_library_file(compiler, libname, std_dirs, paths): |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
90 result = compiler.find_library_file(std_dirs + paths, libname) |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
91 if result is None: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
92 return None |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
93 |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
94 if sys.platform == 'darwin': |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
95 sysroot = macosx_sdk_root() |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
96 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
97 # Check whether the found file is in one of the standard directories |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
98 dirname = os.path.dirname(result) |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
99 for p in std_dirs: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
100 # Ensure path doesn't end with path separator |
|
29002
50841898cc19
p.strip(os.sep) can't have possibly worked. It would have stripped both
Skip Montanaro <skip@pobox.com>
parents:
29001
diff
changeset
|
101 p = p.rstrip(os.sep) |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
102 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
103 if sys.platform == 'darwin' and is_macosx_sdk_path(p): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
104 if os.path.join(sysroot, p[1:]) == dirname: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
105 return [ ] |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
106 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
107 if p == dirname: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
108 return [ ] |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
109 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
110 # Otherwise, it must have been in one of the additional directories, |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
111 # so we have to figure out which one. |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
112 for p in paths: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
113 # Ensure path doesn't end with path separator |
|
29002
50841898cc19
p.strip(os.sep) can't have possibly worked. It would have stripped both
Skip Montanaro <skip@pobox.com>
parents:
29001
diff
changeset
|
114 p = p.rstrip(os.sep) |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
115 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
116 if sys.platform == 'darwin' and is_macosx_sdk_path(p): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
117 if os.path.join(sysroot, p[1:]) == dirname: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
118 return [ p ] |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
119 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
120 if p == dirname: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
121 return [p] |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
122 else: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
123 assert False, "Internal error: Path not found in std_dirs or paths" |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
124 |
| 15940 | 125 def module_enabled(extlist, modname): |
| 126 """Returns whether the module 'modname' is present in the list | |
| 127 of extensions 'extlist'.""" | |
| 128 extlist = [ext for ext in extlist if ext.name == modname] | |
| 129 return len(extlist) | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
130 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
131 def find_module_file(module, dirlist): |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
132 """Find a module in a set of possible folders. If it is not found |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
133 return the unadorned filename""" |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
134 list = find_file(module, [], dirlist) |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
135 if not list: |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
136 return module |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
137 if len(list) > 1: |
|
27989
e7b26c3f356f
Don't use self.announce() in a function that's not a method.
Guido van Rossum <guido@python.org>
parents:
27930
diff
changeset
|
138 log.info("WARNING: multiple copies of %s found"%module) |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
139 return os.path.join(list[0], module) |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
140 |
| 15940 | 141 class PyBuildExt(build_ext): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
142 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
143 def __init__(self, dist): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
144 build_ext.__init__(self, dist) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
145 self.failed = [] |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
146 |
| 15940 | 147 def build_extensions(self): |
| 148 | |
| 149 # Detect which modules should be compiled | |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
150 missing = self.detect_modules() |
| 15940 | 151 |
| 152 # Remove modules that are present on the disabled list | |
|
44742
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
153 extensions = [ext for ext in self.extensions |
|
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
154 if ext.name not in disabled_module_list] |
|
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
155 # move ctypes to the end, it depends on other modules |
|
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
156 ext_map = dict((ext.name, i) for i, ext in enumerate(extensions)) |
|
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
157 if "_ctypes" in ext_map: |
|
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
158 ctypes = extensions.pop(ext_map["_ctypes"]) |
|
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
159 extensions.append(ctypes) |
|
14d4104976fc
Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44160
diff
changeset
|
160 self.extensions = extensions |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
161 |
| 15940 | 162 # Fix up the autodetected modules, prefixing all the source files |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
163 # with Modules/. |
|
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
164 srcdir = sysconfig.get_config_var('srcdir') |
| 25790 | 165 if not srcdir: |
| 166 # Maybe running on Windows but not using CYGWIN? | |
| 167 raise ValueError("No source directory; cannot proceed.") | |
|
51359
e6a14688580e
Distutils apparently requires an absolute path so provide one.
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
51349
diff
changeset
|
168 srcdir = os.path.abspath(srcdir) |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
169 moddirlist = [os.path.join(srcdir, 'Modules')] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
170 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
171 # Platform-dependent module source and include directories |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
172 platform = self.get_platform() |
| 15940 | 173 |
|
16860
cd4085cee309
Fix for bug #405007: prefix subdir to scripts in order to build in
Andrew M. Kuchling <amk@amk.ca>
parents:
16844
diff
changeset
|
174 # Fix up the paths for scripts, too |
|
cd4085cee309
Fix for bug #405007: prefix subdir to scripts in order to build in
Andrew M. Kuchling <amk@amk.ca>
parents:
16844
diff
changeset
|
175 self.distribution.scripts = [os.path.join(srcdir, filename) |
|
cd4085cee309
Fix for bug #405007: prefix subdir to scripts in order to build in
Andrew M. Kuchling <amk@amk.ca>
parents:
16844
diff
changeset
|
176 for filename in self.distribution.scripts] |
|
cd4085cee309
Fix for bug #405007: prefix subdir to scripts in order to build in
Andrew M. Kuchling <amk@amk.ca>
parents:
16844
diff
changeset
|
177 |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
178 # Python header files |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
179 headers = [sysconfig.get_config_h_filename()] |
|
58558
5aa90248a99f
Merged revisions 77704,77752 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58295
diff
changeset
|
180 headers += glob(os.path.join(sysconfig.get_path('platinclude'), "*.h")) |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
181 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
182 for ext in self.extensions[:]: |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
183 ext.sources = [ find_module_file(filename, moddirlist) |
| 15940 | 184 for filename in ext.sources ] |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
185 if ext.depends is not None: |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
186 ext.depends = [find_module_file(filename, moddirlist) |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
187 for filename in ext.depends] |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
188 else: |
|
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
189 ext.depends = [] |
|
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
190 # re-compile extensions if a header file has been changed |
|
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
191 ext.depends.extend(headers) |
|
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
192 |
|
16038
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
193 # If a module has already been built statically, |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
194 # don't build it here |
|
16038
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
195 if ext.name in sys.builtin_module_names: |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
196 self.extensions.remove(ext) |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
197 |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
198 # Parse Modules/Setup and Modules/Setup.local to figure out which |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
199 # modules are turned on in the file. |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
200 remove_modules = [] |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
201 for filename in ('Modules/Setup', 'Modules/Setup.local'): |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
202 input = text_file.TextFile(filename, join_lines=1) |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
203 while 1: |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
204 line = input.readline() |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
205 if not line: break |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
206 line = line.split() |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
207 remove_modules.append(line[0]) |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
208 input.close() |
|
36162
1e595b6c924e
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
36156
diff
changeset
|
209 |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
210 for ext in self.extensions[:]: |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
211 if ext.name in remove_modules: |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
212 self.extensions.remove(ext) |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
213 |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
214 # When you run "make CC=altcc" or something similar, you really want |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
215 # those environment variables passed into the setup.py phase. Here's |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
216 # a small set of useful ones. |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
217 compiler = os.environ.get('CC') |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
218 args = {} |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
219 # unfortunately, distutils doesn't let us provide separate C and C++ |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
220 # compilers |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
221 if compiler is not None: |
|
34930
294dabcb379b
Make parse_makefile fallback to environment variables if nothing is
Martin v. Löwis <martin@v.loewis.de>
parents:
34911
diff
changeset
|
222 (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS') |
|
294dabcb379b
Make parse_makefile fallback to environment variables if nothing is
Martin v. Löwis <martin@v.loewis.de>
parents:
34911
diff
changeset
|
223 args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
224 self.compiler_obj.set_executables(**args) |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
225 |
| 15940 | 226 build_ext.build_extensions(self) |
| 227 | |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
228 longest = max([len(e.name) for e in self.extensions]) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
229 if self.failed: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
230 longest = max(longest, max([len(name) for name in self.failed])) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
231 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
232 def print_three_column(lst): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
233 lst.sort(key=str.lower) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
234 # guarantee zip() doesn't drop anything |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
235 while len(lst) % 3: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
236 lst.append("") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
237 for e, f, g in zip(lst[::3], lst[1::3], lst[2::3]): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
238 print("%-*s %-*s %-*s" % (longest, e, longest, f, |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
239 longest, g)) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
240 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
241 if missing: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
242 print() |
|
50404
d32a669f96da
Merged revisions 68113 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
50049
diff
changeset
|
243 print("Python build finished, but the necessary bits to build " |
|
d32a669f96da
Merged revisions 68113 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
50049
diff
changeset
|
244 "these modules were not found:") |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
245 print_three_column(missing) |
|
42775
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
246 print("To find the necessary bits, look in setup.py in" |
|
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
247 " detect_modules() for the module's name.") |
|
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
248 print() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
249 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
250 if self.failed: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
251 failed = self.failed[:] |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
252 print() |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
253 print("Failed to build these modules:") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
254 print_three_column(failed) |
|
42775
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
255 print() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
256 |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
257 def build_extension(self, ext): |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
258 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
259 if ext.name == '_ctypes': |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
260 if not self.configure_ctypes(ext): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
261 return |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
262 |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
263 try: |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
264 build_ext.build_extension(self, ext) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
40582
diff
changeset
|
265 except (CCompilerError, DistutilsError) as why: |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
266 self.announce('WARNING: building of extension "%s" failed: %s' % |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
267 (ext.name, sys.exc_info()[1])) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
268 self.failed.append(ext.name) |
|
17890
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
269 return |
|
20815
57ab65c2f170
The import check in setup.py fails on Mac OS X for Carbon-based modules
Jack Jansen <jack.jansen@cwi.nl>
parents:
20789
diff
changeset
|
270 # Workaround for Mac OS X: The Carbon-based modules cannot be |
|
57ab65c2f170
The import check in setup.py fails on Mac OS X for Carbon-based modules
Jack Jansen <jack.jansen@cwi.nl>
parents:
20789
diff
changeset
|
271 # reliably imported into a command-line Python |
|
57ab65c2f170
The import check in setup.py fails on Mac OS X for Carbon-based modules
Jack Jansen <jack.jansen@cwi.nl>
parents:
20789
diff
changeset
|
272 if 'Carbon' in ext.extra_link_args: |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
273 self.announce( |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
274 'WARNING: skipping import check for Carbon-based "%s"' % |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
275 ext.name) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
276 return |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
277 |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
278 if self.get_platform() == 'darwin' and ( |
|
48490
8e9e65383afb
sys.maxint -> sys.maxsize
Benjamin Peterson <benjamin@python.org>
parents:
48485
diff
changeset
|
279 sys.maxsize > 2**32 and '-arch' in ext.extra_link_args): |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
280 # Don't bother doing an import check when an extension was |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
281 # build with an explicit '-arch' flag on OSX. That's currently |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
282 # only used to build 32-bit only extensions in a 4-way |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
283 # universal build and loading 32-bit code into a 64-bit |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
284 # process will fail. |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
285 self.announce( |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
286 'WARNING: skipping import check for "%s"' % |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
287 ext.name) |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
288 return |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
289 |
|
23513
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
290 # Workaround for Cygwin: Cygwin currently has fork issues when many |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
291 # modules have been imported |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
292 if self.get_platform() == 'cygwin': |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
293 self.announce('WARNING: skipping import check for Cygwin-based "%s"' |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
294 % ext.name) |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
295 return |
| 21788 | 296 ext_filename = os.path.join( |
| 297 self.build_lib, | |
| 298 self.get_ext_filename(self.get_ext_fullname(ext.name))) | |
|
48514
79f84bc2b149
Fix bug 3375 - _multiprocessing.so build problems on OS X.
Guido van Rossum <guido@python.org>
parents:
48490
diff
changeset
|
299 |
|
79f84bc2b149
Fix bug 3375 - _multiprocessing.so build problems on OS X.
Guido van Rossum <guido@python.org>
parents:
48490
diff
changeset
|
300 # If the build directory didn't exist when setup.py was |
|
79f84bc2b149
Fix bug 3375 - _multiprocessing.so build problems on OS X.
Guido van Rossum <guido@python.org>
parents:
48490
diff
changeset
|
301 # started, sys.path_importer_cache has a negative result |
|
79f84bc2b149
Fix bug 3375 - _multiprocessing.so build problems on OS X.
Guido van Rossum <guido@python.org>
parents:
48490
diff
changeset
|
302 # cached. Clear that cache before trying to import. |
|
79f84bc2b149
Fix bug 3375 - _multiprocessing.so build problems on OS X.
Guido van Rossum <guido@python.org>
parents:
48490
diff
changeset
|
303 sys.path_importer_cache.clear() |
|
79f84bc2b149
Fix bug 3375 - _multiprocessing.so build problems on OS X.
Guido van Rossum <guido@python.org>
parents:
48490
diff
changeset
|
304 |
|
17890
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
305 try: |
| 21788 | 306 imp.load_dynamic(ext.name, ext_filename) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
40582
diff
changeset
|
307 except ImportError as why: |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
308 self.failed.append(ext.name) |
|
28111
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
309 self.announce('*** WARNING: renaming "%s" since importing it' |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
310 ' failed: %s' % (ext.name, why), level=3) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
311 assert not self.inplace |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
312 basename, tail = os.path.splitext(ext_filename) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
313 newname = basename + "_failed" + tail |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
314 if os.path.exists(newname): |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
315 os.remove(newname) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
316 os.rename(ext_filename, newname) |
|
21959
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
317 |
|
28111
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
318 # XXX -- This relies on a Vile HACK in |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
319 # distutils.command.build_ext.build_extension(). The |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
320 # _built_objects attribute is stored there strictly for |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
321 # use here. |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
322 # If there is a failure, _built_objects may not be there, |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
323 # so catch the AttributeError and move on. |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
324 try: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
325 for filename in self._built_objects: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
326 os.remove(filename) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
327 except AttributeError: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
328 self.announce('unable to remove files (ignored)') |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
329 except: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
330 exc_type, why, tb = sys.exc_info() |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
331 self.announce('*** WARNING: importing extension "%s" ' |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
332 'failed with %s: %s' % (ext.name, exc_type, why), |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
333 level=3) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
334 self.failed.append(ext.name) |
|
21277
f702ff390e4d
Visious hackery to solve a build-control problem related to our use of
Fred Drake <fdrake@acm.org>
parents:
21274
diff
changeset
|
335 |
|
29508
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
336 def get_platform(self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
337 # Get value of sys.platform |
|
56726
14b55a4e8725
Remove AtheOS support, as per PEP 11 (which claims that all code was removed in Python 3.0).
Antoine Pitrou <solipsis@pitrou.net>
parents:
56135
diff
changeset
|
338 for platform in ['cygwin', 'darwin', 'osf1']: |
|
29508
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
339 if sys.platform.startswith(platform): |
|
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
340 return platform |
|
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
341 return sys.platform |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
342 |
| 15940 | 343 def detect_modules(self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
344 # Ensure that /usr/local is always used |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
345 add_dir_to_list(self.compiler_obj.library_dirs, '/usr/local/lib') |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
346 add_dir_to_list(self.compiler_obj.include_dirs, '/usr/local/include') |
|
21742
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
347 |
|
34124
4e38ecd1912e
setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents:
33986
diff
changeset
|
348 # Add paths specified in the environment variables LDFLAGS and |
|
34288
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
349 # CPPFLAGS for header and library files. |
|
34186
521bec60eb30
Switch from getting LDFLAGS and CPPFLAGS from the environment to the Makefile.
Brett Cannon <bcannon@gmail.com>
parents:
34158
diff
changeset
|
350 # We must get the values from the Makefile and not the environment |
|
521bec60eb30
Switch from getting LDFLAGS and CPPFLAGS from the environment to the Makefile.
Brett Cannon <bcannon@gmail.com>
parents:
34158
diff
changeset
|
351 # directly since an inconsistently reproducible issue comes up where |
|
521bec60eb30
Switch from getting LDFLAGS and CPPFLAGS from the environment to the Makefile.
Brett Cannon <bcannon@gmail.com>
parents:
34158
diff
changeset
|
352 # the environment variable is not set even though the value were passed |
|
34288
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
353 # into configure and stored in the Makefile (issue found on OS X 10.3). |
|
34124
4e38ecd1912e
setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents:
33986
diff
changeset
|
354 for env_var, arg_name, dir_list in ( |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
355 ('LDFLAGS', '-R', self.compiler_obj.runtime_library_dirs), |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
356 ('LDFLAGS', '-L', self.compiler_obj.library_dirs), |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
357 ('CPPFLAGS', '-I', self.compiler_obj.include_dirs)): |
|
34186
521bec60eb30
Switch from getting LDFLAGS and CPPFLAGS from the environment to the Makefile.
Brett Cannon <bcannon@gmail.com>
parents:
34158
diff
changeset
|
358 env_val = sysconfig.get_config_var(env_var) |
|
34124
4e38ecd1912e
setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents:
33986
diff
changeset
|
359 if env_val: |
|
34288
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
360 # To prevent optparse from raising an exception about any |
| 49458 | 361 # options in env_val that it doesn't know about we strip out |
|
34288
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
362 # all double dashes and any dashes followed by a character |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
363 # that is not for the option we are dealing with. |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
364 # |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
365 # Please note that order of the regex is important! We must |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
366 # strip out double-dashes first so that we don't end up with |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
367 # substituting "--Long" to "-Long" and thus lead to "ong" being |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
368 # used for a library directory. |
|
42775
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
369 env_val = re.sub(r'(^|\s+)-(-|(?!%s))' % arg_name[1], |
|
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
370 ' ', env_val) |
|
34125
1a938f456053
Change code in setup.py for parsing LDFLAGS and CPPFLAGS to use optparse
Brett Cannon <bcannon@gmail.com>
parents:
34124
diff
changeset
|
371 parser = optparse.OptionParser() |
|
34288
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
372 # Make sure that allowing args interspersed with options is |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
373 # allowed |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
374 parser.allow_interspersed_args = True |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
375 parser.error = lambda msg: None |
|
34125
1a938f456053
Change code in setup.py for parsing LDFLAGS and CPPFLAGS to use optparse
Brett Cannon <bcannon@gmail.com>
parents:
34124
diff
changeset
|
376 parser.add_option(arg_name, dest="dirs", action="append") |
|
1a938f456053
Change code in setup.py for parsing LDFLAGS and CPPFLAGS to use optparse
Brett Cannon <bcannon@gmail.com>
parents:
34124
diff
changeset
|
377 options = parser.parse_args(env_val.split())[0] |
|
34306
f1c35da64d55
Since it is a possibility that LDFLAGS or CPPFLAGS were set with options that
Brett Cannon <bcannon@gmail.com>
parents:
34288
diff
changeset
|
378 if options.dirs: |
|
45134
bdcf40d1b38e
Merged revisions 60481,60485,60489-60520,60523-60527,60530-60533,60535-60538,60540-60551 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45044
diff
changeset
|
379 for directory in reversed(options.dirs): |
|
34306
f1c35da64d55
Since it is a possibility that LDFLAGS or CPPFLAGS were set with options that
Brett Cannon <bcannon@gmail.com>
parents:
34288
diff
changeset
|
380 add_dir_to_list(dir_list, directory) |
|
27002
293eda3e69f5
Split OPT make variable into OPT and BASECFLAGS. The latter contains those
Skip Montanaro <skip@pobox.com>
parents:
26989
diff
changeset
|
381 |
| 24477 | 382 if os.path.normpath(sys.prefix) != '/usr': |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
383 add_dir_to_list(self.compiler_obj.library_dirs, |
| 24477 | 384 sysconfig.get_config_var("LIBDIR")) |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
385 add_dir_to_list(self.compiler_obj.include_dirs, |
| 24477 | 386 sysconfig.get_config_var("INCLUDEDIR")) |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
387 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
388 # lib_dirs and inc_dirs are used to search for files; |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
389 # if a file is found in one of those directories, it can |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
390 # be assumed that no additional -I,-L directives are needed. |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
391 lib_dirs = self.compiler_obj.library_dirs + [ |
|
33986
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
392 '/lib64', '/usr/lib64', |
|
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
393 '/lib', '/usr/lib', |
|
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
394 ] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
395 inc_dirs = self.compiler_obj.include_dirs + ['/usr/include'] |
| 15940 | 396 exts = [] |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
397 missing = [] |
| 15940 | 398 |
|
34911
87719ae9288c
Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents:
34717
diff
changeset
|
399 config_h = sysconfig.get_config_h_filename() |
|
87719ae9288c
Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents:
34717
diff
changeset
|
400 config_h_vars = sysconfig.parse_config_h(open(config_h)) |
|
87719ae9288c
Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents:
34717
diff
changeset
|
401 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
402 platform = self.get_platform() |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
403 srcdir = sysconfig.get_config_var('srcdir') |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
404 |
|
30770
e0841b5cf2fd
[Patch #772077 from Tim Rice] Fix for compiling the readline module on UnixWare; fix goofy comment indent. 2.3 bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
30731
diff
changeset
|
405 # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) |
|
e0841b5cf2fd
[Patch #772077 from Tim Rice] Fix for compiling the readline module on UnixWare; fix goofy comment indent. 2.3 bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
30731
diff
changeset
|
406 if platform in ['osf1', 'unixware7', 'openunix8']: |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
407 lib_dirs += ['/usr/ccs/lib'] |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
408 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
409 if platform == 'darwin': |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
410 # This should work on any unixy platform ;-) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
411 # If the user has bothered specifying additional -I and -L flags |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
412 # in OPT and LDFLAGS we might as well use them here. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
413 # NOTE: using shlex.split would technically be more correct, but |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
414 # also gives a bootstrap problem. Let's hope nobody uses directories |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
415 # with whitespace in the name to store libraries. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
416 cflags, ldflags = sysconfig.get_config_vars( |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
417 'CFLAGS', 'LDFLAGS') |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
418 for item in cflags.split(): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
419 if item.startswith('-I'): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
420 inc_dirs.append(item[2:]) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
421 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
422 for item in ldflags.split(): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
423 if item.startswith('-L'): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
424 lib_dirs.append(item[2:]) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
425 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
426 # Check for MacOS X, which doesn't need libm.a at all |
|
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
427 math_libs = ['m'] |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
428 if platform == 'darwin': |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
429 math_libs = [] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
430 |
| 15940 | 431 # XXX Omitted modules: gl, pure, dl, SGI-specific modules |
| 432 | |
| 433 # | |
| 434 # The following modules are all pretty straightforward, and compile | |
| 435 # on pretty much any POSIXish platform. | |
| 436 # | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
437 |
| 15940 | 438 # Some modules that are normally always on: |
|
16384
c898ceba2261
Add entries for the weakref module to the build control.
Fred Drake <fdrake@acm.org>
parents:
16287
diff
changeset
|
439 exts.append( Extension('_weakref', ['_weakref.c']) ) |
| 15940 | 440 |
| 441 # array objects | |
| 442 exts.append( Extension('array', ['arraymodule.c']) ) | |
| 443 # complex math library functions | |
|
57866
9751ddcc1882
Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57762
diff
changeset
|
444 exts.append( Extension('cmath', ['cmathmodule.c', '_math.c'], |
|
9751ddcc1882
Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57762
diff
changeset
|
445 depends=['_math.h'], |
|
16176
2dcbc1dfca9c
Fix for MacOS X/Darwin: it doesn't need -lm, ever. (Noted by Steven Majewski)
Andrew M. Kuchling <amk@amk.ca>
parents:
16100
diff
changeset
|
446 libraries=math_libs) ) |
| 15940 | 447 # math library functions, e.g. sin() |
|
57758
b45ca11b9a3e
Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57490
diff
changeset
|
448 exts.append( Extension('math', ['mathmodule.c', '_math.c'], |
|
57762
b1896620c296
Merged revisions 76865 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57758
diff
changeset
|
449 depends=['_math.h'], |
|
16176
2dcbc1dfca9c
Fix for MacOS X/Darwin: it doesn't need -lm, ever. (Noted by Steven Majewski)
Andrew M. Kuchling <amk@amk.ca>
parents:
16100
diff
changeset
|
450 libraries=math_libs) ) |
| 15940 | 451 # time operations and variables |
|
16176
2dcbc1dfca9c
Fix for MacOS X/Darwin: it doesn't need -lm, ever. (Noted by Steven Majewski)
Andrew M. Kuchling <amk@amk.ca>
parents:
16100
diff
changeset
|
452 exts.append( Extension('time', ['timemodule.c'], |
|
2dcbc1dfca9c
Fix for MacOS X/Darwin: it doesn't need -lm, ever. (Noted by Steven Majewski)
Andrew M. Kuchling <amk@amk.ca>
parents:
16100
diff
changeset
|
453 libraries=math_libs) ) |
|
32400
6ce67f7b0430
Add compilation of timemodule.c with datetimemodule.c to get
Brett Cannon <bcannon@gmail.com>
parents:
32244
diff
changeset
|
454 exts.append( Extension('datetime', ['datetimemodule.c', 'timemodule.c'], |
|
26674
c7ec8ad0234f
Build the datetime module for *n*x.
Guido van Rossum <guido@python.org>
parents:
26626
diff
changeset
|
455 libraries=math_libs) ) |
|
46034
0a485593ae1c
Merged revisions 61724-61725,61731-61735,61737,61739,61741,61743-61744,61753,61761,61765-61767,61769,61773,61776-61778,61780-61783,61788,61793,61796,61807,61813 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45659
diff
changeset
|
456 # fast iterator tools implemented in C |
|
0a485593ae1c
Merged revisions 61724-61725,61731-61735,61737,61739,61741,61743-61744,61753,61761,61765-61767,61769,61773,61776-61778,61780-61783,61788,61793,61796,61807,61813 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45659
diff
changeset
|
457 exts.append( Extension("itertools", ["itertoolsmodule.c"]) ) |
|
26829
f64c96922708
SF patch 658251: Install a C implementation of the Mersenne Twister as the
Raymond Hettinger <python@rcn.com>
parents:
26724
diff
changeset
|
458 # random number generator implemented in C |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
459 exts.append( Extension("_random", ["_randommodule.c"]) ) |
|
31436
63fa60f2d61c
* Move collections.deque() in from the sandbox
Raymond Hettinger <python@rcn.com>
parents:
31386
diff
changeset
|
460 # high-performance collections |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
461 exts.append( Extension("_collections", ["_collectionsmodule.c"]) ) |
|
31353
ed20259a1ea5
SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents:
31090
diff
changeset
|
462 # bisect |
|
ed20259a1ea5
SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents:
31090
diff
changeset
|
463 exts.append( Extension("_bisect", ["_bisectmodule.c"]) ) |
|
30875
2acd28bd4d0f
Convert heapq.py to a C implementation.
Raymond Hettinger <python@rcn.com>
parents:
30770
diff
changeset
|
464 # heapq |
|
31931
63b68cb2b442
* Restore the pure python version of heapq.py.
Raymond Hettinger <python@rcn.com>
parents:
31742
diff
changeset
|
465 exts.append( Extension("_heapq", ["_heapqmodule.c"]) ) |
| 15940 | 466 # operator.add() and similar goodies |
| 467 exts.append( Extension('operator', ['operator.c']) ) | |
|
47645
0ae50aa7d97c
Restore _pickle module accelerator module.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
47634
diff
changeset
|
468 # C-optimized pickle replacement |
|
0ae50aa7d97c
Restore _pickle module accelerator module.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
47634
diff
changeset
|
469 exts.append( Extension("_pickle", ["_pickle.c"]) ) |
|
41253
f29f1a8b7869
Patch #1680961: remove sys.exitfunc and replace it with a private C API. Also, reimplement atexit in C so it can take advantage of this private API.
Collin Winter <collinw@gmail.com>
parents:
41064
diff
changeset
|
470 # atexit |
|
f29f1a8b7869
Patch #1680961: remove sys.exitfunc and replace it with a private C API. Also, reimplement atexit in C so it can take advantage of this private API.
Collin Winter <collinw@gmail.com>
parents:
41064
diff
changeset
|
471 exts.append( Extension("atexit", ["atexitmodule.c"]) ) |
|
46737
9f45979558a9
Merged revisions 62734,62736,62748,62769 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46694
diff
changeset
|
472 # _json speedups |
|
9f45979558a9
Merged revisions 62734,62736,62748,62769 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46694
diff
changeset
|
473 exts.append( Extension("_json", ["_json.c"]) ) |
|
16416
7d39d9dcf2d6
Whitespace correction...
Marc-André Lemburg <mal@egenix.com>
parents:
16415
diff
changeset
|
474 # Python C API test module |
|
51520
94d9d525401c
Merged revisions 69500 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
51359
diff
changeset
|
475 exts.append( Extension('_testcapi', ['_testcapimodule.c'], |
|
94d9d525401c
Merged revisions 69500 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
51359
diff
changeset
|
476 depends=['testcapi_long.h']) ) |
|
43527
2b746f28b399
remove hotshot profiler from Py3k
Fred Drake <fdrake@acm.org>
parents:
43480
diff
changeset
|
477 # profiler (_lsprof is for cProfile.py) |
| 36459 | 478 exts.append( Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']) ) |
| 15940 | 479 # static Unicode character database |
|
41818
bfc73d849e28
The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents:
41749
diff
changeset
|
480 exts.append( Extension('unicodedata', ['unicodedata.c']) ) |
| 15940 | 481 |
| 482 # Modules with some UNIX dependencies -- on by default: | |
| 483 # (If you have a really backward UNIX, select and socket may not be | |
| 484 # supported...) | |
| 485 | |
| 486 # fcntl(2) and ioctl(2) | |
| 487 exts.append( Extension('fcntl', ['fcntlmodule.c']) ) | |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
488 # pwd(3) |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
489 exts.append( Extension('pwd', ['pwdmodule.c']) ) |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
490 # grp(3) |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
491 exts.append( Extension('grp', ['grpmodule.c']) ) |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
492 # spwd, shadow passwords |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
493 if (config_h_vars.get('HAVE_GETSPNAM', False) or |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
494 config_h_vars.get('HAVE_GETSPENT', False)): |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
495 exts.append( Extension('spwd', ['spwdmodule.c']) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
496 else: |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
497 missing.append('spwd') |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
498 |
| 15940 | 499 # select(2); not on ancient System V |
| 500 exts.append( Extension('select', ['selectmodule.c']) ) | |
| 501 | |
| 502 # Fred Drake's interface to the Python parser | |
| 503 exts.append( Extension('parser', ['parsermodule.c']) ) | |
| 504 | |
| 505 # Memory-mapped files (also works on Win32). | |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
506 exts.append( Extension('mmap', ['mmapmodule.c']) ) |
| 15940 | 507 |
|
33370
af65004f622f
Remove mpz, rotor, xreadlines modules
Andrew M. Kuchling <amk@amk.ca>
parents:
33294
diff
changeset
|
508 # Lance Ellinghaus's syslog module |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
509 # syslog daemon interface |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
510 exts.append( Extension('syslog', ['syslogmodule.c']) ) |
| 15940 | 511 |
| 512 # | |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
513 # Here ends the simple stuff. From here on, modules need certain |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
514 # libraries, are platform-specific, or present other surprises. |
| 15940 | 515 # |
| 516 | |
| 517 # Multimedia modules | |
| 518 # These don't work for 64-bit platforms!!! | |
| 519 # These represent audio samples or images as strings: | |
| 520 | |
|
32763
8ad5a1620092
Move comment that goes along with audioop
Neal Norwitz <nnorwitz@gmail.com>
parents:
32762
diff
changeset
|
521 # Operations on audio samples |
|
32797
ea54fdb86530
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
32765
diff
changeset
|
522 # According to #993173, this one should actually work fine on |
|
32762
76ad814bc67c
Patch #993173: Enable audioop on 64-bit platforms.
Martin v. Löwis <martin@v.loewis.de>
parents:
32735
diff
changeset
|
523 # 64-bit platforms. |
|
76ad814bc67c
Patch #993173: Enable audioop on 64-bit platforms.
Martin v. Löwis <martin@v.loewis.de>
parents:
32735
diff
changeset
|
524 exts.append( Extension('audioop', ['audioop.c']) ) |
|
76ad814bc67c
Patch #993173: Enable audioop on 64-bit platforms.
Martin v. Löwis <martin@v.loewis.de>
parents:
32735
diff
changeset
|
525 |
| 15940 | 526 # readline |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
527 do_readline = self.compiler_obj.find_library_file(lib_dirs, 'readline') |
|
56135
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
528 if platform == 'darwin': |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
529 os_release = int(os.uname()[2].split('.')[0]) |
|
59460
445f801ca2d0
Merged revisions 78784 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59372
diff
changeset
|
530 dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') |
|
445f801ca2d0
Merged revisions 78784 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59372
diff
changeset
|
531 if dep_target and dep_target.split('.') < ['10', '5']: |
|
445f801ca2d0
Merged revisions 78784 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59372
diff
changeset
|
532 os_release = 8 |
|
56135
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
533 if os_release < 9: |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
534 # MacOSX 10.4 has a broken readline. Don't try to build |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
535 # the readline module unless the user has installed a fixed |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
536 # readline package |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
537 if find_file('readline/rlconf.h', inc_dirs, []) is None: |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
538 do_readline = False |
|
36648
95800875bd12
If the readline library is found try and determine whether it's the broken
Jack Jansen <jack.jansen@cwi.nl>
parents:
36479
diff
changeset
|
539 if do_readline: |
|
56135
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
540 if platform == 'darwin' and os_release < 9: |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
541 # In every directory on the search path search for a dynamic |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
542 # library and then a static library, instead of first looking |
| 43239 | 543 # for dynamic libraries on the entire path. |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
544 # This way a staticly linked custom readline gets picked up |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
545 # before the (possibly broken) dynamic library in /usr/lib. |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
546 readline_extra_link_args = ('-Wl,-search_paths_first',) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
547 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
548 readline_extra_link_args = () |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
549 |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
550 readline_libs = ['readline'] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
551 if self.compiler_obj.find_library_file(lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
552 'ncursesw'): |
|
36479
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
553 readline_libs.append('ncursesw') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
554 elif self.compiler_obj.find_library_file(lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
555 'ncurses'): |
|
19319
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
556 readline_libs.append('ncurses') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
557 elif self.compiler_obj.find_library_file(lib_dirs, 'curses'): |
|
28473
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
558 readline_libs.append('curses') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
559 elif self.compiler_obj.find_library_file(lib_dirs + |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
560 ['/usr/lib/termcap'], |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
561 'termcap'): |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
562 readline_libs.append('termcap') |
| 15940 | 563 exts.append( Extension('readline', ['readline.c'], |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
564 library_dirs=['/usr/lib/termcap'], |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
565 extra_link_args=readline_extra_link_args, |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
566 libraries=readline_libs) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
567 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
568 missing.append('readline') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
569 |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
570 # crypt module. |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
571 |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
572 if self.compiler_obj.find_library_file(lib_dirs, 'crypt'): |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
573 libs = ['crypt'] |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
574 else: |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
575 libs = [] |
|
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
576 exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) |
| 15940 | 577 |
|
28341
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
578 # CSV files |
|
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
579 exts.append( Extension('_csv', ['_csv.c']) ) |
|
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
580 |
|
59605
768722b2ae0a
* Replaces the internals of the subprocess module from fork through exec on
Gregory P. Smith <greg@mad-scientist.com>
parents:
59460
diff
changeset
|
581 # POSIX subprocess module helper. |
|
768722b2ae0a
* Replaces the internals of the subprocess module from fork through exec on
Gregory P. Smith <greg@mad-scientist.com>
parents:
59460
diff
changeset
|
582 exts.append( Extension('_posixsubprocess', ['_posixsubprocess.c']) ) |
|
768722b2ae0a
* Replaces the internals of the subprocess module from fork through exec on
Gregory P. Smith <greg@mad-scientist.com>
parents:
59460
diff
changeset
|
583 |
| 15940 | 584 # socket(2) |
|
23811
e3e019bc4e1e
Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents:
23777
diff
changeset
|
585 exts.append( Extension('_socket', ['socketmodule.c'], |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
586 depends = ['socketmodule.h']) ) |
|
21959
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
587 # Detect SSL support for the socket module (via _ssl) |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
588 search_for_ssl_incs_in = [ |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
589 '/usr/local/ssl/include', |
|
16038
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
590 '/usr/contrib/ssl/include/' |
|
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
591 ] |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
592 ssl_incs = find_file('openssl/ssl.h', inc_dirs, |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
593 search_for_ssl_incs_in |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
594 ) |
|
29043
8e79dc3731bf
Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents:
29013
diff
changeset
|
595 if ssl_incs is not None: |
|
8e79dc3731bf
Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents:
29013
diff
changeset
|
596 krb5_h = find_file('krb5.h', inc_dirs, |
|
8e79dc3731bf
Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents:
29013
diff
changeset
|
597 ['/usr/kerberos/include']) |
|
8e79dc3731bf
Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents:
29013
diff
changeset
|
598 if krb5_h: |
|
8e79dc3731bf
Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents:
29013
diff
changeset
|
599 ssl_incs += krb5_h |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
600 ssl_libs = find_library_file(self.compiler_obj, 'ssl',lib_dirs, |
|
16038
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
601 ['/usr/local/ssl/lib', |
|
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
602 '/usr/contrib/ssl/lib/' |
|
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
603 ] ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
604 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
605 if (ssl_incs is not None and |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
606 ssl_libs is not None): |
|
21959
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
607 exts.append( Extension('_ssl', ['_ssl.c'], |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
608 include_dirs = ssl_incs, |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
609 library_dirs = ssl_libs, |
|
23811
e3e019bc4e1e
Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents:
23777
diff
changeset
|
610 libraries = ['ssl', 'crypto'], |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
611 depends = ['socketmodule.h']), ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
612 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
613 missing.append('_ssl') |
| 15940 | 614 |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
615 # find out which version of OpenSSL we have |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
616 openssl_ver = 0 |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
617 openssl_ver_re = re.compile( |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
618 '^\s*#\s*define\s+OPENSSL_VERSION_NUMBER\s+(0x[0-9a-fA-F]+)' ) |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
619 |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
620 # look for the openssl version header on the compiler search path. |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
621 opensslv_h = find_file('openssl/opensslv.h', [], |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
622 inc_dirs + search_for_ssl_incs_in) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
623 if opensslv_h: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
624 name = os.path.join(opensslv_h[0], 'openssl/opensslv.h') |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
625 if sys.platform == 'darwin' and is_macosx_sdk_path(name): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
626 name = os.path.join(macosx_sdk_root(), name[1:]) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
627 try: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
628 incfile = open(name, 'r') |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
629 for line in incfile: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
630 m = openssl_ver_re.match(line) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
631 if m: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
632 openssl_ver = eval(m.group(1)) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
633 except IOError as msg: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
634 print("IOError while reading opensshv.h:", msg) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
635 pass |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
636 |
|
42653
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
637 #print('openssl_ver = 0x%08x' % openssl_ver) |
|
58108
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
638 min_openssl_ver = 0x00907000 |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
639 have_any_openssl = ssl_incs is not None and ssl_libs is not None |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
640 have_usable_openssl = (have_any_openssl and |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
641 openssl_ver >= min_openssl_ver) |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
642 |
|
58108
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
643 if have_any_openssl: |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
644 if have_usable_openssl: |
|
42653
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
645 # The _hashlib module wraps optimized implementations |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
646 # of hash functions from the OpenSSL library. |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
647 exts.append( Extension('_hashlib', ['_hashopenssl.c'], |
|
58132
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
648 depends = ['hashlib.h'], |
|
42653
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
649 include_dirs = ssl_incs, |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
650 library_dirs = ssl_libs, |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
651 libraries = ['ssl', 'crypto']) ) |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
652 else: |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
653 print("warning: openssl 0x%08x is too old for _hashlib" % |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
654 openssl_ver) |
|
986776456791
Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents:
42645
diff
changeset
|
655 missing.append('_hashlib') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
656 |
|
58108
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
657 min_sha2_openssl_ver = 0x00908000 |
|
3856c764e1f5
Also fixes test_hashlib for the different extension module names in py3k.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58068
diff
changeset
|
658 if COMPILED_WITH_PYDEBUG or openssl_ver < min_sha2_openssl_ver: |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
659 # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash |
|
58132
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
660 exts.append( Extension('_sha256', ['sha256module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
661 depends=['hashlib.h']) ) |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
662 exts.append( Extension('_sha512', ['sha512module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
663 depends=['hashlib.h']) ) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
664 |
|
58110
abbdc31ea790
small logic cleanup, avoid duplicate openssl_ver check.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58108
diff
changeset
|
665 if COMPILED_WITH_PYDEBUG or not have_usable_openssl: |
|
43294
78f1c329c983
Adds stand alone _md5 and _sha1 modules for use by hashlib on systems
Gregory P. Smith <greg@mad-scientist.com>
parents:
43266
diff
changeset
|
666 # no openssl at all, use our own md5 and sha1 |
|
58132
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
667 exts.append( Extension('_md5', ['md5module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
668 depends=['hashlib.h']) ) |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
669 exts.append( Extension('_sha1', ['sha1module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
670 depends=['hashlib.h']) ) |
|
43294
78f1c329c983
Adds stand alone _md5 and _sha1 modules for use by hashlib on systems
Gregory P. Smith <greg@mad-scientist.com>
parents:
43266
diff
changeset
|
671 |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
672 # Modules that provide persistent dictionary-like semantics. You will |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
673 # probably want to arrange for at least one of them to be available on |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
674 # your machine, though none are defined by default because of library |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
675 # dependencies. The Python module dbm/__init__.py provides an |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
676 # implementation independent wrapper for these; dbm/dumb.py provides |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
677 # similar functionality (but slower of course) implemented in Python. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
678 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
679 # Sleepycat^WOracle Berkeley DB interface. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
680 # http://www.oracle.com/database/berkeley-db/db/index.html |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
681 # |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
682 # This requires the Sleepycat^WOracle DB code. The supported versions |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
683 # are set below. Visit the URL above to download |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
684 # a release. Most open source OSes come with one or more |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
685 # versions of BerkeleyDB already installed. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
686 |
|
59633
37ad40a28d3b
- Issue #6949: Allow the _dbm extension to be built with db 4.8.x.
Matthias Klose <doko@ubuntu.com>
parents:
59605
diff
changeset
|
687 max_db_ver = (4, 8) |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
688 min_db_ver = (3, 3) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
689 db_setup_debug = False # verbose debug prints from this script? |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
690 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
691 def allow_db_ver(db_ver): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
692 """Returns a boolean if the given BerkeleyDB version is acceptable. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
693 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
694 Args: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
695 db_ver: A tuple of the version to verify. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
696 """ |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
697 if not (min_db_ver <= db_ver <= max_db_ver): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
698 return False |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
699 return True |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
700 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
701 def gen_db_minor_ver_nums(major): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
702 if major == 4: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
703 for x in range(max_db_ver[1]+1): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
704 if allow_db_ver((4, x)): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
705 yield x |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
706 elif major == 3: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
707 for x in (3,): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
708 if allow_db_ver((3, x)): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
709 yield x |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
710 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
711 raise ValueError("unknown major BerkeleyDB version", major) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
712 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
713 # construct a list of paths to look for the header file in on |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
714 # top of the normal inc_dirs. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
715 db_inc_paths = [ |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
716 '/usr/include/db4', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
717 '/usr/local/include/db4', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
718 '/opt/sfw/include/db4', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
719 '/usr/include/db3', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
720 '/usr/local/include/db3', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
721 '/opt/sfw/include/db3', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
722 # Fink defaults (http://fink.sourceforge.net/) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
723 '/sw/include/db4', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
724 '/sw/include/db3', |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
725 ] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
726 # 4.x minor number specific paths |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
727 for x in gen_db_minor_ver_nums(4): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
728 db_inc_paths.append('/usr/include/db4%d' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
729 db_inc_paths.append('/usr/include/db4.%d' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
730 db_inc_paths.append('/usr/local/BerkeleyDB.4.%d/include' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
731 db_inc_paths.append('/usr/local/include/db4%d' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
732 db_inc_paths.append('/pkg/db-4.%d/include' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
733 db_inc_paths.append('/opt/db-4.%d/include' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
734 # MacPorts default (http://www.macports.org/) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
735 db_inc_paths.append('/opt/local/include/db4%d' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
736 # 3.x minor number specific paths |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
737 for x in gen_db_minor_ver_nums(3): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
738 db_inc_paths.append('/usr/include/db3%d' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
739 db_inc_paths.append('/usr/local/BerkeleyDB.3.%d/include' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
740 db_inc_paths.append('/usr/local/include/db3%d' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
741 db_inc_paths.append('/pkg/db-3.%d/include' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
742 db_inc_paths.append('/opt/db-3.%d/include' % x) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
743 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
744 # Add some common subdirectories for Sleepycat DB to the list, |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
745 # based on the standard include directories. This way DB3/4 gets |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
746 # picked up when it is installed in a non-standard prefix and |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
747 # the user has added that prefix into inc_dirs. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
748 std_variants = [] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
749 for dn in inc_dirs: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
750 std_variants.append(os.path.join(dn, 'db3')) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
751 std_variants.append(os.path.join(dn, 'db4')) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
752 for x in gen_db_minor_ver_nums(4): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
753 std_variants.append(os.path.join(dn, "db4%d"%x)) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
754 std_variants.append(os.path.join(dn, "db4.%d"%x)) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
755 for x in gen_db_minor_ver_nums(3): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
756 std_variants.append(os.path.join(dn, "db3%d"%x)) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
757 std_variants.append(os.path.join(dn, "db3.%d"%x)) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
758 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
759 db_inc_paths = std_variants + db_inc_paths |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
760 db_inc_paths = [p for p in db_inc_paths if os.path.exists(p)] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
761 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
762 db_ver_inc_map = {} |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
763 |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
764 if sys.platform == 'darwin': |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
765 sysroot = macosx_sdk_root() |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
766 |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
767 class db_found(Exception): pass |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
768 try: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
769 # See whether there is a Sleepycat header in the standard |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
770 # search path. |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
771 for d in inc_dirs + db_inc_paths: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
772 f = os.path.join(d, "db.h") |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
773 if sys.platform == 'darwin' and is_macosx_sdk_path(d): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
774 f = os.path.join(sysroot, d[1:], "db.h") |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
775 |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
776 if db_setup_debug: print("db: looking for db.h in", f) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
777 if os.path.exists(f): |
|
55572
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
778 f = open(f, "rb").read() |
|
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
779 m = re.search(br"#define\WDB_VERSION_MAJOR\W(\d+)", f) |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
780 if m: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
781 db_major = int(m.group(1)) |
|
55572
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
782 m = re.search(br"#define\WDB_VERSION_MINOR\W(\d+)", f) |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
783 db_minor = int(m.group(1)) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
784 db_ver = (db_major, db_minor) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
785 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
786 # Avoid 4.6 prior to 4.6.21 due to a BerkeleyDB bug |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
787 if db_ver == (4, 6): |
|
55572
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
788 m = re.search(br"#define\WDB_VERSION_PATCH\W(\d+)", f) |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
789 db_patch = int(m.group(1)) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
790 if db_patch < 21: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
791 print("db.h:", db_ver, "patch", db_patch, |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
792 "being ignored (4.6.x must be >= 4.6.21)") |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
793 continue |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
794 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
795 if ( (db_ver not in db_ver_inc_map) and |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
796 allow_db_ver(db_ver) ): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
797 # save the include directory with the db.h version |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
798 # (first occurrence only) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
799 db_ver_inc_map[db_ver] = d |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
800 if db_setup_debug: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
801 print("db.h: found", db_ver, "in", d) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
802 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
803 # we already found a header for this library version |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
804 if db_setup_debug: print("db.h: ignoring", d) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
805 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
806 # ignore this header, it didn't contain a version number |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
807 if db_setup_debug: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
808 print("db.h: no version number version in", d) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
809 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
810 db_found_vers = list(db_ver_inc_map.keys()) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
811 db_found_vers.sort() |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
812 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
813 while db_found_vers: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
814 db_ver = db_found_vers.pop() |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
815 db_incdir = db_ver_inc_map[db_ver] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
816 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
817 # check lib directories parallel to the location of the header |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
818 db_dirs_to_check = [ |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
819 db_incdir.replace("include", 'lib64'), |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
820 db_incdir.replace("include", 'lib'), |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
821 ] |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
822 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
823 if sys.platform != 'darwin': |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
824 db_dirs_to_check = list(filter(os.path.isdir, db_dirs_to_check)) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
825 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
826 else: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
827 # Same as other branch, but takes OSX SDK into account |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
828 tmp = [] |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
829 for dn in db_dirs_to_check: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
830 if is_macosx_sdk_path(dn): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
831 if os.path.isdir(os.path.join(sysroot, dn[1:])): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
832 tmp.append(dn) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
833 else: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
834 if os.path.isdir(dn): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
835 tmp.append(dn) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
836 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
837 db_dirs_to_check = tmp |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
838 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
839 # Look for a version specific db-X.Y before an ambiguoius dbX |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
840 # XXX should we -ever- look for a dbX name? Do any |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
841 # systems really not name their library by version and |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
842 # symlink to more general names? |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
843 for dblib in (('db-%d.%d' % db_ver), |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
844 ('db%d%d' % db_ver), |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
845 ('db%d' % db_ver[0])): |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
846 dblib_file = self.compiler.find_library_file( |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
847 db_dirs_to_check + lib_dirs, dblib ) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
848 if dblib_file: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
849 dblib_dir = [ os.path.abspath(os.path.dirname(dblib_file)) ] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
850 raise db_found |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
851 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
852 if db_setup_debug: print("db lib: ", dblib, "not found") |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
853 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
854 except db_found: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
855 if db_setup_debug: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
856 print("bsddb using BerkeleyDB lib:", db_ver, dblib) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
857 print("bsddb lib dir:", dblib_dir, " inc dir:", db_incdir) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
858 db_incs = [db_incdir] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
859 dblibs = [dblib] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
860 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
861 if db_setup_debug: print("db: no appropriate library found") |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
862 db_incs = None |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
863 dblibs = [] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
864 dblib_dir = None |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
865 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
866 # The sqlite interface |
|
40450
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39575
diff
changeset
|
867 sqlite_setup_debug = False # verbose debug prints from this script? |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
868 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
869 # We hunt for #define SQLITE_VERSION "n.n.n" |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
870 # We need to find >= sqlite version 3.0.8 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
871 sqlite_incdir = sqlite_libdir = None |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
872 sqlite_inc_paths = [ '/usr/include', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
873 '/usr/include/sqlite', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
874 '/usr/include/sqlite3', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
875 '/usr/local/include', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
876 '/usr/local/include/sqlite', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
877 '/usr/local/include/sqlite3', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
878 ] |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
879 MIN_SQLITE_VERSION_NUMBER = (3, 0, 8) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
880 MIN_SQLITE_VERSION = ".".join([str(x) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
881 for x in MIN_SQLITE_VERSION_NUMBER]) |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
882 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
883 # Scan the default include directories before the SQLite specific |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
884 # ones. This allows one to override the copy of sqlite on OSX, |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
885 # where /usr/include contains an old version of sqlite. |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
886 if sys.platform == 'darwin': |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
887 sysroot = macosx_sdk_root() |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
888 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
889 for d in inc_dirs + sqlite_inc_paths: |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
890 f = os.path.join(d, "sqlite3.h") |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
891 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
892 if sys.platform == 'darwin' and is_macosx_sdk_path(d): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
893 f = os.path.join(sysroot, d[1:], "sqlite3.h") |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
894 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
895 if os.path.exists(f): |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
896 if sqlite_setup_debug: print("sqlite: found %s"%f) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
897 incf = open(f).read() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
898 m = re.search( |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
899 r'\s*.*#\s*.*define\s.*SQLITE_VERSION\W*"(.*)"', incf) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
900 if m: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
901 sqlite_version = m.group(1) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
902 sqlite_version_tuple = tuple([int(x) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
903 for x in sqlite_version.split(".")]) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
904 if sqlite_version_tuple >= MIN_SQLITE_VERSION_NUMBER: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
905 # we win! |
|
40450
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39575
diff
changeset
|
906 if sqlite_setup_debug: |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
907 print("%s/sqlite3.h: version %s"%(d, sqlite_version)) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
908 sqlite_incdir = d |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
909 break |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
910 else: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
911 if sqlite_setup_debug: |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
912 print("%s: version %d is too old, need >= %s"%(d, |
|
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
913 sqlite_version, MIN_SQLITE_VERSION)) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
914 elif sqlite_setup_debug: |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
915 print("sqlite: %s had no SQLITE_VERSION"%(f,)) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
916 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
917 if sqlite_incdir: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
918 sqlite_dirs_to_check = [ |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
919 os.path.join(sqlite_incdir, '..', 'lib64'), |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
920 os.path.join(sqlite_incdir, '..', 'lib'), |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
921 os.path.join(sqlite_incdir, '..', '..', 'lib64'), |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
922 os.path.join(sqlite_incdir, '..', '..', 'lib'), |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
923 ] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
924 sqlite_libfile = self.compiler_obj.find_library_file( |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
925 sqlite_dirs_to_check + lib_dirs, 'sqlite3') |
| 49493 | 926 if sqlite_libfile: |
| 927 sqlite_libdir = [os.path.abspath(os.path.dirname(sqlite_libfile))] | |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
928 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
929 if sqlite_incdir and sqlite_libdir: |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
930 sqlite_srcs = ['_sqlite/cache.c', |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
931 '_sqlite/connection.c', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
932 '_sqlite/cursor.c', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
933 '_sqlite/microprotocols.c', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
934 '_sqlite/module.c', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
935 '_sqlite/prepare_protocol.c', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
936 '_sqlite/row.c', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
937 '_sqlite/statement.c', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
938 '_sqlite/util.c', ] |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
939 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
940 sqlite_defines = [] |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
941 if sys.platform != "win32": |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
942 sqlite_defines.append(('MODULE_NAME', '"sqlite3"')) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
943 else: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
944 sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"')) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
945 |
|
59372
3003c1656e2a
Merged new pysqlite version 2.6.0 from trunk.
Gerhard Häring <gh@ghaering.de>
parents:
58558
diff
changeset
|
946 # Comment this out if you want the sqlite3 module to be able to load extensions. |
|
3003c1656e2a
Merged new pysqlite version 2.6.0 from trunk.
Gerhard Häring <gh@ghaering.de>
parents:
58558
diff
changeset
|
947 sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1")) |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
948 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
949 if sys.platform == 'darwin': |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
950 # In every directory on the search path search for a dynamic |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
951 # library and then a static library, instead of first looking |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
952 # for dynamic libraries on the entiry path. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
953 # This way a staticly linked custom sqlite gets picked up |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
954 # before the dynamic library in /usr/lib. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
955 sqlite_extra_link_args = ('-Wl,-search_paths_first',) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
956 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
957 sqlite_extra_link_args = () |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
958 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
959 exts.append(Extension('_sqlite3', sqlite_srcs, |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
960 define_macros=sqlite_defines, |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
961 include_dirs=["Modules/_sqlite", |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
962 sqlite_incdir], |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
963 library_dirs=sqlite_libdir, |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
964 runtime_library_dirs=sqlite_libdir, |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
965 extra_link_args=sqlite_extra_link_args, |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
966 libraries=["sqlite3",])) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
967 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
968 missing.append('_sqlite3') |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
969 |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
970 dbm_order = ['gdbm'] |
| 15940 | 971 # The standard Unix dbm module: |
|
24143
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
972 if platform not in ['cygwin']: |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
973 config_args = [arg.strip("'") |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
974 for arg in sysconfig.get_config_var("CONFIG_ARGS").split()] |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
975 dbm_args = [arg for arg in config_args |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
976 if arg.startswith('--with-dbmliborder=')] |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
977 if dbm_args: |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
978 dbm_order = [arg.split('=')[-1] for arg in dbm_args][-1].split(":") |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
979 else: |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
980 dbm_order = "ndbm:gdbm:bdb".split(":") |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
981 dbmext = None |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
982 for cand in dbm_order: |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
983 if cand == "ndbm": |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
984 if find_file("ndbm.h", inc_dirs, []) is not None: |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
985 # Some systems have -lndbm, others don't |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
986 if self.compiler_obj.find_library_file(lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
987 'ndbm'): |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
988 ndbm_libs = ['ndbm'] |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
989 else: |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
990 ndbm_libs = [] |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
991 print("building dbm using ndbm") |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
992 dbmext = Extension('_dbm', ['_dbmmodule.c'], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
993 define_macros=[ |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
994 ('HAVE_NDBM_H',None), |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
995 ], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
996 libraries=ndbm_libs) |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
997 break |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
998 |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
999 elif cand == "gdbm": |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1000 if self.compiler_obj.find_library_file(lib_dirs, 'gdbm'): |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1001 gdbm_libs = ['gdbm'] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1002 if self.compiler_obj.find_library_file(lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1003 'gdbm_compat'): |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1004 gdbm_libs.append('gdbm_compat') |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1005 if find_file("gdbm/ndbm.h", inc_dirs, []) is not None: |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1006 print("building dbm using gdbm") |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1007 dbmext = Extension( |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1008 '_dbm', ['_dbmmodule.c'], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1009 define_macros=[ |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1010 ('HAVE_GDBM_NDBM_H', None), |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1011 ], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1012 libraries = gdbm_libs) |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1013 break |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1014 if find_file("gdbm-ndbm.h", inc_dirs, []) is not None: |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1015 print("building dbm using gdbm") |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1016 dbmext = Extension( |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1017 '_dbm', ['_dbmmodule.c'], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1018 define_macros=[ |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1019 ('HAVE_GDBM_DASH_NDBM_H', None), |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1020 ], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1021 libraries = gdbm_libs) |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1022 break |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1023 elif cand == "bdb": |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1024 if db_incs is not None: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1025 print("building dbm using bdb") |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1026 dbmext = Extension('_dbm', ['_dbmmodule.c'], |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1027 library_dirs=dblib_dir, |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1028 runtime_library_dirs=dblib_dir, |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1029 include_dirs=db_incs, |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1030 define_macros=[ |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1031 ('HAVE_BERKDB_H', None), |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1032 ('DB_DBM_HSEARCH', None), |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1033 ], |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
1034 libraries=dblibs) |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1035 break |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1036 if dbmext is not None: |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
1037 exts.append(dbmext) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1038 else: |
|
47285
afbde360dd1a
Create the dbm package from PEP 3108. #2881.
Georg Brandl <georg@python.org>
parents:
47230
diff
changeset
|
1039 missing.append('_dbm') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1040 |
| 15940 | 1041 # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
1042 if ('gdbm' in dbm_order and |
|
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
1043 self.compiler_obj.find_library_file(lib_dirs, 'gdbm')): |
|
47285
afbde360dd1a
Create the dbm package from PEP 3108. #2881.
Georg Brandl <georg@python.org>
parents:
47230
diff
changeset
|
1044 exts.append( Extension('_gdbm', ['_gdbmmodule.c'], |
| 15940 | 1045 libraries = ['gdbm'] ) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1046 else: |
|
47285
afbde360dd1a
Create the dbm package from PEP 3108. #2881.
Georg Brandl <georg@python.org>
parents:
47230
diff
changeset
|
1047 missing.append('_gdbm') |
| 15940 | 1048 |
| 1049 # Unix-only modules | |
|
61259
1f7506f23771
Remove traces of MacOS9 support.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
60822
diff
changeset
|
1050 if platform != 'win32': |
| 15940 | 1051 # Steen Lumholt's termios module |
| 1052 exts.append( Extension('termios', ['termios.c']) ) | |
| 1053 # Jeremy Hylton's rlimit interface | |
|
56726
14b55a4e8725
Remove AtheOS support, as per PEP 11 (which claims that all code was removed in Python 3.0).
Antoine Pitrou <solipsis@pitrou.net>
parents:
56135
diff
changeset
|
1054 exts.append( Extension('resource', ['resource.c']) ) |
| 15940 | 1055 |
|
16721
4db0fddb6917
Patch #103544: always compile the dl and nis modules on Unix; let's see
Andrew M. Kuchling <amk@amk.ca>
parents:
16471
diff
changeset
|
1056 # Sun yellow pages. Some systems have the functions in libc. |
|
57996
19f2359944eb
Merged revisions 77130 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57993
diff
changeset
|
1057 if (platform not in ['cygwin', 'qnx6'] and |
|
19f2359944eb
Merged revisions 77130 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57993
diff
changeset
|
1058 find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None): |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1059 if (self.compiler_obj.find_library_file(lib_dirs, 'nsl')): |
|
16804
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1060 libs = ['nsl'] |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1061 else: |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1062 libs = [] |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1063 exts.append( Extension('nis', ['nismodule.c'], |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1064 libraries = libs) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1065 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1066 missing.append('nis') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1067 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1068 missing.extend(['nis', 'resource', 'termios']) |
| 15940 | 1069 |
|
31468
de2ed800fa50
a couple other sunos4 support items removed
Skip Montanaro <skip@pobox.com>
parents:
31436
diff
changeset
|
1070 # Curses support, requiring the System V version of curses, often |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1071 # provided by the ncurses library. |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1072 panel_library = 'panel' |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1073 if (self.compiler_obj.find_library_file(lib_dirs, 'ncursesw')): |
|
36479
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
1074 curses_libs = ['ncursesw'] |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1075 # Bug 1464056: If _curses.so links with ncursesw, |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1076 # _curses_panel.so must link with panelw. |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1077 panel_library = 'panelw' |
|
36479
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
1078 exts.append( Extension('_curses', ['_cursesmodule.c'], |
|
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
1079 libraries = curses_libs) ) |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1080 elif (self.compiler_obj.find_library_file(lib_dirs, 'ncurses')): |
| 15940 | 1081 curses_libs = ['ncurses'] |
| 1082 exts.append( Extension('_curses', ['_cursesmodule.c'], | |
| 1083 libraries = curses_libs) ) | |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1084 elif (self.compiler_obj.find_library_file(lib_dirs, 'curses') |
| 21274 | 1085 and platform != 'darwin'): |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1086 # OSX has an old Berkeley curses, not good enough for |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1087 # the _curses module. |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1088 if (self.compiler_obj.find_library_file(lib_dirs, 'terminfo')): |
| 15940 | 1089 curses_libs = ['curses', 'terminfo'] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1090 elif (self.compiler_obj.find_library_file(lib_dirs, 'termcap')): |
|
28473
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
1091 curses_libs = ['curses', 'termcap'] |
| 15940 | 1092 else: |
|
28473
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
1093 curses_libs = ['curses'] |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1094 |
| 15940 | 1095 exts.append( Extension('_curses', ['_cursesmodule.c'], |
| 1096 libraries = curses_libs) ) | |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1097 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1098 missing.append('_curses') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1099 |
| 15940 | 1100 # If the curses module is enabled, check for the panel module |
|
21256
fbf68c59d66c
[Bug #480882] Remove now-pointless check for existence for _curses_panel.c;
Andrew M. Kuchling <amk@amk.ca>
parents:
21233
diff
changeset
|
1101 if (module_enabled(exts, '_curses') and |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1102 self.compiler_obj.find_library_file(lib_dirs, panel_library)): |
| 15940 | 1103 exts.append( Extension('_curses_panel', ['_curses_panel.c'], |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1104 libraries = [panel_library] + curses_libs) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1105 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1106 missing.append('_curses_panel') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1107 |
|
24790
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1108 # Andrew Kuchling's zlib module. Note that some versions of zlib |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1109 # 1.1.3 have security problems. See CERT Advisory CA-2002-07: |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1110 # http://www.cert.org/advisories/CA-2002-07.html |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1111 # |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1112 # zlib 1.1.4 is fixed, but at least one vendor (RedHat) has decided to |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1113 # patch its zlib 1.1.3 package instead of upgrading to 1.1.4. For |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1114 # now, we still accept 1.1.3, because we think it's difficult to |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1115 # exploit this in Python, and we'd rather make it RedHat's problem |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1116 # than our problem <wink>. |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1117 # |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1118 # You can upgrade zlib to version 1.1.4 yourself by going to |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1119 # http://www.gzip.org/zlib/ |
|
17531
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1120 zlib_inc = find_file('zlib.h', [], inc_dirs) |
|
46042
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1121 have_zlib = False |
|
17531
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1122 if zlib_inc is not None: |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1123 zlib_h = zlib_inc[0] + '/zlib.h' |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1124 version = '"0.0.0"' |
|
24790
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1125 version_req = '"1.1.3"' |
|
17531
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1126 fp = open(zlib_h) |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1127 while 1: |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1128 line = fp.readline() |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1129 if not line: |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1130 break |
|
24605
fd4575b56a4d
Update the URL for getting zlib, and update the minimal required
Guido van Rossum <guido@python.org>
parents:
24579
diff
changeset
|
1131 if line.startswith('#define ZLIB_VERSION'): |
|
17531
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1132 version = line.split()[2] |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1133 break |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1134 if version >= version_req: |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1135 if (self.compiler_obj.find_library_file(lib_dirs, 'z')): |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1136 if sys.platform == "darwin": |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1137 zlib_extra_link_args = ('-Wl,-search_paths_first',) |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1138 else: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1139 zlib_extra_link_args = () |
|
17531
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1140 exts.append( Extension('zlib', ['zlibmodule.c'], |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1141 libraries = ['z'], |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1142 extra_link_args = zlib_extra_link_args)) |
|
46042
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1143 have_zlib = True |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1144 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1145 missing.append('zlib') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1146 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1147 missing.append('zlib') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1148 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1149 missing.append('zlib') |
| 15940 | 1150 |
|
46042
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1151 # Helper module for various ascii-encoders. Uses zlib for an optimized |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1152 # crc32 if we have it. Otherwise binascii uses its own. |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1153 if have_zlib: |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1154 extra_compile_args = ['-DUSE_ZLIB_CRC32'] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1155 libraries = ['z'] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1156 extra_link_args = zlib_extra_link_args |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1157 else: |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1158 extra_compile_args = [] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1159 libraries = [] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1160 extra_link_args = [] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1161 exts.append( Extension('binascii', ['binascii.c'], |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1162 extra_compile_args = extra_compile_args, |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1163 libraries = libraries, |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1164 extra_link_args = extra_link_args) ) |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1165 |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1166 # Gustavo Niemeyer's bz2 module. |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1167 if (self.compiler_obj.find_library_file(lib_dirs, 'bz2')): |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1168 if sys.platform == "darwin": |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1169 bz2_extra_link_args = ('-Wl,-search_paths_first',) |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1170 else: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1171 bz2_extra_link_args = () |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1172 exts.append( Extension('bz2', ['bz2module.c'], |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1173 libraries = ['bz2'], |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1174 extra_link_args = bz2_extra_link_args) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1175 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1176 missing.append('bz2') |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1177 |
| 15940 | 1178 # Interface to the Expat XML parser |
| 1179 # | |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58132
diff
changeset
|
1180 # Expat was written by James Clark and is now maintained by a group of |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58132
diff
changeset
|
1181 # developers on SourceForge; see www.libexpat.org for more information. |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58132
diff
changeset
|
1182 # The pyexpat module was written by Paul Prescod after a prototype by |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58132
diff
changeset
|
1183 # Jack Jansen. The Expat source is included in Modules/expat/. Usage |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58132
diff
changeset
|
1184 # of a system shared libexpat.so is possible with --with-system-expat |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58132
diff
changeset
|
1185 # cofigure option. |
|
23889
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1186 # |
|
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1187 # More information on Expat can be found at www.libexpat.org. |
|
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1188 # |
|
58025
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1189 if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"): |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1190 expat_inc = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1191 define_macros = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1192 expat_lib = ['expat'] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1193 expat_sources = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1194 else: |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1195 expat_inc = [os.path.join(os.getcwd(), srcdir, 'Modules', 'expat')] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1196 define_macros = [ |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1197 ('HAVE_EXPAT_CONFIG_H', '1'), |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1198 ] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1199 expat_lib = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1200 expat_sources = ['expat/xmlparse.c', |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1201 'expat/xmlrole.c', |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1202 'expat/xmltok.c'] |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1203 |
|
30731
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1204 exts.append(Extension('pyexpat', |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1205 define_macros = define_macros, |
|
58025
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1206 include_dirs = expat_inc, |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1207 libraries = expat_lib, |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1208 sources = ['pyexpat.c'] + expat_sources |
|
30731
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1209 )) |
| 15940 | 1210 |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1211 # Fredrik Lundh's cElementTree module. Note that this also |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1212 # uses expat (via the CAPI hook in pyexpat). |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1213 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1214 if os.path.isfile(os.path.join(srcdir, 'Modules', '_elementtree.c')): |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1215 define_macros.append(('USE_PYEXPAT_CAPI', None)) |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1216 exts.append(Extension('_elementtree', |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1217 define_macros = define_macros, |
|
58025
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1218 include_dirs = expat_inc, |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1219 libraries = expat_lib, |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1220 sources = ['_elementtree.c'], |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1221 )) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1222 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1223 missing.append('_elementtree') |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1224 |
|
31386
887ce39f95f2
Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
31353
diff
changeset
|
1225 # Hye-Shik Chang's CJKCodecs modules. |
|
41818
bfc73d849e28
The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents:
41749
diff
changeset
|
1226 exts.append(Extension('_multibytecodec', |
|
bfc73d849e28
The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents:
41749
diff
changeset
|
1227 ['cjkcodecs/multibytecodec.c'])) |
|
bfc73d849e28
The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents:
41749
diff
changeset
|
1228 for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'): |
|
bfc73d849e28
The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents:
41749
diff
changeset
|
1229 exts.append(Extension('_codecs_%s' % loc, |
|
bfc73d849e28
The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents:
41749
diff
changeset
|
1230 ['cjkcodecs/_codecs_%s.c' % loc])) |
|
31386
887ce39f95f2
Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
31353
diff
changeset
|
1231 |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1232 # Thomas Heller's _ctypes module |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1233 self.detect_ctypes(inc_dirs, lib_dirs) |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1234 |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1235 # Richard Oudkerk's multiprocessing module |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1236 if platform == 'win32': # Windows |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1237 macros = dict() |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1238 libraries = ['ws2_32'] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1239 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1240 elif platform == 'darwin': # Mac OSX |
|
52902
d3887dfe661f
Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
52561
diff
changeset
|
1241 macros = dict() |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1242 libraries = [] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1243 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1244 elif platform == 'cygwin': # Cygwin |
|
52902
d3887dfe661f
Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
52561
diff
changeset
|
1245 macros = dict() |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1246 libraries = [] |
|
48412
5f4a8980c1ac
Merged revisions 64475,64544-64545,64550,64557-64558,64565,64570,64577,64582-64583,64585,64590,64592-64593,64625,64630,64638,64647,64655-64656,64663-64664 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48379
diff
changeset
|
1247 |
|
49642
c089eb64ee57
Merged revisions 67098 via svnmerge from
Martin v. Löwis <martin@v.loewis.de>
parents:
49493
diff
changeset
|
1248 elif platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'): |
|
48412
5f4a8980c1ac
Merged revisions 64475,64544-64545,64550,64557-64558,64565,64570,64577,64582-64583,64585,64590,64592-64593,64625,64630,64638,64647,64655-64656,64663-64664 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48379
diff
changeset
|
1249 # FreeBSD's P1003.1b semaphore support is very experimental |
|
5f4a8980c1ac
Merged revisions 64475,64544-64545,64550,64557-64558,64565,64570,64577,64582-64583,64585,64590,64592-64593,64625,64630,64638,64647,64655-64656,64663-64664 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48379
diff
changeset
|
1250 # and has many known problems. (as of June 2008) |
|
52902
d3887dfe661f
Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
52561
diff
changeset
|
1251 macros = dict() |
|
48412
5f4a8980c1ac
Merged revisions 64475,64544-64545,64550,64557-64558,64565,64570,64577,64582-64583,64585,64590,64592-64593,64625,64630,64638,64647,64655-64656,64663-64664 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48379
diff
changeset
|
1252 libraries = [] |
|
5f4a8980c1ac
Merged revisions 64475,64544-64545,64550,64557-64558,64565,64570,64577,64582-64583,64585,64590,64592-64593,64625,64630,64638,64647,64655-64656,64663-64664 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48379
diff
changeset
|
1253 |
|
49433
8f5a8ea5ba76
Merged revisions 66670,66681,66688,66696-66699 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49035
diff
changeset
|
1254 elif platform.startswith('openbsd'): |
|
52902
d3887dfe661f
Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
52561
diff
changeset
|
1255 macros = dict() |
|
49433
8f5a8ea5ba76
Merged revisions 66670,66681,66688,66696-66699 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49035
diff
changeset
|
1256 libraries = [] |
|
8f5a8ea5ba76
Merged revisions 66670,66681,66688,66696-66699 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49035
diff
changeset
|
1257 |
|
52561
8f51dd09f3f2
Merged revisions 70849,70852 via svnmerge from
Jesse Noller <jnoller@gmail.com>
parents:
52011
diff
changeset
|
1258 elif platform.startswith('netbsd'): |
|
52902
d3887dfe661f
Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
52561
diff
changeset
|
1259 macros = dict() |
|
52561
8f51dd09f3f2
Merged revisions 70849,70852 via svnmerge from
Jesse Noller <jnoller@gmail.com>
parents:
52011
diff
changeset
|
1260 libraries = [] |
|
8f51dd09f3f2
Merged revisions 70849,70852 via svnmerge from
Jesse Noller <jnoller@gmail.com>
parents:
52011
diff
changeset
|
1261 |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1262 else: # Linux and other unices |
|
52902
d3887dfe661f
Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
52561
diff
changeset
|
1263 macros = dict() |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1264 libraries = ['rt'] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1265 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1266 if platform == 'win32': |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1267 multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1268 '_multiprocessing/semaphore.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1269 '_multiprocessing/pipe_connection.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1270 '_multiprocessing/socket_connection.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1271 '_multiprocessing/win32_functions.c' |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1272 ] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1273 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1274 else: |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1275 multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1276 '_multiprocessing/socket_connection.c' |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1277 ] |
|
57490
cb836301db60
Merged revisions 76432,76558 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
56726
diff
changeset
|
1278 if (sysconfig.get_config_var('HAVE_SEM_OPEN') and not |
|
cb836301db60
Merged revisions 76432,76558 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
56726
diff
changeset
|
1279 sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED')): |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1280 multiprocessing_srcs.append('_multiprocessing/semaphore.c') |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1281 |
| 50993 | 1282 if sysconfig.get_config_var('WITH_THREAD'): |
| 1283 exts.append ( Extension('_multiprocessing', multiprocessing_srcs, | |
| 1284 define_macros=list(macros.items()), | |
| 1285 include_dirs=["Modules/_multiprocessing"])) | |
| 1286 else: | |
| 1287 missing.append('_multiprocessing') | |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1288 # End multiprocessing |
|
41064
6e1cf4d28af3
Check in Daniel Stutzbach's _fileio.c and test_fileio.py
Guido van Rossum <guido@python.org>
parents:
40893
diff
changeset
|
1289 |
| 15940 | 1290 # Platform-specific libraries |
|
60822
a3ce275bf095
Merged revisions 80322 via svnmerge from
Matthias Klose <doko@ubuntu.com>
parents:
60820
diff
changeset
|
1291 if (platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', |
|
a3ce275bf095
Merged revisions 80322 via svnmerge from
Matthias Klose <doko@ubuntu.com>
parents:
60820
diff
changeset
|
1292 'freebsd7', 'freebsd8') |
|
a3ce275bf095
Merged revisions 80322 via svnmerge from
Matthias Klose <doko@ubuntu.com>
parents:
60820
diff
changeset
|
1293 or platform.startswith("gnukfreebsd")): |
|
27865
65494469ad3e
Re-enable compiling ossaudiodev now that it seems to work again.
Guido van Rossum <guido@python.org>
parents:
27820
diff
changeset
|
1294 exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1295 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1296 missing.append('ossaudiodev') |
| 15940 | 1297 |
|
47376
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1298 if sys.platform == 'darwin': |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1299 exts.append( |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1300 Extension('_gestalt', ['_gestalt.c'], |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1301 extra_link_args=['-framework', 'Carbon']) |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1302 ) |
|
60705
9aac1d3d873d
For for issue #7154: Port the code that uses
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59633
diff
changeset
|
1303 exts.append( |
|
9aac1d3d873d
For for issue #7154: Port the code that uses
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59633
diff
changeset
|
1304 Extension('_scproxy', ['_scproxy.c'], |
|
9aac1d3d873d
For for issue #7154: Port the code that uses
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59633
diff
changeset
|
1305 extra_link_args=[ |
|
9aac1d3d873d
For for issue #7154: Port the code that uses
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59633
diff
changeset
|
1306 '-framework', 'SystemConfiguration', |
|
9aac1d3d873d
For for issue #7154: Port the code that uses
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59633
diff
changeset
|
1307 '-framework', 'CoreFoundation', |
|
9aac1d3d873d
For for issue #7154: Port the code that uses
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
59633
diff
changeset
|
1308 ])) |
|
47376
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1309 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1310 self.extensions.extend(exts) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1311 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1312 # Call the method for detecting whether _tkinter can be compiled |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1313 self.detect_tkinter(inc_dirs, lib_dirs) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1314 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1315 if '_tkinter' not in [e.name for e in self.extensions]: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1316 missing.append('_tkinter') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1317 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1318 return missing |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1319 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1320 def detect_tkinter_darwin(self, inc_dirs, lib_dirs): |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1321 # The _tkinter module, using frameworks. Since frameworks are quite |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1322 # different the UNIX search logic is not sharable. |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1323 from os.path import join, exists |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1324 framework_dirs = [ |
|
52011
41e407286610
Merged revisions 70172 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
51991
diff
changeset
|
1325 '/Library/Frameworks', |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1326 '/System/Library/Frameworks/', |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1327 join(os.getenv('HOME'), '/Library/Frameworks') |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1328 ] |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1329 |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1330 sysroot = macosx_sdk_root() |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1331 |
|
36156
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1332 # Find the directory that contains the Tcl.framework and Tk.framework |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1333 # bundles. |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1334 # XXX distutils should support -F! |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1335 for F in framework_dirs: |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1336 # both Tcl.framework and Tk.framework should be present |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1337 |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1338 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1339 for fw in 'Tcl', 'Tk': |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1340 if is_macosx_sdk_path(F): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1341 if not exists(join(sysroot, F[1:], fw + '.framework')): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1342 break |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1343 else: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1344 if not exists(join(F, fw + '.framework')): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1345 break |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1346 else: |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1347 # ok, F is now directory with both frameworks. Continure |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1348 # building |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1349 break |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1350 else: |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1351 # Tk and Tcl frameworks not found. Normal "unix" tkinter search |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1352 # will now resume. |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1353 return 0 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1354 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1355 # For 8.4a2, we must add -I options that point inside the Tcl and Tk |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1356 # frameworks. In later release we should hopefully be able to pass |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1357 # the -F option to gcc, which specifies a framework lookup path. |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1358 # |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1359 include_dirs = [ |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1360 join(F, fw + '.framework', H) |
|
41464
060c79f6d919
Hide list comp variables and support set comprehensions
Nick Coghlan <ncoghlan@gmail.com>
parents:
41253
diff
changeset
|
1361 for fw in ('Tcl', 'Tk') |
|
060c79f6d919
Hide list comp variables and support set comprehensions
Nick Coghlan <ncoghlan@gmail.com>
parents:
41253
diff
changeset
|
1362 for H in ('Headers', 'Versions/Current/PrivateHeaders') |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1363 ] |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1364 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1365 # For 8.4a2, the X11 headers are not included. Rather than include a |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1366 # complicated search, this is a hard-coded path. It could bail out |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1367 # if X11 libs are not found... |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1368 include_dirs.append('/usr/X11R6/include') |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1369 frameworks = ['-framework', 'Tcl', '-framework', 'Tk'] |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1370 |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1371 # All existing framework builds of Tcl/Tk don't support 64-bit |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1372 # architectures. |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1373 cflags = sysconfig.get_config_vars('CFLAGS')[0] |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1374 archs = re.findall('-arch\s+(\w+)', cflags) |
|
55970
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1375 |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1376 tmpfile = os.path.join(self.build_temp, 'tk.arch') |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1377 if not os.path.exists(self.build_temp): |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1378 os.makedirs(self.build_temp) |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1379 |
|
55970
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1380 # Note: cannot use os.popen or subprocess here, that |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1381 # requires extensions that are not available here. |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1382 if is_macosx_sdk_path(F): |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1383 os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(os.path.join(sysroot, F[1:]), tmpfile)) |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1384 else: |
|
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1385 os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(F, tmpfile)) |
|
55970
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1386 fp = open(tmpfile) |
|
62050
3797ee57d3d6
Merged revisions 81662 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
61259
diff
changeset
|
1387 |
|
55970
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1388 detected_archs = [] |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1389 for ln in fp: |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1390 a = ln.split()[-1] |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1391 if a in archs: |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1392 detected_archs.append(ln.split()[-1]) |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1393 fp.close() |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1394 os.unlink(tmpfile) |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1395 |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1396 for a in detected_archs: |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1397 frameworks.append('-arch') |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1398 frameworks.append(a) |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1399 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1400 ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1401 define_macros=[('WITH_APPINIT', 1)], |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1402 include_dirs = include_dirs, |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1403 libraries = [], |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1404 extra_compile_args = frameworks[2:], |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1405 extra_link_args = frameworks, |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1406 ) |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1407 self.extensions.append(ext) |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1408 return 1 |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1409 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1410 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1411 def detect_tkinter(self, inc_dirs, lib_dirs): |
| 15940 | 1412 # The _tkinter module. |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1413 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1414 # Rather than complicate the code below, detecting and building |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1415 # AquaTk is a separate method. Only one Tkinter will be built on |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1416 # Darwin - either AquaTk, if it is found, or X11 based Tk. |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1417 platform = self.get_platform() |
|
36156
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1418 if (platform == 'darwin' and |
|
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1419 self.detect_tkinter_darwin(inc_dirs, lib_dirs)): |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1420 return |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1421 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1422 # Assume we haven't found any of the libraries or include files |
|
18819
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1423 # The versions with dots are used on Unix, and the versions without |
|
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1424 # dots on Windows, for detection by cygwin. |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1425 tcllib = tklib = tcl_includes = tk_includes = None |
|
55660
bec3405e073f
Merged revisions 74471-74472 via svnmerge from
Guilherme Polo <ggpolo@gmail.com>
parents:
55572
diff
changeset
|
1426 for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', |
|
bec3405e073f
Merged revisions 74471-74472 via svnmerge from
Guilherme Polo <ggpolo@gmail.com>
parents:
55572
diff
changeset
|
1427 '8.2', '82', '8.1', '81', '8.0', '80']: |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1428 tklib = self.compiler_obj.find_library_file(lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1429 'tk' + version) |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1430 tcllib = self.compiler_obj.find_library_file(lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1431 'tcl' + version) |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1432 if tklib and tcllib: |
| 15940 | 1433 # Exit the loop when we've found the Tcl/Tk libraries |
| 1434 break | |
| 1435 | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1436 # Now check for the header files |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1437 if tklib and tcllib: |
|
31741
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1438 # Check for the include files on Debian and {Free,Open}BSD, where |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1439 # they're put in /usr/include/{tcl,tk}X.Y |
|
31741
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1440 dotversion = version |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1441 if '.' not in dotversion and "bsd" in sys.platform.lower(): |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1442 # OpenBSD and FreeBSD use Tcl/Tk library names like libtcl83.a, |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1443 # but the include subdirs are named like .../include/tcl8.3. |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1444 dotversion = dotversion[:-1] + '.' + dotversion[-1] |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1445 tcl_include_sub = [] |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1446 tk_include_sub = [] |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1447 for dir in inc_dirs: |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1448 tcl_include_sub += [dir + os.sep + "tcl" + dotversion] |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1449 tk_include_sub += [dir + os.sep + "tk" + dotversion] |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1450 tk_include_sub += tcl_include_sub |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1451 tcl_includes = find_file('tcl.h', inc_dirs, tcl_include_sub) |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1452 tk_includes = find_file('tk.h', inc_dirs, tk_include_sub) |
| 15940 | 1453 |
|
28947
8df897f14fb8
Change 'and' to 'or' in _tkinter test.
Martin v. Löwis <martin@v.loewis.de>
parents:
28940
diff
changeset
|
1454 if (tcllib is None or tklib is None or |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1455 tcl_includes is None or tk_includes is None): |
|
31741
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1456 self.announce("INFO: Can't locate Tcl/Tk libs and/or headers", 2) |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1457 return |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1458 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1459 # OK... everything seems to be present for Tcl/Tk. |
| 15940 | 1460 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1461 include_dirs = [] ; libs = [] ; defs = [] ; added_lib_dirs = [] |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1462 for dir in tcl_includes + tk_includes: |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1463 if dir not in include_dirs: |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1464 include_dirs.append(dir) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1465 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1466 # Check for various platform-specific directories |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1467 if platform == 'sunos5': |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1468 include_dirs.append('/usr/openwin/include') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1469 added_lib_dirs.append('/usr/openwin/lib') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1470 elif os.path.exists('/usr/X11R6/include'): |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1471 include_dirs.append('/usr/X11R6/include') |
|
33986
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
1472 added_lib_dirs.append('/usr/X11R6/lib64') |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1473 added_lib_dirs.append('/usr/X11R6/lib') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1474 elif os.path.exists('/usr/X11R5/include'): |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1475 include_dirs.append('/usr/X11R5/include') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1476 added_lib_dirs.append('/usr/X11R5/lib') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1477 else: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1478 # Assume default location for X11 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1479 include_dirs.append('/usr/X11/include') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1480 added_lib_dirs.append('/usr/X11/lib') |
| 15940 | 1481 |
|
27695
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1482 # If Cygwin, then verify that X is installed before proceeding |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1483 if platform == 'cygwin': |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1484 x11_inc = find_file('X11/Xlib.h', [], include_dirs) |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1485 if x11_inc is None: |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1486 return |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1487 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1488 # Check for BLT extension |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1489 if self.compiler_obj.find_library_file(lib_dirs + added_lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1490 'BLT8.0'): |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1491 defs.append( ('WITH_BLT', 1) ) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1492 libs.append('BLT8.0') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1493 elif self.compiler_obj.find_library_file(lib_dirs + added_lib_dirs, |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1494 'BLT'): |
|
26626
e41ee2b8e73d
Patch #629126: Detect BLT by also looking for libBLT.
Martin v. Löwis <martin@v.loewis.de>
parents:
26616
diff
changeset
|
1495 defs.append( ('WITH_BLT', 1) ) |
|
e41ee2b8e73d
Patch #629126: Detect BLT by also looking for libBLT.
Martin v. Löwis <martin@v.loewis.de>
parents:
26616
diff
changeset
|
1496 libs.append('BLT') |
| 15940 | 1497 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1498 # Add the Tcl/Tk libraries |
|
27694
7c4dda0c145f
This patch enables Cygwin Python to build _tkinter against Tcl/Tk 8.4.
Jason Tishler <jason@tishler.net>
parents:
27598
diff
changeset
|
1499 libs.append('tk'+ version) |
|
7c4dda0c145f
This patch enables Cygwin Python to build _tkinter against Tcl/Tk 8.4.
Jason Tishler <jason@tishler.net>
parents:
27598
diff
changeset
|
1500 libs.append('tcl'+ version) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1501 |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1502 if platform in ['aix3', 'aix4']: |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1503 libs.append('ld') |
| 15940 | 1504 |
|
18819
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1505 # Finally, link with the X11 libraries (not appropriate on cygwin) |
|
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1506 if platform != "cygwin": |
|
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1507 libs.append('X11') |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1508 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1509 ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1510 define_macros=[('WITH_APPINIT', 1)] + defs, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1511 include_dirs = include_dirs, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1512 libraries = libs, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1513 library_dirs = added_lib_dirs, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1514 ) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1515 self.extensions.append(ext) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1516 |
|
27820
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1517 ## # Uncomment these lines if you want to play with xxmodule.c |
|
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1518 ## ext = Extension('xx', ['xxmodule.c']) |
|
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1519 ## self.extensions.append(ext) |
|
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1520 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1521 # XXX handle these, but how to detect? |
| 15940 | 1522 # *** Uncomment and edit for PIL (TkImaging) extension only: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1523 # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ |
| 15940 | 1524 # *** Uncomment and edit for TOGL extension only: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1525 # -DWITH_TOGL togl.c \ |
| 15940 | 1526 # *** Uncomment these for TOGL extension only: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1527 # -lGL -lGLU -lXext -lXmu \ |
| 15940 | 1528 |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1529 def configure_ctypes_darwin(self, ext): |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1530 # Darwin (OS X) uses preconfigured files, in |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1531 # the Modules/_ctypes/libffi_osx directory. |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
1532 srcdir = sysconfig.get_config_var('srcdir') |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1533 ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1534 '_ctypes', 'libffi_osx')) |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1535 sources = [os.path.join(ffi_srcdir, p) |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1536 for p in ['ffi.c', |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1537 'x86/darwin64.S', |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1538 'x86/x86-darwin.S', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1539 'x86/x86-ffi_darwin.c', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1540 'x86/x86-ffi64.c', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1541 'powerpc/ppc-darwin.S', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1542 'powerpc/ppc-darwin_closure.S', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1543 'powerpc/ppc-ffi_darwin.c', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1544 'powerpc/ppc64-darwin_closure.S', |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1545 ]] |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1546 |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1547 # Add .S (preprocessed assembly) to C compiler source extensions. |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1548 self.compiler_obj.src_extensions.append('.S') |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1549 |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1550 include_dirs = [os.path.join(ffi_srcdir, 'include'), |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1551 os.path.join(ffi_srcdir, 'powerpc')] |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1552 ext.include_dirs.extend(include_dirs) |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1553 ext.sources.extend(sources) |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1554 return True |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1555 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1556 def configure_ctypes(self, ext): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1557 if not self.use_system_libffi: |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1558 if sys.platform == 'darwin': |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1559 return self.configure_ctypes_darwin(ext) |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1560 |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
1561 srcdir = sysconfig.get_config_var('srcdir') |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1562 ffi_builddir = os.path.join(self.build_temp, 'libffi') |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1563 ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules', |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1564 '_ctypes', 'libffi')) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1565 ffi_configfile = os.path.join(ffi_builddir, 'fficonfig.py') |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1566 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1567 from distutils.dep_util import newer_group |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1568 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1569 config_sources = [os.path.join(ffi_srcdir, fname) |
|
40893
32c4897b5d46
Merged revisions 53623-53858 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40807
diff
changeset
|
1570 for fname in os.listdir(ffi_srcdir) |
|
32c4897b5d46
Merged revisions 53623-53858 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40807
diff
changeset
|
1571 if os.path.isfile(os.path.join(ffi_srcdir, fname))] |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1572 if self.force or newer_group(config_sources, |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1573 ffi_configfile): |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1574 from distutils.dir_util import mkpath |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1575 mkpath(ffi_builddir) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1576 config_args = [] |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1577 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1578 # Pass empty CFLAGS because we'll just append the resulting |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1579 # CFLAGS to Python's; -g or -O2 is to be avoided. |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1580 cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \ |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1581 % (ffi_builddir, ffi_srcdir, " ".join(config_args)) |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1582 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1583 res = os.system(cmd) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1584 if res or not os.path.exists(ffi_configfile): |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
1585 print("Failed to configure _ctypes module") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1586 return False |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1587 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1588 fficonfig = {} |
|
58295
15b0668f0dc5
Note: I'm merging these changes out of consistency, but they don't seem
Antoine Pitrou <solipsis@pitrou.net>
parents:
58222
diff
changeset
|
1589 with open(ffi_configfile) as f: |
|
15b0668f0dc5
Note: I'm merging these changes out of consistency, but they don't seem
Antoine Pitrou <solipsis@pitrou.net>
parents:
58222
diff
changeset
|
1590 exec(f.read(), globals(), fficonfig) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1591 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1592 # Add .S (preprocessed assembly) to C compiler source extensions. |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1593 self.compiler_obj.src_extensions.append('.S') |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1594 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1595 include_dirs = [os.path.join(ffi_builddir, 'include'), |
|
58295
15b0668f0dc5
Note: I'm merging these changes out of consistency, but they don't seem
Antoine Pitrou <solipsis@pitrou.net>
parents:
58222
diff
changeset
|
1596 ffi_builddir, |
|
15b0668f0dc5
Note: I'm merging these changes out of consistency, but they don't seem
Antoine Pitrou <solipsis@pitrou.net>
parents:
58222
diff
changeset
|
1597 os.path.join(ffi_srcdir, 'src')] |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1598 extra_compile_args = fficonfig['ffi_cflags'].split() |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1599 |
|
58295
15b0668f0dc5
Note: I'm merging these changes out of consistency, but they don't seem
Antoine Pitrou <solipsis@pitrou.net>
parents:
58222
diff
changeset
|
1600 ext.sources.extend(os.path.join(ffi_srcdir, f) for f in |
|
15b0668f0dc5
Note: I'm merging these changes out of consistency, but they don't seem
Antoine Pitrou <solipsis@pitrou.net>
parents:
58222
diff
changeset
|
1601 fficonfig['ffi_sources']) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1602 ext.include_dirs.extend(include_dirs) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1603 ext.extra_compile_args.extend(extra_compile_args) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1604 return True |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1605 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1606 def detect_ctypes(self, inc_dirs, lib_dirs): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1607 self.use_system_libffi = False |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1608 include_dirs = [] |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1609 extra_compile_args = [] |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1610 extra_link_args = [] |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1611 sources = ['_ctypes/_ctypes.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1612 '_ctypes/callbacks.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1613 '_ctypes/callproc.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1614 '_ctypes/stgdict.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1615 '_ctypes/cfield.c', |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1616 '_ctypes/malloc_closure.c'] |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1617 depends = ['_ctypes/ctypes.h'] |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1618 |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1619 if sys.platform == 'darwin': |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1620 sources.append('_ctypes/darwin/dlfcn_simple.c') |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1621 extra_compile_args.append('-DMACOSX') |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1622 include_dirs.append('_ctypes/darwin') |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1623 # XXX Is this still needed? |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1624 ## extra_link_args.extend(['-read_only_relocs', 'warning']) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1625 |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1626 elif sys.platform == 'sunos5': |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1627 # XXX This shouldn't be necessary; it appears that some |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1628 # of the assembler code is non-PIC (i.e. it has relocations |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1629 # when it shouldn't. The proper fix would be to rewrite |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1630 # the assembler code to be PIC. |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1631 # This only works with GCC; the Sun compiler likely refuses |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1632 # this option. If you want to compile ctypes with the Sun |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1633 # compiler, please research a proper solution, instead of |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1634 # finding some -z option for the Sun compiler. |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1635 extra_link_args.append('-mimpure-text') |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1636 |
|
47490
3255f1f160ad
Merged revisions 63897-63898 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents:
47376
diff
changeset
|
1637 elif sys.platform.startswith('hp-ux'): |
|
47230
a218d5cb258b
Merged revisions 63395-63396,63511,63522-63523 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents:
46970
diff
changeset
|
1638 extra_link_args.append('-fPIC') |
|
a218d5cb258b
Merged revisions 63395-63396,63511,63522-63523 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents:
46970
diff
changeset
|
1639 |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1640 ext = Extension('_ctypes', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1641 include_dirs=include_dirs, |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1642 extra_compile_args=extra_compile_args, |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1643 extra_link_args=extra_link_args, |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1644 libraries=[], |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1645 sources=sources, |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1646 depends=depends) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1647 ext_test = Extension('_ctypes_test', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1648 sources=['_ctypes/_ctypes_test.c']) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1649 self.extensions.extend([ext, ext_test]) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1650 |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1651 if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1652 return |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1653 |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1654 if sys.platform == 'darwin': |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1655 # OS X 10.5 comes with libffi.dylib; the include files are |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1656 # in /usr/include/ffi |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1657 inc_dirs.append('/usr/include/ffi') |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1658 |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
1659 ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] |
|
60820
8e4247411754
Merged revisions 80320 via svnmerge from
Matthias Klose <doko@ubuntu.com>
parents:
60705
diff
changeset
|
1660 if not ffi_inc or ffi_inc[0] == '': |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
1661 ffi_inc = find_file('ffi.h', [], inc_dirs) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1662 if ffi_inc is not None: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1663 ffi_h = ffi_inc[0] + '/ffi.h' |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1664 fp = open(ffi_h) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1665 while 1: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1666 line = fp.readline() |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1667 if not line: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1668 ffi_inc = None |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1669 break |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1670 if line.startswith('#define LIBFFI_H'): |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1671 break |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1672 ffi_lib = None |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1673 if ffi_inc is not None: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1674 for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1675 if (self.compiler_obj.find_library_file(lib_dirs, lib_name)): |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1676 ffi_lib = lib_name |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1677 break |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1678 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1679 if ffi_inc and ffi_lib: |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1680 ext.include_dirs.extend(ffi_inc) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1681 ext.libraries.append(ffi_lib) |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1682 self.use_system_libffi = True |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1683 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1684 |
|
17886
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1685 class PyBuildInstall(install): |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1686 # Suppress the warning about installation into the lib_dynload |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1687 # directory, which is not in sys.path when running Python during |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1688 # installation: |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1689 def initialize_options (self): |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1690 install.initialize_options(self) |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1691 self.warn_dir=0 |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1692 |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1693 class PyBuildInstallLib(install_lib): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1694 # Do exactly what install_lib does but make sure correct access modes get |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1695 # set on installed directories and files. All installed files with get |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1696 # mode 644 unless they are a shared library in which case they will get |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1697 # mode 755. All installed directories will get mode 755. |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1698 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1699 so_ext = sysconfig.get_config_var("SO") |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1700 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1701 def install(self): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1702 outfiles = install_lib.install(self) |
|
42084
229c28cb9afb
Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
1703 self.set_file_modes(outfiles, 0o644, 0o755) |
|
229c28cb9afb
Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
1704 self.set_dir_modes(self.install_dir, 0o755) |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1705 return outfiles |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1706 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1707 def set_file_modes(self, files, defaultMode, sharedLibMode): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1708 if not self.is_chmod_supported(): return |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1709 if not files: return |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1710 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1711 for filename in files: |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1712 if os.path.islink(filename): continue |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1713 mode = defaultMode |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1714 if filename.endswith(self.so_ext): mode = sharedLibMode |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1715 log.info("changing mode of %s to %o", filename, mode) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1716 if not self.dry_run: os.chmod(filename, mode) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1717 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1718 def set_dir_modes(self, dirname, mode): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1719 if not self.is_chmod_supported(): return |
|
55065
56a276396e15
Merged revisions 73788 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
54285
diff
changeset
|
1720 for dirpath, dirnames, fnames in os.walk(dirname): |
|
56a276396e15
Merged revisions 73788 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
54285
diff
changeset
|
1721 if os.path.islink(dirpath): |
|
56a276396e15
Merged revisions 73788 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
54285
diff
changeset
|
1722 continue |
|
56a276396e15
Merged revisions 73788 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
54285
diff
changeset
|
1723 log.info("changing mode of %s to %o", dirpath, mode) |
|
56a276396e15
Merged revisions 73788 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
54285
diff
changeset
|
1724 if not self.dry_run: os.chmod(dirpath, mode) |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1725 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1726 def is_chmod_supported(self): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1727 return hasattr(os, 'chmod') |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1728 |
|
27990
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1729 SUMMARY = """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1730 Python is an interpreted, interactive, object-oriented programming |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1731 language. It is often compared to Tcl, Perl, Scheme or Java. |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1732 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1733 Python combines remarkable power with very clear syntax. It has |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1734 modules, classes, exceptions, very high level dynamic data types, and |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1735 dynamic typing. There are interfaces to many system calls and |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1736 libraries, as well as to various windowing systems (X11, Motif, Tk, |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1737 Mac, MFC). New built-in modules are easily written in C or C++. Python |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1738 is also usable as an extension language for applications that need a |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1739 programmable interface. |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1740 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1741 The Python implementation is portable: it runs on many brands of UNIX, |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1742 on Windows, DOS, OS/2, Mac, Amiga... If your favorite system isn't |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1743 listed here, it may still be supported, if there's a C compiler for |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1744 it. Ask around on comp.lang.python -- or just try compiling Python |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1745 yourself. |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1746 """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1747 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1748 CLASSIFIERS = """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1749 Development Status :: 6 - Mature |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1750 License :: OSI Approved :: Python Software Foundation License |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1751 Natural Language :: English |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1752 Programming Language :: C |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1753 Programming Language :: Python |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1754 Topic :: Software Development |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1755 """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1756 |
| 15940 | 1757 def main(): |
|
17890
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
1758 # turn off warnings when deprecated modules are imported |
|
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
1759 import warnings |
|
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
1760 warnings.filterwarnings("ignore",category=DeprecationWarning) |
|
27990
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1761 setup(# PyPI Metadata (PEP 301) |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1762 name = "Python", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1763 version = sys.version.split()[0], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1764 url = "http://www.python.org/%s" % sys.version[:3], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1765 maintainer = "Guido van Rossum and the Python community", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1766 maintainer_email = "python-dev@python.org", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1767 description = "A high-level object-oriented programming language", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1768 long_description = SUMMARY.strip(), |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1769 license = "PSF license", |
|
42142
a53e48be6df9
Merged revisions 56125-56153 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42084
diff
changeset
|
1770 classifiers = [x for x in CLASSIFIERS.split("\n") if x], |
|
27990
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1771 platforms = ["Many"], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1772 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1773 # Build info |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1774 cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall, |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1775 'install_lib':PyBuildInstallLib}, |
| 15940 | 1776 # The struct module is defined here, because build_ext won't be |
| 1777 # called unless there's at least one extension module defined. | |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1778 ext_modules=[Extension('_struct', ['_struct.c'])], |
| 16844 | 1779 |
|
54285
997ef68bfa15
install 2to3, overwritting any old installations #5756
Benjamin Peterson <benjamin@python.org>
parents:
54280
diff
changeset
|
1780 scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3", |
|
997ef68bfa15
install 2to3, overwritting any old installations #5756
Benjamin Peterson <benjamin@python.org>
parents:
54280
diff
changeset
|
1781 "Tools/scripts/2to3"] |
| 15940 | 1782 ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1783 |
| 15940 | 1784 # --install-platlib |
| 1785 if __name__ == '__main__': | |
| 1786 main() |
