Mercurial > cpython-lru_cache-weakref
annotate setup.py @ 59605:768722b2ae0a
* Replaces the internals of the subprocess module from fork through exec on
POSIX systems with a C extension module. This is required in order for
the subprocess module to be made thread safe.
The pure python implementation is retained so that it can continue to be
used if for some reason the _posixsubprocess extension module is not
available.
The unittest executes tests on both code paths to guarantee compatibility.
* Moves PyLong_FromPid and PyLong_AsPid from posixmodule.c into longobject.h.
Code reviewed by jeffrey.yasskin at http://codereview.appspot.com/223077/show
| author | Gregory P. Smith <greg@mad-scientist.com> |
|---|---|
| date | Sun, 14 Mar 2010 06:49:55 +0000 |
| parents | 445f801ca2d0 |
| children | 37ad40a28d3b |
| 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 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
31 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
|
32 """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
|
33 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
|
34 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
|
35 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
36 '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
|
37 '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
|
38 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
|
39 '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
|
40 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
|
41 """ |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
42 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
43 # 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
|
44 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
|
45 f = os.path.join(dir, filename) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
46 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
|
47 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
48 # 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
|
49 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
|
50 f = os.path.join(dir, filename) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
51 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
|
52 return [dir] |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
53 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
54 # Not found anywhere |
| 15940 | 55 return None |
| 56 | |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
57 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
|
58 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
|
59 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
|
60 return None |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
61 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
62 # 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
|
63 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
|
64 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
|
65 # 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
|
66 p = p.rstrip(os.sep) |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
67 if p == dirname: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
68 return [ ] |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
69 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
70 # 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
|
71 # 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
|
72 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
|
73 # 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
|
74 p = p.rstrip(os.sep) |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
75 if p == dirname: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
76 return [p] |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
77 else: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
78 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
|
79 |
| 15940 | 80 def module_enabled(extlist, modname): |
| 81 """Returns whether the module 'modname' is present in the list | |
| 82 of extensions 'extlist'.""" | |
| 83 extlist = [ext for ext in extlist if ext.name == modname] | |
| 84 return len(extlist) | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
85 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
86 def find_module_file(module, dirlist): |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
87 """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
|
88 return the unadorned filename""" |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
89 list = find_file(module, [], dirlist) |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
90 if not list: |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
91 return module |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
92 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
|
93 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
|
94 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
|
95 |
| 15940 | 96 class PyBuildExt(build_ext): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
97 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
98 def __init__(self, dist): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
99 build_ext.__init__(self, dist) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
100 self.failed = [] |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
101 |
| 15940 | 102 def build_extensions(self): |
| 103 | |
| 104 # 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
|
105 missing = self.detect_modules() |
| 15940 | 106 |
| 107 # 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
|
108 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
|
109 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
|
110 # 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
|
111 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
|
112 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
|
113 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
|
114 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
|
115 self.extensions = extensions |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
116 |
| 15940 | 117 # 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
|
118 # 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
|
119 srcdir = sysconfig.get_config_var('srcdir') |
| 25790 | 120 if not srcdir: |
| 121 # Maybe running on Windows but not using CYGWIN? | |
| 122 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
|
123 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
|
124 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
|
125 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
126 # Platform-dependent module source and include directories |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
127 platform = self.get_platform() |
| 15940 | 128 |
|
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
|
129 # 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
|
130 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
|
131 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
|
132 |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
133 # 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
|
134 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
|
135 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
|
136 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
137 for ext in self.extensions[:]: |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
138 ext.sources = [ find_module_file(filename, moddirlist) |
| 15940 | 139 for filename in ext.sources ] |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
140 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
|
141 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
|
142 for filename in ext.depends] |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
143 else: |
|
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
144 ext.depends = [] |
|
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
145 # 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
|
146 ext.depends.extend(headers) |
|
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44742
diff
changeset
|
147 |
|
16038
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
148 # 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
|
149 # 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
|
150 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
|
151 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
|
152 |
|
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
|
153 if platform != 'mac': |
|
36144
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
154 # Parse Modules/Setup and Modules/Setup.local to figure out which |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
155 # modules are turned on in the file. |
|
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
|
156 remove_modules = [] |
|
36144
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
157 for filename in ('Modules/Setup', 'Modules/Setup.local'): |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
158 input = text_file.TextFile(filename, join_lines=1) |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
159 while 1: |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
160 line = input.readline() |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
161 if not line: break |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
162 line = line.split() |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
163 remove_modules.append(line[0]) |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
164 input.close() |
|
36162
1e595b6c924e
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
36156
diff
changeset
|
165 |
|
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
|
166 for ext in self.extensions[:]: |
|
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
|
167 if ext.name in remove_modules: |
|
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
|
168 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
|
169 |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
170 # 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
|
171 # 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
|
172 # 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
|
173 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
|
174 args = {} |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
175 # 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
|
176 # compilers |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
177 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
|
178 (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
|
179 args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
180 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
|
181 |
| 15940 | 182 build_ext.build_extensions(self) |
| 183 | |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
184 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
|
185 if self.failed: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
186 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
|
187 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
188 def print_three_column(lst): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
189 lst.sort(key=str.lower) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
190 # guarantee zip() doesn't drop anything |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
191 while len(lst) % 3: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
192 lst.append("") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
193 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
|
194 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
|
195 longest, g)) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
196 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
197 if missing: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
198 print() |
|
50404
d32a669f96da
Merged revisions 68113 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
50049
diff
changeset
|
199 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
|
200 "these modules were not found:") |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
201 print_three_column(missing) |
|
42775
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
202 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
|
203 " 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
|
204 print() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
205 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
206 if self.failed: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
207 failed = self.failed[:] |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
208 print() |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
209 print("Failed to build these modules:") |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
210 print_three_column(failed) |
|
42775
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
211 print() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
212 |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
213 def build_extension(self, ext): |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
214 |
|
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
|
215 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
|
216 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
|
217 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
|
218 |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
219 try: |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
220 build_ext.build_extension(self, ext) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
40582
diff
changeset
|
221 except (CCompilerError, DistutilsError) as why: |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
222 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
|
223 (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
|
224 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
|
225 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
|
226 # 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
|
227 # 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
|
228 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
|
229 self.announce( |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
230 '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
|
231 ext.name) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
232 return |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
233 |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
234 if self.get_platform() == 'darwin' and ( |
|
48490
8e9e65383afb
sys.maxint -> sys.maxsize
Benjamin Peterson <benjamin@python.org>
parents:
48485
diff
changeset
|
235 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
|
236 # 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
|
237 # 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
|
238 # 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
|
239 # 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
|
240 # process will fail. |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
241 self.announce( |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
242 'WARNING: skipping import check for "%s"' % |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
243 ext.name) |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
244 return |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
245 |
|
23513
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
246 # 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
|
247 # modules have been imported |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
248 if self.get_platform() == 'cygwin': |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
249 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
|
250 % ext.name) |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
251 return |
| 21788 | 252 ext_filename = os.path.join( |
| 253 self.build_lib, | |
| 254 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
|
255 |
|
79f84bc2b149
Fix bug 3375 - _multiprocessing.so build problems on OS X.
Guido van Rossum <guido@python.org>
parents:
48490
diff
changeset
|
256 # 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
|
257 # 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
|
258 # 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
|
259 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
|
260 |
|
17890
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
261 try: |
| 21788 | 262 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
|
263 except ImportError as why: |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
264 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
|
265 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
|
266 ' 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
|
267 assert not self.inplace |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
268 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
|
269 newname = basename + "_failed" + tail |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
270 if os.path.exists(newname): |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
271 os.remove(newname) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
272 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
|
273 |
|
28111
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
274 # 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
|
275 # 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
|
276 # _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
|
277 # use here. |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
278 # 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
|
279 # 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
|
280 try: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
281 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
|
282 os.remove(filename) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
283 except AttributeError: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
284 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
|
285 except: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
286 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
|
287 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
|
288 '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
|
289 level=3) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
290 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
|
291 |
|
29508
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
292 def get_platform(self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
293 # 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
|
294 for platform in ['cygwin', 'darwin', 'osf1']: |
|
29508
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
295 if sys.platform.startswith(platform): |
|
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
296 return platform |
|
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
297 return sys.platform |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
298 |
| 15940 | 299 def detect_modules(self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
300 # 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
|
301 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
|
302 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
|
303 |
|
34124
4e38ecd1912e
setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents:
33986
diff
changeset
|
304 # 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
|
305 # 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
|
306 # 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
|
307 # 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
|
308 # 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
|
309 # 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
|
310 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
|
311 ('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
|
312 ('LDFLAGS', '-L', self.compiler_obj.library_dirs), |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
313 ('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
|
314 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
|
315 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
|
316 # To prevent optparse from raising an exception about any |
| 49458 | 317 # 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
|
318 # 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
|
319 # 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
|
320 # |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
321 # 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
|
322 # 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
|
323 # 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
|
324 # used for a library directory. |
|
42775
d7517c306791
Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42653
diff
changeset
|
325 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
|
326 ' ', 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
|
327 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
|
328 # 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
|
329 # allowed |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
330 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
|
331 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
|
332 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
|
333 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
|
334 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
|
335 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
|
336 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
|
337 |
| 24477 | 338 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
|
339 add_dir_to_list(self.compiler_obj.library_dirs, |
| 24477 | 340 sysconfig.get_config_var("LIBDIR")) |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
341 add_dir_to_list(self.compiler_obj.include_dirs, |
| 24477 | 342 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
|
343 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
344 # 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
|
345 # 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
|
346 # 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
|
347 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
|
348 '/lib64', '/usr/lib64', |
|
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
349 '/lib', '/usr/lib', |
|
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
350 ] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
351 inc_dirs = self.compiler_obj.include_dirs + ['/usr/include'] |
| 15940 | 352 exts = [] |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
353 missing = [] |
| 15940 | 354 |
|
34911
87719ae9288c
Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents:
34717
diff
changeset
|
355 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
|
356 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
|
357 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
358 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
|
359 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
|
360 |
|
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
|
361 # 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
|
362 if platform in ['osf1', 'unixware7', 'openunix8']: |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
363 lib_dirs += ['/usr/ccs/lib'] |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
364 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
365 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
|
366 # 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
|
367 # 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
|
368 # 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
|
369 # 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
|
370 # 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
|
371 # 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
|
372 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
|
373 '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
|
374 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
|
375 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
|
376 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
|
377 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
378 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
|
379 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
|
380 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
|
381 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
382 # 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
|
383 math_libs = ['m'] |
| 42645 | 384 if platform in ['darwin', 'mac']: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
385 math_libs = [] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
386 |
| 15940 | 387 # XXX Omitted modules: gl, pure, dl, SGI-specific modules |
| 388 | |
| 389 # | |
| 390 # The following modules are all pretty straightforward, and compile | |
| 391 # on pretty much any POSIXish platform. | |
| 392 # | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
393 |
| 15940 | 394 # 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
|
395 exts.append( Extension('_weakref', ['_weakref.c']) ) |
| 15940 | 396 |
| 397 # array objects | |
| 398 exts.append( Extension('array', ['arraymodule.c']) ) | |
| 399 # complex math library functions | |
|
57866
9751ddcc1882
Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57762
diff
changeset
|
400 exts.append( Extension('cmath', ['cmathmodule.c', '_math.c'], |
|
9751ddcc1882
Merged revisions 76978 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57762
diff
changeset
|
401 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
|
402 libraries=math_libs) ) |
| 15940 | 403 # math library functions, e.g. sin() |
|
57758
b45ca11b9a3e
Merged revisions 76861 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
57490
diff
changeset
|
404 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
|
405 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
|
406 libraries=math_libs) ) |
| 15940 | 407 # 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
|
408 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
|
409 libraries=math_libs) ) |
|
32400
6ce67f7b0430
Add compilation of timemodule.c with datetimemodule.c to get
Brett Cannon <bcannon@gmail.com>
parents:
32244
diff
changeset
|
410 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
|
411 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
|
412 # 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
|
413 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
|
414 # random number generator implemented in C |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
415 exts.append( Extension("_random", ["_randommodule.c"]) ) |
|
31436
63fa60f2d61c
* Move collections.deque() in from the sandbox
Raymond Hettinger <python@rcn.com>
parents:
31386
diff
changeset
|
416 # high-performance collections |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
417 exts.append( Extension("_collections", ["_collectionsmodule.c"]) ) |
|
31353
ed20259a1ea5
SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents:
31090
diff
changeset
|
418 # bisect |
|
ed20259a1ea5
SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents:
31090
diff
changeset
|
419 exts.append( Extension("_bisect", ["_bisectmodule.c"]) ) |
|
30875
2acd28bd4d0f
Convert heapq.py to a C implementation.
Raymond Hettinger <python@rcn.com>
parents:
30770
diff
changeset
|
420 # heapq |
|
31931
63b68cb2b442
* Restore the pure python version of heapq.py.
Raymond Hettinger <python@rcn.com>
parents:
31742
diff
changeset
|
421 exts.append( Extension("_heapq", ["_heapqmodule.c"]) ) |
| 15940 | 422 # operator.add() and similar goodies |
| 423 exts.append( Extension('operator', ['operator.c']) ) | |
|
47645
0ae50aa7d97c
Restore _pickle module accelerator module.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
47634
diff
changeset
|
424 # C-optimized pickle replacement |
|
0ae50aa7d97c
Restore _pickle module accelerator module.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
47634
diff
changeset
|
425 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
|
426 # 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
|
427 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
|
428 # _json speedups |
|
9f45979558a9
Merged revisions 62734,62736,62748,62769 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46694
diff
changeset
|
429 exts.append( Extension("_json", ["_json.c"]) ) |
|
16416
7d39d9dcf2d6
Whitespace correction...
Marc-André Lemburg <mal@egenix.com>
parents:
16415
diff
changeset
|
430 # Python C API test module |
|
51520
94d9d525401c
Merged revisions 69500 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
51359
diff
changeset
|
431 exts.append( Extension('_testcapi', ['_testcapimodule.c'], |
|
94d9d525401c
Merged revisions 69500 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
51359
diff
changeset
|
432 depends=['testcapi_long.h']) ) |
|
43527
2b746f28b399
remove hotshot profiler from Py3k
Fred Drake <fdrake@acm.org>
parents:
43480
diff
changeset
|
433 # profiler (_lsprof is for cProfile.py) |
| 36459 | 434 exts.append( Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']) ) |
| 15940 | 435 # 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
|
436 exts.append( Extension('unicodedata', ['unicodedata.c']) ) |
| 15940 | 437 |
| 438 # Modules with some UNIX dependencies -- on by default: | |
| 439 # (If you have a really backward UNIX, select and socket may not be | |
| 440 # supported...) | |
| 441 | |
| 442 # fcntl(2) and ioctl(2) | |
| 443 exts.append( Extension('fcntl', ['fcntlmodule.c']) ) | |
|
24032
c10c09192c12
More fixes for building MacPython extension modules. It now actually succeeds
Jack Jansen <jack.jansen@cwi.nl>
parents:
24008
diff
changeset
|
444 if platform not in ['mac']: |
|
34592
fa52f1ffc161
spwdmodule.c should only be built when either HAVE_GETSPNAM or HAVE_GETSPENT is
Brett Cannon <bcannon@gmail.com>
parents:
34481
diff
changeset
|
445 # pwd(3) |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
446 exts.append( Extension('pwd', ['pwdmodule.c']) ) |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
447 # grp(3) |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
448 exts.append( Extension('grp', ['grpmodule.c']) ) |
|
34481
9c62e7d690a5
Patch #579435: Shadow Password Support Module
Martin v. Löwis <martin@v.loewis.de>
parents:
34306
diff
changeset
|
449 # spwd, shadow passwords |
|
34911
87719ae9288c
Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents:
34717
diff
changeset
|
450 if (config_h_vars.get('HAVE_GETSPNAM', False) or |
|
87719ae9288c
Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents:
34717
diff
changeset
|
451 config_h_vars.get('HAVE_GETSPENT', False)): |
|
34592
fa52f1ffc161
spwdmodule.c should only be built when either HAVE_GETSPNAM or HAVE_GETSPENT is
Brett Cannon <bcannon@gmail.com>
parents:
34481
diff
changeset
|
452 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
|
453 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
454 missing.append('spwd') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
455 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
456 missing.extend(['pwd', 'grp', 'spwd']) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
457 |
| 15940 | 458 # select(2); not on ancient System V |
| 459 exts.append( Extension('select', ['selectmodule.c']) ) | |
| 460 | |
| 461 # Fred Drake's interface to the Python parser | |
| 462 exts.append( Extension('parser', ['parsermodule.c']) ) | |
| 463 | |
| 464 # Memory-mapped files (also works on Win32). | |
|
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
|
465 if platform not in ['mac']: |
|
23777
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
466 exts.append( Extension('mmap', ['mmapmodule.c']) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
467 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
468 missing.append('mmap') |
| 15940 | 469 |
|
33370
af65004f622f
Remove mpz, rotor, xreadlines modules
Andrew M. Kuchling <amk@amk.ca>
parents:
33294
diff
changeset
|
470 # Lance Ellinghaus's syslog module |
|
24032
c10c09192c12
More fixes for building MacPython extension modules. It now actually succeeds
Jack Jansen <jack.jansen@cwi.nl>
parents:
24008
diff
changeset
|
471 if platform not in ['mac']: |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
472 # syslog daemon interface |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
473 exts.append( Extension('syslog', ['syslogmodule.c']) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
474 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
475 missing.append('syslog') |
| 15940 | 476 |
| 477 # | |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
478 # 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
|
479 # libraries, are platform-specific, or present other surprises. |
| 15940 | 480 # |
| 481 | |
| 482 # Multimedia modules | |
| 483 # These don't work for 64-bit platforms!!! | |
| 484 # These represent audio samples or images as strings: | |
| 485 | |
|
32763
8ad5a1620092
Move comment that goes along with audioop
Neal Norwitz <nnorwitz@gmail.com>
parents:
32762
diff
changeset
|
486 # Operations on audio samples |
|
32797
ea54fdb86530
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
32765
diff
changeset
|
487 # 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
|
488 # 64-bit platforms. |
|
76ad814bc67c
Patch #993173: Enable audioop on 64-bit platforms.
Martin v. Löwis <martin@v.loewis.de>
parents:
32735
diff
changeset
|
489 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
|
490 |
| 15940 | 491 # readline |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
492 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
|
493 if platform == 'darwin': |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
494 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
|
495 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
|
496 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
|
497 os_release = 8 |
|
56135
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
498 if os_release < 9: |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
499 # 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
|
500 # 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
|
501 # readline package |
|
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
502 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
|
503 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
|
504 if do_readline: |
|
56135
1c50dc213312
Merged revisions 74970 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55970
diff
changeset
|
505 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
|
506 # 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
|
507 # library and then a static library, instead of first looking |
| 43239 | 508 # 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
|
509 # This way a staticly linked custom readline 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
|
510 # before the (broken) 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
|
511 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
|
512 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
513 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
|
514 |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
515 readline_libs = ['readline'] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
516 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
|
517 'ncursesw'): |
|
36479
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
518 readline_libs.append('ncursesw') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
519 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
|
520 'ncurses'): |
|
19319
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
521 readline_libs.append('ncurses') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
522 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
|
523 readline_libs.append('curses') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
524 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
|
525 ['/usr/lib/termcap'], |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
526 '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
|
527 readline_libs.append('termcap') |
| 15940 | 528 exts.append( Extension('readline', ['readline.c'], |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
529 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
|
530 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
|
531 libraries=readline_libs) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
532 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
533 missing.append('readline') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
534 |
|
24032
c10c09192c12
More fixes for building MacPython extension modules. It now actually succeeds
Jack Jansen <jack.jansen@cwi.nl>
parents:
24008
diff
changeset
|
535 if platform not in ['mac']: |
|
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
|
536 # crypt module. |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
537 |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
538 if self.compiler_obj.find_library_file(lib_dirs, 'crypt'): |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
539 libs = ['crypt'] |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
540 else: |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
541 libs = [] |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
542 exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
543 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
544 missing.append('crypt') |
| 15940 | 545 |
|
28341
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
546 # CSV files |
|
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
547 exts.append( Extension('_csv', ['_csv.c']) ) |
|
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
548 |
|
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
|
549 # 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
|
550 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
|
551 |
| 15940 | 552 # socket(2) |
|
23811
e3e019bc4e1e
Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents:
23777
diff
changeset
|
553 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
|
554 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
|
555 # 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
|
556 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
|
557 '/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
|
558 '/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
|
559 ] |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
560 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
|
561 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
|
562 ) |
|
29043
8e79dc3731bf
Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents:
29013
diff
changeset
|
563 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
|
564 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
|
565 ['/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
|
566 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
|
567 ssl_incs += krb5_h |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
568 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
|
569 ['/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
|
570 '/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
|
571 ] ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
572 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
573 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
|
574 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
|
575 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
|
576 include_dirs = ssl_incs, |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
577 library_dirs = ssl_libs, |
|
23811
e3e019bc4e1e
Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents:
23777
diff
changeset
|
578 libraries = ['ssl', 'crypto'], |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
579 depends = ['socketmodule.h']), ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
580 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
581 missing.append('_ssl') |
| 15940 | 582 |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
583 # 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
|
584 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
|
585 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
|
586 '^\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
|
587 for ssl_inc_dir in inc_dirs + 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
|
588 name = os.path.join(ssl_inc_dir, 'openssl', 'opensslv.h') |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
589 if os.path.isfile(name): |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
590 try: |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
591 incfile = open(name, 'r') |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
592 for line in incfile: |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
593 m = openssl_ver_re.match(line) |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
594 if m: |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
595 openssl_ver = eval(m.group(1)) |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
596 break |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
597 except IOError: |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
598 pass |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
599 |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
600 # first version found is what we'll use (as the compiler should) |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
601 if openssl_ver: |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
602 break |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
603 |
|
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
|
604 #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
|
605 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
|
606 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
|
607 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
|
608 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
|
609 |
|
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
|
610 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
|
611 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
|
612 # 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
|
613 # 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
|
614 exts.append( Extension('_hashlib', ['_hashopenssl.c'], |
|
58132
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
615 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
|
616 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
|
617 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
|
618 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
|
619 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
|
620 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
|
621 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
|
622 missing.append('_hashlib') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
623 |
|
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
|
624 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
|
625 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
|
626 # 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
|
627 exts.append( Extension('_sha256', ['sha256module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
628 depends=['hashlib.h']) ) |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
629 exts.append( Extension('_sha512', ['sha512module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
630 depends=['hashlib.h']) ) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
631 |
|
58110
abbdc31ea790
small logic cleanup, avoid duplicate openssl_ver check.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58108
diff
changeset
|
632 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
|
633 # 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
|
634 exts.append( Extension('_md5', ['md5module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
635 depends=['hashlib.h']) ) |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
636 exts.append( Extension('_sha1', ['sha1module.c'], |
|
06c968eb4b40
add missing hashlib.h deps.
Gregory P. Smith <greg@mad-scientist.com>
parents:
58110
diff
changeset
|
637 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
|
638 |
|
55198
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
639 # 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
|
640 # 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
|
641 # 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
|
642 # 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
|
643 # 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
|
644 # 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
|
645 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
646 # 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
|
647 # 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
|
648 # |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
649 # 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
|
650 # 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
|
651 # 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
|
652 # 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
|
653 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
654 max_db_ver = (4, 7) |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
655 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
|
656 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
|
657 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
658 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
|
659 """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
|
660 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
661 Args: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
662 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
|
663 """ |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
664 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
|
665 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
|
666 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
|
667 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
668 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
|
669 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
|
670 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
|
671 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
|
672 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
|
673 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
|
674 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
|
675 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
|
676 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
|
677 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
678 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
|
679 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
680 # 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
|
681 # 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
|
682 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
|
683 '/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
|
684 '/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
|
685 '/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
|
686 '/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
|
687 '/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
|
688 '/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
|
689 # 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
|
690 '/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
|
691 '/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
|
692 ] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
693 # 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
|
694 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
|
695 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
|
696 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
|
697 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
|
698 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
|
699 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
|
700 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
|
701 # 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
|
702 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
|
703 # 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
|
704 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
|
705 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
|
706 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
|
707 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
|
708 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
|
709 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
|
710 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
711 # 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
|
712 # 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
|
713 # 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
|
714 # 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
|
715 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
|
716 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
|
717 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
|
718 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
|
719 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
|
720 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
|
721 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
|
722 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
|
723 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
|
724 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
|
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 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
|
727 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
|
728 |
|
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_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
|
730 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
731 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
|
732 try: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
733 # 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
|
734 # 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
|
735 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
|
736 f = os.path.join(d, "db.h") |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
737 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
|
738 if os.path.exists(f): |
|
55572
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
739 f = open(f, "rb").read() |
|
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
740 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
|
741 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
|
742 db_major = int(m.group(1)) |
|
55572
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
743 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
|
744 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
|
745 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
|
746 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
747 # 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
|
748 if db_ver == (4, 6): |
|
55572
bbea98148e12
search through db.h in binary #6680
Benjamin Peterson <benjamin@python.org>
parents:
55198
diff
changeset
|
749 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
|
750 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
|
751 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
|
752 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
|
753 "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
|
754 continue |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
755 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
756 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
|
757 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
|
758 # 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
|
759 # (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
|
760 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
|
761 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
|
762 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
|
763 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
764 # 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
|
765 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
|
766 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
767 # 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
|
768 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
|
769 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
|
770 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
771 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
|
772 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
|
773 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
774 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
|
775 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
|
776 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
|
777 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
778 # 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
|
779 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
|
780 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
|
781 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
|
782 ] |
|
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_dirs_to_check = list(filter(os.path.isdir, 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
|
784 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
785 # 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
|
786 # 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
|
787 # 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
|
788 # 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
|
789 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
|
790 ('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
|
791 ('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
|
792 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
|
793 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
|
794 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
|
795 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
|
796 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
|
797 else: |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
798 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
|
799 |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
800 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
|
801 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
|
802 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
|
803 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
|
804 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
|
805 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
|
806 else: |
|
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: 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
|
808 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
|
809 dblibs = [] |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
810 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
|
811 |
|
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
|
812 # The sqlite interface |
|
40450
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39575
diff
changeset
|
813 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
|
814 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
815 # 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
|
816 # 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
|
817 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
|
818 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
|
819 '/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
|
820 '/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
|
821 '/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
|
822 '/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
|
823 '/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
|
824 ] |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
825 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
|
826 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
|
827 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
|
828 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
829 # 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
|
830 # 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
|
831 # where /usr/include contains an old version of sqlite. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
832 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
|
833 f = os.path.join(d, "sqlite3.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
|
834 if os.path.exists(f): |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
835 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
|
836 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
|
837 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
|
838 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
|
839 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
|
840 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
|
841 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
|
842 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
|
843 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
|
844 # we win! |
|
40450
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39575
diff
changeset
|
845 if sqlite_setup_debug: |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
846 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
|
847 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
|
848 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
|
849 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
|
850 if sqlite_setup_debug: |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
851 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
|
852 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
|
853 elif sqlite_setup_debug: |
|
40774
793e0323d4d6
Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents:
40645
diff
changeset
|
854 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
|
855 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
856 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
|
857 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
|
858 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
|
859 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
|
860 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
|
861 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
|
862 ] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
863 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
|
864 sqlite_dirs_to_check + lib_dirs, 'sqlite3') |
| 49493 | 865 if sqlite_libfile: |
| 866 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
|
867 |
|
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 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
|
869 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
|
870 '_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
|
871 '_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
|
872 '_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
|
873 '_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
|
874 '_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
|
875 '_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
|
876 '_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
|
877 '_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
|
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 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
|
880 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
|
881 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
|
882 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
|
883 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
|
884 |
|
59372
3003c1656e2a
Merged new pysqlite version 2.6.0 from trunk.
Gerhard Häring <gh@ghaering.de>
parents:
58558
diff
changeset
|
885 # 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
|
886 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
|
887 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
888 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
|
889 # 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
|
890 # 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
|
891 # 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
|
892 # 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
|
893 # 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
|
894 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
|
895 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
896 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
|
897 |
|
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 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
|
899 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
|
900 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
|
901 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
|
902 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
|
903 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
|
904 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
|
905 libraries=["sqlite3",])) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
906 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
907 missing.append('_sqlite3') |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
908 |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
909 dbm_order = ['gdbm'] |
| 15940 | 910 # 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
|
911 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
|
912 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
|
913 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
|
914 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
|
915 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
|
916 if dbm_args: |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
917 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
|
918 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
|
919 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
|
920 dbmext = None |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
921 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
|
922 if cand == "ndbm": |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
923 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
|
924 # 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
|
925 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
|
926 'ndbm'): |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
927 ndbm_libs = ['ndbm'] |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
928 else: |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
929 ndbm_libs = [] |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
930 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
|
931 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
|
932 define_macros=[ |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
933 ('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
|
934 ], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
935 libraries=ndbm_libs) |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
936 break |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
937 |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
938 elif cand == "gdbm": |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
939 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
|
940 gdbm_libs = ['gdbm'] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
941 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
|
942 'gdbm_compat'): |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
943 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
|
944 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
|
945 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
|
946 dbmext = Extension( |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
947 '_dbm', ['_dbmmodule.c'], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
948 define_macros=[ |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
949 ('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
|
950 ], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
951 libraries = gdbm_libs) |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
952 break |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
953 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
|
954 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
|
955 dbmext = Extension( |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
956 '_dbm', ['_dbmmodule.c'], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
957 define_macros=[ |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
958 ('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
|
959 ], |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
960 libraries = gdbm_libs) |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
961 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
|
962 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
|
963 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
|
964 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
|
965 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
|
966 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
|
967 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
|
968 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
|
969 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
|
970 ('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
|
971 ('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
|
972 ], |
|
e200ee9ccc4b
Revert r73807, which removed code to be able to build _dbm with bsddb.
Georg Brandl <georg@python.org>
parents:
55128
diff
changeset
|
973 libraries=dblibs) |
|
53634
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
974 break |
|
c4a1c4884056
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
Matthias Klose <doko@ubuntu.com>
parents:
53440
diff
changeset
|
975 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
|
976 exts.append(dbmext) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
977 else: |
|
47285
afbde360dd1a
Create the dbm package from PEP 3108. #2881.
Georg Brandl <georg@python.org>
parents:
47230
diff
changeset
|
978 missing.append('_dbm') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
979 |
| 15940 | 980 # 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
|
981 if ('gdbm' in dbm_order and |
|
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
982 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
|
983 exts.append( Extension('_gdbm', ['_gdbmmodule.c'], |
| 15940 | 984 libraries = ['gdbm'] ) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
985 else: |
|
47285
afbde360dd1a
Create the dbm package from PEP 3108. #2881.
Georg Brandl <georg@python.org>
parents:
47230
diff
changeset
|
986 missing.append('_gdbm') |
| 15940 | 987 |
| 988 # Unix-only modules | |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
989 if platform not in ['mac', 'win32']: |
| 15940 | 990 # Steen Lumholt's termios module |
| 991 exts.append( Extension('termios', ['termios.c']) ) | |
| 992 # 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
|
993 exts.append( Extension('resource', ['resource.c']) ) |
| 15940 | 994 |
|
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
|
995 # 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
|
996 if (platform not in ['cygwin', 'qnx6'] and |
|
19f2359944eb
Merged revisions 77130 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57993
diff
changeset
|
997 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
|
998 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
|
999 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
|
1000 else: |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1001 libs = [] |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1002 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
|
1003 libraries = libs) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1004 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1005 missing.append('nis') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1006 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1007 missing.extend(['nis', 'resource', 'termios']) |
| 15940 | 1008 |
|
31468
de2ed800fa50
a couple other sunos4 support items removed
Skip Montanaro <skip@pobox.com>
parents:
31436
diff
changeset
|
1009 # 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
|
1010 # provided by the ncurses library. |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1011 panel_library = 'panel' |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1012 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
|
1013 curses_libs = ['ncursesw'] |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1014 # 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
|
1015 # _curses_panel.so must link with panelw. |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1016 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
|
1017 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
|
1018 libraries = curses_libs) ) |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1019 elif (self.compiler_obj.find_library_file(lib_dirs, 'ncurses')): |
| 15940 | 1020 curses_libs = ['ncurses'] |
| 1021 exts.append( Extension('_curses', ['_cursesmodule.c'], | |
| 1022 libraries = curses_libs) ) | |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1023 elif (self.compiler_obj.find_library_file(lib_dirs, 'curses') |
| 21274 | 1024 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
|
1025 # 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
|
1026 # the _curses module. |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1027 if (self.compiler_obj.find_library_file(lib_dirs, 'terminfo')): |
| 15940 | 1028 curses_libs = ['curses', 'terminfo'] |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1029 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
|
1030 curses_libs = ['curses', 'termcap'] |
| 15940 | 1031 else: |
|
28473
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
1032 curses_libs = ['curses'] |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1033 |
| 15940 | 1034 exts.append( Extension('_curses', ['_cursesmodule.c'], |
| 1035 libraries = curses_libs) ) | |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1036 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1037 missing.append('_curses') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1038 |
| 15940 | 1039 # 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
|
1040 if (module_enabled(exts, '_curses') and |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1041 self.compiler_obj.find_library_file(lib_dirs, panel_library)): |
| 15940 | 1042 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
|
1043 libraries = [panel_library] + curses_libs) ) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1044 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1045 missing.append('_curses_panel') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1046 |
|
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
|
1047 # 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
|
1048 # 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
|
1049 # 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
|
1050 # |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1051 # 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
|
1052 # 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
|
1053 # 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
|
1054 # 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
|
1055 # 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
|
1056 # |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1057 # 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
|
1058 # 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
|
1059 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
|
1060 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
|
1061 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
|
1062 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
|
1063 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
|
1064 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
|
1065 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
|
1066 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
|
1067 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
|
1068 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
|
1069 break |
|
24605
fd4575b56a4d
Update the URL for getting zlib, and update the minimal required
Guido van Rossum <guido@python.org>
parents:
24579
diff
changeset
|
1070 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
|
1071 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
|
1072 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
|
1073 if version >= version_req: |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1074 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
|
1075 if sys.platform == "darwin": |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1076 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
|
1077 else: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1078 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
|
1079 exts.append( Extension('zlib', ['zlibmodule.c'], |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1080 libraries = ['z'], |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1081 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
|
1082 have_zlib = True |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1083 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1084 missing.append('zlib') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1085 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1086 missing.append('zlib') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1087 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1088 missing.append('zlib') |
| 15940 | 1089 |
|
46042
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1090 # 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
|
1091 # 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
|
1092 if have_zlib: |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1093 extra_compile_args = ['-DUSE_ZLIB_CRC32'] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1094 libraries = ['z'] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1095 extra_link_args = zlib_extra_link_args |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1096 else: |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1097 extra_compile_args = [] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1098 libraries = [] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1099 extra_link_args = [] |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1100 exts.append( Extension('binascii', ['binascii.c'], |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1101 extra_compile_args = extra_compile_args, |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1102 libraries = libraries, |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1103 extra_link_args = extra_link_args) ) |
|
4a6b093b319b
Merged revisions 61820-61823 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46034
diff
changeset
|
1104 |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1105 # Gustavo Niemeyer's bz2 module. |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1106 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
|
1107 if sys.platform == "darwin": |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1108 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
|
1109 else: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1110 bz2_extra_link_args = () |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1111 exts.append( Extension('bz2', ['bz2module.c'], |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1112 libraries = ['bz2'], |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1113 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
|
1114 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1115 missing.append('bz2') |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1116 |
| 15940 | 1117 # Interface to the Expat XML parser |
| 1118 # | |
|
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
|
1119 # 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
|
1120 # 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
|
1121 # 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
|
1122 # 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
|
1123 # 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
|
1124 # cofigure option. |
|
23889
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1125 # |
|
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1126 # 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
|
1127 # |
|
58025
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1128 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
|
1129 expat_inc = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1130 define_macros = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1131 expat_lib = ['expat'] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1132 expat_sources = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1133 else: |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1134 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
|
1135 define_macros = [ |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1136 ('HAVE_EXPAT_CONFIG_H', '1'), |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1137 ] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1138 expat_lib = [] |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1139 expat_sources = ['expat/xmlparse.c', |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1140 'expat/xmlrole.c', |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1141 '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
|
1142 |
|
30731
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1143 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
|
1144 define_macros = define_macros, |
|
58025
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1145 include_dirs = expat_inc, |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1146 libraries = expat_lib, |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1147 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
|
1148 )) |
| 15940 | 1149 |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1150 # 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
|
1151 # 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
|
1152 |
|
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
|
1153 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
|
1154 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
|
1155 exts.append(Extension('_elementtree', |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1156 define_macros = define_macros, |
|
58025
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1157 include_dirs = expat_inc, |
|
228bba2d1f3f
Merged revisions 77169 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
57996
diff
changeset
|
1158 libraries = expat_lib, |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1159 sources = ['_elementtree.c'], |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1160 )) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1161 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1162 missing.append('_elementtree') |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1163 |
|
31386
887ce39f95f2
Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
31353
diff
changeset
|
1164 # 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
|
1165 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
|
1166 ['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
|
1167 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
|
1168 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
|
1169 ['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
|
1170 |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1171 # 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
|
1172 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
|
1173 |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1174 # Richard Oudkerk's multiprocessing module |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1175 if platform == 'win32': # Windows |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1176 macros = dict() |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1177 libraries = ['ws2_32'] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1178 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1179 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
|
1180 macros = dict() |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1181 libraries = [] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1182 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1183 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
|
1184 macros = dict() |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1185 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
|
1186 |
|
49642
c089eb64ee57
Merged revisions 67098 via svnmerge from
Martin v. Löwis <martin@v.loewis.de>
parents:
49493
diff
changeset
|
1187 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
|
1188 # 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
|
1189 # 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
|
1190 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
|
1191 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
|
1192 |
|
49433
8f5a8ea5ba76
Merged revisions 66670,66681,66688,66696-66699 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49035
diff
changeset
|
1193 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
|
1194 macros = dict() |
|
49433
8f5a8ea5ba76
Merged revisions 66670,66681,66688,66696-66699 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49035
diff
changeset
|
1195 libraries = [] |
|
8f5a8ea5ba76
Merged revisions 66670,66681,66688,66696-66699 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49035
diff
changeset
|
1196 |
|
52561
8f51dd09f3f2
Merged revisions 70849,70852 via svnmerge from
Jesse Noller <jnoller@gmail.com>
parents:
52011
diff
changeset
|
1197 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
|
1198 macros = dict() |
|
52561
8f51dd09f3f2
Merged revisions 70849,70852 via svnmerge from
Jesse Noller <jnoller@gmail.com>
parents:
52011
diff
changeset
|
1199 libraries = [] |
|
8f51dd09f3f2
Merged revisions 70849,70852 via svnmerge from
Jesse Noller <jnoller@gmail.com>
parents:
52011
diff
changeset
|
1200 |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1201 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
|
1202 macros = dict() |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1203 libraries = ['rt'] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1204 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1205 if platform == 'win32': |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1206 multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1207 '_multiprocessing/semaphore.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1208 '_multiprocessing/pipe_connection.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1209 '_multiprocessing/socket_connection.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1210 '_multiprocessing/win32_functions.c' |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1211 ] |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1212 |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1213 else: |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1214 multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1215 '_multiprocessing/socket_connection.c' |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1216 ] |
|
57490
cb836301db60
Merged revisions 76432,76558 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
56726
diff
changeset
|
1217 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
|
1218 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
|
1219 multiprocessing_srcs.append('_multiprocessing/semaphore.c') |
|
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1220 |
| 50993 | 1221 if sysconfig.get_config_var('WITH_THREAD'): |
| 1222 exts.append ( Extension('_multiprocessing', multiprocessing_srcs, | |
| 1223 define_macros=list(macros.items()), | |
| 1224 include_dirs=["Modules/_multiprocessing"])) | |
| 1225 else: | |
| 1226 missing.append('_multiprocessing') | |
|
47595
5c6cdfcd6eae
Merged revisions 64104,64117 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47559
diff
changeset
|
1227 # 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
|
1228 |
| 15940 | 1229 # Platform-specific libraries |
|
35238
526faaab00eb
Add support for FreeBSD 7.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
34930
diff
changeset
|
1230 if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', |
|
43734
3e5edf19d5f0
Merged revisions 58221-58741 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
43527
diff
changeset
|
1231 'freebsd7', 'freebsd8'): |
|
27865
65494469ad3e
Re-enable compiling ossaudiodev now that it seems to work again.
Guido van Rossum <guido@python.org>
parents:
27820
diff
changeset
|
1232 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
|
1233 else: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1234 missing.append('ossaudiodev') |
| 15940 | 1235 |
|
47376
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1236 if sys.platform == 'darwin': |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1237 exts.append( |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1238 Extension('_gestalt', ['_gestalt.c'], |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1239 extra_link_args=['-framework', 'Carbon']) |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1240 ) |
|
aea3c5543d43
add the gestalt module back as _gestalt
Benjamin Peterson <benjamin@python.org>
parents:
47285
diff
changeset
|
1241 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1242 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
|
1243 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1244 # 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
|
1245 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
|
1246 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1247 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
|
1248 missing.append('_tkinter') |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1249 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1250 return missing |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41464
diff
changeset
|
1251 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1252 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
|
1253 # 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
|
1254 # 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
|
1255 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
|
1256 framework_dirs = [ |
|
52011
41e407286610
Merged revisions 70172 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
51991
diff
changeset
|
1257 '/Library/Frameworks', |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1258 '/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
|
1259 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
|
1260 ] |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1261 |
|
36156
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1262 # 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
|
1263 # bundles. |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1264 # 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
|
1265 for F in framework_dirs: |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1266 # both Tcl.framework and Tk.framework should be present |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1267 for fw in 'Tcl', 'Tk': |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1268 if not exists(join(F, fw + '.framework')): |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1269 break |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1270 else: |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1271 # 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
|
1272 # building |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1273 break |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1274 else: |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1275 # 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
|
1276 # 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
|
1277 return 0 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1278 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1279 # 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
|
1280 # 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
|
1281 # 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
|
1282 # |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1283 include_dirs = [ |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1284 join(F, fw + '.framework', H) |
|
41464
060c79f6d919
Hide list comp variables and support set comprehensions
Nick Coghlan <ncoghlan@gmail.com>
parents:
41253
diff
changeset
|
1285 for fw in ('Tcl', 'Tk') |
|
060c79f6d919
Hide list comp variables and support set comprehensions
Nick Coghlan <ncoghlan@gmail.com>
parents:
41253
diff
changeset
|
1286 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
|
1287 ] |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1288 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1289 # 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
|
1290 # 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
|
1291 # 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
|
1292 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
|
1293 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
|
1294 |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1295 # 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
|
1296 # architectures. |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1297 cflags = sysconfig.get_config_vars('CFLAGS')[0] |
|
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1298 archs = re.findall('-arch\s+(\w+)', cflags) |
|
55970
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1299 |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1300 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
|
1301 if not os.path.exists(self.build_temp): |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1302 os.makedirs(self.build_temp) |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1303 |
|
55970
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1304 # 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
|
1305 # requires extensions that are not available here. |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1306 os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(F, tmpfile)) |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1307 fp = open(tmpfile) |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1308 detected_archs = [] |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1309 for ln in fp: |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1310 a = ln.split()[-1] |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1311 if a in archs: |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1312 detected_archs.append(ln.split()[-1]) |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1313 fp.close() |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1314 os.unlink(tmpfile) |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1315 |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1316 for a in detected_archs: |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1317 frameworks.append('-arch') |
|
850dafd4a245
Merged revisions 74798 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
55660
diff
changeset
|
1318 frameworks.append(a) |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
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 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
|
1321 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
|
1322 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
|
1323 libraries = [], |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1324 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
|
1325 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
|
1326 ) |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1327 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
|
1328 return 1 |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1329 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1330 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1331 def detect_tkinter(self, inc_dirs, lib_dirs): |
| 15940 | 1332 # 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
|
1333 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1334 # 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
|
1335 # 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
|
1336 # 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
|
1337 platform = self.get_platform() |
|
36156
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1338 if (platform == 'darwin' and |
|
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1339 self.detect_tkinter_darwin(inc_dirs, lib_dirs)): |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1340 return |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1341 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1342 # 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
|
1343 # 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
|
1344 # 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
|
1345 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
|
1346 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
|
1347 '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
|
1348 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
|
1349 'tk' + version) |
|
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1350 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
|
1351 'tcl' + version) |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1352 if tklib and tcllib: |
| 15940 | 1353 # Exit the loop when we've found the Tcl/Tk libraries |
| 1354 break | |
| 1355 | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1356 # 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
|
1357 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
|
1358 # 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
|
1359 # 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
|
1360 dotversion = version |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1361 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
|
1362 # 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
|
1363 # 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
|
1364 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
|
1365 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
|
1366 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
|
1367 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
|
1368 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
|
1369 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
|
1370 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
|
1371 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
|
1372 tk_includes = find_file('tk.h', inc_dirs, tk_include_sub) |
| 15940 | 1373 |
|
28947
8df897f14fb8
Change 'and' to 'or' in _tkinter test.
Martin v. Löwis <martin@v.loewis.de>
parents:
28940
diff
changeset
|
1374 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
|
1375 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
|
1376 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
|
1377 return |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1378 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1379 # OK... everything seems to be present for Tcl/Tk. |
| 15940 | 1380 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1381 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
|
1382 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
|
1383 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
|
1384 include_dirs.append(dir) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1385 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1386 # 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
|
1387 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
|
1388 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
|
1389 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
|
1390 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
|
1391 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
|
1392 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
|
1393 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
|
1394 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
|
1395 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
|
1396 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
|
1397 else: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1398 # 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
|
1399 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
|
1400 added_lib_dirs.append('/usr/X11/lib') |
| 15940 | 1401 |
|
27695
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1402 # 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
|
1403 if platform == 'cygwin': |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1404 x11_inc = find_file('X11/Xlib.h', [], include_dirs) |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1405 if x11_inc is None: |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1406 return |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1407 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1408 # Check for BLT extension |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1409 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
|
1410 'BLT8.0'): |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1411 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
|
1412 libs.append('BLT8.0') |
|
55128
c23a8f1cfab8
Merged revisions 73864 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55075
diff
changeset
|
1413 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
|
1414 'BLT'): |
|
26626
e41ee2b8e73d
Patch #629126: Detect BLT by also looking for libBLT.
Martin v. Löwis <martin@v.loewis.de>
parents:
26616
diff
changeset
|
1415 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
|
1416 libs.append('BLT') |
| 15940 | 1417 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1418 # 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
|
1419 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
|
1420 libs.append('tcl'+ version) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1421 |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1422 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
|
1423 libs.append('ld') |
| 15940 | 1424 |
|
18819
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1425 # 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
|
1426 if platform != "cygwin": |
|
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1427 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
|
1428 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1429 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
|
1430 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
|
1431 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
|
1432 libraries = libs, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1433 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
|
1434 ) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1435 self.extensions.append(ext) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1436 |
|
27820
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1437 ## # 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
|
1438 ## ext = Extension('xx', ['xxmodule.c']) |
|
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1439 ## self.extensions.append(ext) |
|
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1440 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1441 # XXX handle these, but how to detect? |
| 15940 | 1442 # *** 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
|
1443 # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ |
| 15940 | 1444 # *** 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
|
1445 # -DWITH_TOGL togl.c \ |
| 15940 | 1446 # *** Uncomment these for TOGL extension only: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1447 # -lGL -lGLU -lXext -lXmu \ |
| 15940 | 1448 |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1449 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
|
1450 # 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
|
1451 # 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
|
1452 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
|
1453 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
|
1454 '_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
|
1455 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
|
1456 for p in ['ffi.c', |
|
48485
bd4841069c68
Merged revisions 63955 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48412
diff
changeset
|
1457 '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
|
1458 '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
|
1459 '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
|
1460 '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
|
1461 '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
|
1462 '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
|
1463 '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
|
1464 '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
|
1465 ]] |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1466 |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1467 # 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
|
1468 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
|
1469 |
|
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1470 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
|
1471 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
|
1472 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
|
1473 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
|
1474 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
|
1475 |
|
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
|
1476 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
|
1477 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
|
1478 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
|
1479 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
|
1480 |
|
51349
76239798a608
Make setup.py work when building in a directory other than the
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
50993
diff
changeset
|
1481 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
|
1482 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
|
1483 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
|
1484 '_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
|
1485 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
|
1486 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1487 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
|
1488 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
37879
diff
changeset
|
1489 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
|
1490 for fname in os.listdir(ffi_srcdir) |
|
32c4897b5d46
Merged revisions 53623-53858 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40807
diff
changeset
|
1491 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
|
1492 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
|
1493 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
|
1494 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
|
1495 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
|
1496 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
|
1497 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1498 # 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
|
1499 # 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
|
1500 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
|
1501 % (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
|
1502 |
|
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
|
1503 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
|
1504 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
|
1505 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
|
1506 return False |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1507 |
|
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
|
1508 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
|
1509 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
|
1510 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
|
1511 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1512 # 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
|
1513 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
|
1514 |
|
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
|
1515 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
|
1516 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
|
1517 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
|
1518 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
|
1519 |
|
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
|
1520 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
|
1521 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
|
1522 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
|
1523 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
|
1524 return True |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1525 |
|
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
|
1526 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
|
1527 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
|
1528 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
|
1529 extra_compile_args = [] |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1530 extra_link_args = [] |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1531 sources = ['_ctypes/_ctypes.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1532 '_ctypes/callbacks.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1533 '_ctypes/callproc.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1534 '_ctypes/stgdict.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1535 '_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
|
1536 '_ctypes/malloc_closure.c'] |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1537 depends = ['_ctypes/ctypes.h'] |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1538 |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1539 if sys.platform == 'darwin': |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1540 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
|
1541 extra_compile_args.append('-DMACOSX') |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1542 include_dirs.append('_ctypes/darwin') |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1543 # XXX Is this still needed? |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1544 ## 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
|
1545 |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1546 elif sys.platform == 'sunos5': |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1547 # 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
|
1548 # 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
|
1549 # 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
|
1550 # the assembler code to be PIC. |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1551 # 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
|
1552 # 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
|
1553 # 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
|
1554 # 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
|
1555 extra_link_args.append('-mimpure-text') |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1556 |
|
47490
3255f1f160ad
Merged revisions 63897-63898 via svnmerge from
Thomas Heller <theller@ctypes.org>
parents:
47376
diff
changeset
|
1557 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
|
1558 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
|
1559 |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1560 ext = Extension('_ctypes', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1561 include_dirs=include_dirs, |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1562 extra_compile_args=extra_compile_args, |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38673
diff
changeset
|
1563 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
|
1564 libraries=[], |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1565 sources=sources, |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1566 depends=depends) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1567 ext_test = Extension('_ctypes_test', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1568 sources=['_ctypes/_ctypes_test.c']) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1569 self.extensions.extend([ext, ext_test]) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1570 |
|
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
|
1571 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
|
1572 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
|
1573 |
|
45659
dd318c3f6cb7
Merged revisions 61209-61214,61217-61222,61224-61226,61233-61237 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
45134
diff
changeset
|
1574 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
|
1575 # 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
|
1576 # 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
|
1577 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
|
1578 |
|
58068
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
1579 ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] |
|
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
1580 if not ffi_inc: |
|
b0dd6c21dcbf
Merged revisions 77212-77215 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
58025
diff
changeset
|
1581 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
|
1582 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
|
1583 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
|
1584 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
|
1585 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
|
1586 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
|
1587 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
|
1588 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
|
1589 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
|
1590 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
|
1591 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
|
1592 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
|
1593 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
|
1594 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
|
1595 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
|
1596 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
|
1597 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
|
1598 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
36898
diff
changeset
|
1599 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
|
1600 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
|
1601 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
|
1602 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
|
1603 |
|
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 |
|
17886
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1605 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
|
1606 # 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
|
1607 # 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
|
1608 # installation: |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1609 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
|
1610 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
|
1611 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
|
1612 |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1613 class PyBuildInstallLib(install_lib): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1614 # 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
|
1615 # 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
|
1616 # 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
|
1617 # 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
|
1618 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1619 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
|
1620 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1621 def install(self): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1622 outfiles = install_lib.install(self) |
|
42084
229c28cb9afb
Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
1623 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
|
1624 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
|
1625 return outfiles |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1626 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1627 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
|
1628 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
|
1629 if not files: return |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1630 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1631 for filename in files: |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1632 if os.path.islink(filename): continue |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1633 mode = defaultMode |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1634 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
|
1635 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
|
1636 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
|
1637 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1638 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
|
1639 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
|
1640 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
|
1641 if os.path.islink(dirpath): |
|
56a276396e15
Merged revisions 73788 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
54285
diff
changeset
|
1642 continue |
|
56a276396e15
Merged revisions 73788 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
54285
diff
changeset
|
1643 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
|
1644 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
|
1645 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1646 def is_chmod_supported(self): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1647 return hasattr(os, 'chmod') |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1648 |
|
27990
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1649 SUMMARY = """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1650 Python is an interpreted, interactive, object-oriented programming |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1651 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
|
1652 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1653 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
|
1654 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
|
1655 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
|
1656 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
|
1657 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
|
1658 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
|
1659 programmable interface. |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1660 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1661 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
|
1662 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
|
1663 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
|
1664 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
|
1665 yourself. |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1666 """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1667 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1668 CLASSIFIERS = """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1669 Development Status :: 6 - Mature |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1670 License :: OSI Approved :: Python Software Foundation License |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1671 Natural Language :: English |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1672 Programming Language :: C |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1673 Programming Language :: Python |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1674 Topic :: Software Development |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1675 """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1676 |
| 15940 | 1677 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
|
1678 # 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
|
1679 import warnings |
|
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
1680 warnings.filterwarnings("ignore",category=DeprecationWarning) |
|
27990
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1681 setup(# PyPI Metadata (PEP 301) |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1682 name = "Python", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1683 version = sys.version.split()[0], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1684 url = "http://www.python.org/%s" % sys.version[:3], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1685 maintainer = "Guido van Rossum and the Python community", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1686 maintainer_email = "python-dev@python.org", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1687 description = "A high-level object-oriented programming language", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1688 long_description = SUMMARY.strip(), |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1689 license = "PSF license", |
|
42142
a53e48be6df9
Merged revisions 56125-56153 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
42084
diff
changeset
|
1690 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
|
1691 platforms = ["Many"], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1692 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1693 # Build info |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1694 cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall, |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1695 'install_lib':PyBuildInstallLib}, |
| 15940 | 1696 # The struct module is defined here, because build_ext won't be |
| 1697 # 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
|
1698 ext_modules=[Extension('_struct', ['_struct.c'])], |
| 16844 | 1699 |
|
54285
997ef68bfa15
install 2to3, overwritting any old installations #5756
Benjamin Peterson <benjamin@python.org>
parents:
54280
diff
changeset
|
1700 scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3", |
|
997ef68bfa15
install 2to3, overwritting any old installations #5756
Benjamin Peterson <benjamin@python.org>
parents:
54280
diff
changeset
|
1701 "Tools/scripts/2to3"] |
| 15940 | 1702 ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1703 |
| 15940 | 1704 # --install-platlib |
| 1705 if __name__ == '__main__': | |
| 1706 main() |
