Mercurial > cpython-lru_cache-weakref
annotate setup.py @ 49955:878d40468c4e legacy-trunk
Issue #4384: Added logging integration with warnings module using captureWarnings(). This change includes a NullHandler which does nothing; it will be of use to library developers who want to avoid the "No handlers could be found for logger XXX" message which can appear if the library user doesn't configure logging.
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> |
|---|---|
| date | Wed, 03 Dec 2008 23:22:58 +0000 |
| parents | a529e3dc695a |
| children | e0073b7650cc |
| 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 |
|
44948
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
7 from glob import glob |
|
47351
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
8 from platform import machine as platform_machine |
|
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 |
| 15940 | 11 from distutils import sysconfig |
|
16750
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
12 from distutils import text_file |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
13 from distutils.errors import * |
| 15940 | 14 from distutils.core import Extension, setup |
| 15 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
|
16 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
|
17 from distutils.command.install_lib import install_lib |
| 15940 | 18 |
| 19 # This global variable is used to hold the list of modules to be disabled. | |
| 20 disabled_module_list = [] | |
| 21 | |
|
21742
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
22 def add_dir_to_list(dirlist, dir): |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
23 """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
|
24 1) 'dir' is not already in 'dirlist' |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
25 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
|
26 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
|
27 dirlist.insert(0, dir) |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
28 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
29 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
|
30 """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
|
31 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
|
32 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
|
33 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
34 '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
|
35 '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
|
36 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
|
37 '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
|
38 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
|
39 """ |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
40 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
41 # 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
|
42 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
|
43 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
|
44 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
|
45 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
46 # 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
|
47 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
|
48 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
|
49 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
|
50 return [dir] |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
51 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
52 # Not found anywhere |
| 15940 | 53 return None |
| 54 | |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
55 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
|
56 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
|
57 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
|
58 return None |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
59 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
60 # 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
|
61 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
|
62 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
|
63 # 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
|
64 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
|
65 if p == dirname: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
66 return [ ] |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
67 |
|
26443
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
68 # 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
|
69 # 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
|
70 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
|
71 # 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
|
72 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
|
73 if p == dirname: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
74 return [p] |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
75 else: |
|
c1258b1a36c6
[Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents:
26396
diff
changeset
|
76 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
|
77 |
| 15940 | 78 def module_enabled(extlist, modname): |
| 79 """Returns whether the module 'modname' is present in the list | |
| 80 of extensions 'extlist'.""" | |
| 81 extlist = [ext for ext in extlist if ext.name == modname] | |
| 82 return len(extlist) | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
83 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
84 def find_module_file(module, dirlist): |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
85 """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
|
86 return the unadorned filename""" |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
87 list = find_file(module, [], dirlist) |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
88 if not list: |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
89 return module |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
90 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
|
91 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
|
92 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
|
93 |
| 15940 | 94 class PyBuildExt(build_ext): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
95 |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
96 def __init__(self, dist): |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
97 build_ext.__init__(self, dist) |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
98 self.failed = [] |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
99 |
| 15940 | 100 def build_extensions(self): |
| 101 | |
| 102 # Detect which modules should be compiled | |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
103 missing = self.detect_modules() |
| 15940 | 104 |
| 105 # Remove modules that are present on the disabled list | |
|
44741
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
106 extensions = [ext for ext in self.extensions |
|
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
107 if ext.name not in disabled_module_list] |
|
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
108 # move ctypes to the end, it depends on other modules |
|
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
109 ext_map = dict((ext.name, i) for i, ext in enumerate(extensions)) |
|
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
110 if "_ctypes" in ext_map: |
|
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
111 ctypes = extensions.pop(ext_map["_ctypes"]) |
|
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
112 extensions.append(ctypes) |
|
bbf484581043
Build _ctypes after the other extensions. Its build process depends
Christian Heimes <christian@cheimes.de>
parents:
43703
diff
changeset
|
113 self.extensions = extensions |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
114 |
| 15940 | 115 # Fix up the autodetected modules, prefixing all the source files |
| 116 # with Modules/ and adding Python's include directory to the path. | |
| 117 (srcdir,) = sysconfig.get_config_vars('srcdir') | |
| 25790 | 118 if not srcdir: |
| 119 # Maybe running on Windows but not using CYGWIN? | |
| 120 raise ValueError("No source directory; cannot proceed.") | |
| 15940 | 121 |
|
16225
e56dd2dd9960
Patch from Andrew to properly set module source directory.
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
16201
diff
changeset
|
122 # Figure out the location of the source code for extension modules |
|
46319
42a758f961a1
Fix test_distutils to not fail when running 'make test' from a Python build
Thomas Wouters <thomas@python.org>
parents:
46052
diff
changeset
|
123 # (This logic is copied in distutils.test.test_sysconfig, |
|
42a758f961a1
Fix test_distutils to not fail when running 'make test' from a Python build
Thomas Wouters <thomas@python.org>
parents:
46052
diff
changeset
|
124 # so building in a separate directory does not break test_distutils.) |
|
16225
e56dd2dd9960
Patch from Andrew to properly set module source directory.
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
16201
diff
changeset
|
125 moddir = os.path.join(os.getcwd(), srcdir, 'Modules') |
| 15940 | 126 moddir = os.path.normpath(moddir) |
| 127 srcdir, tail = os.path.split(moddir) | |
| 128 srcdir = os.path.normpath(srcdir) | |
| 129 moddir = os.path.normpath(moddir) | |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
130 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
131 moddirlist = [moddir] |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
132 incdirlist = ['./Include'] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
133 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
134 # Platform-dependent module source and include directories |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
135 platform = self.get_platform() |
|
33294
67fbbeb1e218
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
33285
diff
changeset
|
136 if platform in ('darwin', 'mac') and ("--disable-toolbox-glue" not in |
|
33285
ee703a094dfb
When building with --disable-toolbox-glue under Darwin, skip building any
Brett Cannon <bcannon@gmail.com>
parents:
33180
diff
changeset
|
137 sysconfig.get_config_var("CONFIG_ARGS")): |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
138 # Mac OS X also includes some mac-specific modules |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
139 macmoddir = os.path.join(os.getcwd(), srcdir, 'Mac/Modules') |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
140 moddirlist.append(macmoddir) |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
141 incdirlist.append('./Mac/Include') |
| 15940 | 142 |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
143 alldirlist = moddirlist + incdirlist |
|
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
144 |
|
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
|
145 # 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
|
146 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
|
147 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
|
148 |
|
44948
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
149 # Python header files |
|
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
150 headers = glob("Include/*.h") + ["pyconfig.h"] |
|
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
151 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
152 for ext in self.extensions[:]: |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
153 ext.sources = [ find_module_file(filename, moddirlist) |
| 15940 | 154 for filename in ext.sources ] |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
155 if ext.depends is not None: |
|
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
156 ext.depends = [find_module_file(filename, alldirlist) |
|
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
157 for filename in ext.depends] |
|
44948
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
158 else: |
|
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
159 ext.depends = [] |
|
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
160 # re-compile extensions if a header file has been changed |
|
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
161 ext.depends.extend(headers) |
|
1be93dd179df
Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/
Christian Heimes <christian@cheimes.de>
parents:
44945
diff
changeset
|
162 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
163 ext.include_dirs.append( '.' ) # to get config.h |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
164 for incdir in incdirlist: |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
165 ext.include_dirs.append( os.path.join(srcdir, incdir) ) |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
166 |
|
16038
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
167 # 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
|
168 # 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
|
169 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
|
170 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
|
171 |
|
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
|
172 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
|
173 # 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
|
174 # 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
|
175 remove_modules = [] |
|
36144
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
176 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
|
177 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
|
178 while 1: |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
179 line = input.readline() |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
180 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
|
181 line = line.split() |
|
82a52a464aa2
Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents:
36026
diff
changeset
|
182 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
|
183 input.close() |
|
36162
1e595b6c924e
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
36156
diff
changeset
|
184 |
|
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
|
185 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
|
186 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
|
187 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
|
188 |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
189 # 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
|
190 # 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
|
191 # 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
|
192 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
|
193 args = {} |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
194 # 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
|
195 # compilers |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
196 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
|
197 (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
|
198 args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
199 self.compiler.set_executables(**args) |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
200 |
| 15940 | 201 build_ext.build_extensions(self) |
| 202 | |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
203 longest = max([len(e.name) for e in self.extensions]) |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
204 if self.failed: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
205 longest = max(longest, max([len(name) for name in self.failed])) |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
206 |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
207 def print_three_column(lst): |
|
41028
d4577215539d
Fix cmp vs. key argument for list.sort.
Georg Brandl <georg@python.org>
parents:
41025
diff
changeset
|
208 lst.sort(key=str.lower) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
209 # guarantee zip() doesn't drop anything |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
210 while len(lst) % 3: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
211 lst.append("") |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
212 for e, f, g in zip(lst[::3], lst[1::3], lst[2::3]): |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
213 print "%-*s %-*s %-*s" % (longest, e, longest, f, |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
214 longest, g) |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
215 |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
216 if missing: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
217 print |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
218 print "Failed to find the necessary bits to build these modules:" |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
219 print_three_column(missing) |
|
42717
199504fb91c5
When setup.py fails to find the necessary bits to build some modules, have it
Jeffrey Yasskin <jyasskin@gmail.com>
parents:
41784
diff
changeset
|
220 print ("To find the necessary bits, look in setup.py in" |
|
199504fb91c5
When setup.py fails to find the necessary bits to build some modules, have it
Jeffrey Yasskin <jyasskin@gmail.com>
parents:
41784
diff
changeset
|
221 " detect_modules() for the module's name.") |
|
199504fb91c5
When setup.py fails to find the necessary bits to build some modules, have it
Jeffrey Yasskin <jyasskin@gmail.com>
parents:
41784
diff
changeset
|
222 print |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
223 |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
224 if self.failed: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
225 failed = self.failed[:] |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
226 print |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
227 print "Failed to build these modules:" |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
228 print_three_column(failed) |
|
42717
199504fb91c5
When setup.py fails to find the necessary bits to build some modules, have it
Jeffrey Yasskin <jyasskin@gmail.com>
parents:
41784
diff
changeset
|
229 print |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
230 |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
231 def build_extension(self, ext): |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
232 |
|
37536
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
233 if ext.name == '_ctypes': |
|
37537
5bc2b4e3ffc1
Don't try to build ctypes when configuration of libffi fails.
Thomas Heller <theller@ctypes.org>
parents:
37536
diff
changeset
|
234 if not self.configure_ctypes(ext): |
|
5bc2b4e3ffc1
Don't try to build ctypes when configuration of libffi fails.
Thomas Heller <theller@ctypes.org>
parents:
37536
diff
changeset
|
235 return |
|
37536
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
236 |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
237 try: |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
238 build_ext.build_extension(self, ext) |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
239 except (CCompilerError, DistutilsError), why: |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
240 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
|
241 (ext.name, sys.exc_info()[1])) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
242 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
|
243 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
|
244 # 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
|
245 # 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
|
246 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
|
247 self.announce( |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
248 '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
|
249 ext.name) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
250 return |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
251 |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
252 if self.get_platform() == 'darwin' and ( |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
253 sys.maxint > 2**32 and '-arch' in ext.extra_link_args): |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
254 # Don't bother doing an import check when an extension was |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
255 # build with an explicit '-arch' flag on OSX. That's currently |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
256 # only used to build 32-bit only extensions in a 4-way |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
257 # universal build and loading 32-bit code into a 64-bit |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
258 # process will fail. |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
259 self.announce( |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
260 'WARNING: skipping import check for "%s"' % |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
261 ext.name) |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
262 return |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
263 |
|
23513
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
264 # 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
|
265 # modules have been imported |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
266 if self.get_platform() == 'cygwin': |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
267 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
|
268 % ext.name) |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
269 return |
| 21788 | 270 ext_filename = os.path.join( |
| 271 self.build_lib, | |
| 272 self.get_ext_filename(self.get_ext_fullname(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
|
273 try: |
| 21788 | 274 imp.load_dynamic(ext.name, ext_filename) |
|
28111
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
275 except ImportError, why: |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
276 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
|
277 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
|
278 ' 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
|
279 assert not self.inplace |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
280 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
|
281 newname = basename + "_failed" + tail |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
282 if os.path.exists(newname): |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
283 os.remove(newname) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
284 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
|
285 |
|
28111
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
286 # 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
|
287 # 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
|
288 # _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
|
289 # use here. |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
290 # 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
|
291 # 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
|
292 try: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
293 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
|
294 os.remove(filename) |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
295 except AttributeError: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
296 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
|
297 except: |
|
7a2f683395e7
Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents:
28109
diff
changeset
|
298 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
|
299 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
|
300 '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
|
301 level=3) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
302 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
|
303 |
|
29508
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
304 def get_platform(self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
305 # Get value of sys.platform |
|
29508
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
306 for platform in ['cygwin', 'beos', 'darwin', 'atheos', 'osf1']: |
|
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
307 if sys.platform.startswith(platform): |
|
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
308 return platform |
|
53554688e5a2
Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents:
29471
diff
changeset
|
309 return sys.platform |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
310 |
| 15940 | 311 def detect_modules(self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
312 # Ensure that /usr/local is always used |
|
21742
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
313 add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
314 add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
315 |
|
34124
4e38ecd1912e
setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents:
33986
diff
changeset
|
316 # 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
|
317 # 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
|
318 # 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
|
319 # 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
|
320 # 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
|
321 # 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
|
322 for env_var, arg_name, dir_list in ( |
| 49454 | 323 ('LDFLAGS', '-R', self.compiler.runtime_library_dirs), |
|
34124
4e38ecd1912e
setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents:
33986
diff
changeset
|
324 ('LDFLAGS', '-L', self.compiler.library_dirs), |
|
4e38ecd1912e
setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents:
33986
diff
changeset
|
325 ('CPPFLAGS', '-I', self.compiler.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
|
326 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
|
327 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
|
328 # To prevent optparse from raising an exception about any |
| 49454 | 329 # 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
|
330 # 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
|
331 # 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
|
332 # |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
333 # 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
|
334 # 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
|
335 # 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
|
336 # used for a library directory. |
|
42772
8901a7ce6c07
Bug #1765375: fix stripping of unwanted LDFLAGS.
Georg Brandl <georg@python.org>
parents:
42717
diff
changeset
|
337 env_val = re.sub(r'(^|\s+)-(-|(?!%s))' % arg_name[1], |
|
8901a7ce6c07
Bug #1765375: fix stripping of unwanted LDFLAGS.
Georg Brandl <georg@python.org>
parents:
42717
diff
changeset
|
338 ' ', 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
|
339 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
|
340 # 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
|
341 # allowed |
|
5dc274e15822
Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents:
34186
diff
changeset
|
342 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
|
343 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
|
344 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
|
345 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
|
346 if options.dirs: |
|
45119
59d89d61c3a0
Directories from CPPFLAGS and LDFLAGS were being added in the reverse order for
Brett Cannon <bcannon@gmail.com>
parents:
45040
diff
changeset
|
347 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
|
348 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
|
349 |
| 24477 | 350 if os.path.normpath(sys.prefix) != '/usr': |
| 351 add_dir_to_list(self.compiler.library_dirs, | |
| 352 sysconfig.get_config_var("LIBDIR")) | |
| 353 add_dir_to_list(self.compiler.include_dirs, | |
| 354 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
|
355 |
|
19343
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
356 try: |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
357 have_unicode = unicode |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
358 except NameError: |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
359 have_unicode = 0 |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
360 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
361 # 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
|
362 # 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
|
363 # be assumed that no additional -I,-L directives are needed. |
|
33986
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
364 lib_dirs = self.compiler.library_dirs + [ |
|
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
365 '/lib64', '/usr/lib64', |
|
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
366 '/lib', '/usr/lib', |
|
49b6e966e57f
Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents:
33750
diff
changeset
|
367 ] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
368 inc_dirs = self.compiler.include_dirs + ['/usr/include'] |
| 15940 | 369 exts = [] |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
370 missing = [] |
| 15940 | 371 |
|
34911
87719ae9288c
Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents:
34717
diff
changeset
|
372 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
|
373 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
|
374 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
375 platform = self.get_platform() |
|
21942
9d44e752d617
Compute expat -I directives from srcdir. Fixes #517214.
Martin v. Löwis <martin@v.loewis.de>
parents:
21939
diff
changeset
|
376 (srcdir,) = sysconfig.get_config_vars('srcdir') |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
377 |
|
23777
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
378 # Check for AtheOS which has libraries in non-standard locations |
|
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
379 if platform == 'atheos': |
|
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
380 lib_dirs += ['/system/libs', '/atheos/autolnk/lib'] |
|
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
381 lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) |
|
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
382 inc_dirs += ['/system/include', '/atheos/autolnk/include'] |
|
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
383 inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) |
|
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
384 |
|
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
|
385 # 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
|
386 if platform in ['osf1', 'unixware7', 'openunix8']: |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
387 lib_dirs += ['/usr/ccs/lib'] |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
388 |
|
38348
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
389 if platform == 'darwin': |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
390 # This should work on any unixy platform ;-) |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
391 # If the user has bothered specifying additional -I and -L flags |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
392 # in OPT and LDFLAGS we might as well use them here. |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
393 # NOTE: using shlex.split would technically be more correct, but |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
394 # also gives a bootstrap problem. Let's hope nobody uses directories |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
395 # with whitespace in the name to store libraries. |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
396 cflags, ldflags = sysconfig.get_config_vars( |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
397 'CFLAGS', 'LDFLAGS') |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
398 for item in cflags.split(): |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
399 if item.startswith('-I'): |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
400 inc_dirs.append(item[2:]) |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
401 |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
402 for item in ldflags.split(): |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
403 if item.startswith('-L'): |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
404 lib_dirs.append(item[2:]) |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
405 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
406 # 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
|
407 math_libs = ['m'] |
|
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
|
408 if platform in ['darwin', 'beos', 'mac']: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
409 math_libs = [] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
410 |
| 15940 | 411 # XXX Omitted modules: gl, pure, dl, SGI-specific modules |
| 412 | |
| 413 # | |
| 414 # The following modules are all pretty straightforward, and compile | |
| 415 # on pretty much any POSIXish platform. | |
| 416 # | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
417 |
| 15940 | 418 # 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
|
419 exts.append( Extension('_weakref', ['_weakref.c']) ) |
| 15940 | 420 |
| 421 # array objects | |
| 422 exts.append( Extension('array', ['arraymodule.c']) ) | |
| 423 # complex math library functions | |
|
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
|
424 exts.append( Extension('cmath', ['cmathmodule.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
|
425 libraries=math_libs) ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
426 |
| 15940 | 427 # math library functions, e.g. sin() |
|
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
|
428 exts.append( Extension('math', ['mathmodule.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
|
429 libraries=math_libs) ) |
| 15940 | 430 # fast string operations implemented in C |
| 431 exts.append( Extension('strop', ['stropmodule.c']) ) | |
| 432 # 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
|
433 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
|
434 libraries=math_libs) ) |
|
32400
6ce67f7b0430
Add compilation of timemodule.c with datetimemodule.c to get
Brett Cannon <bcannon@gmail.com>
parents:
32244
diff
changeset
|
435 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
|
436 libraries=math_libs) ) |
|
46024
7da5b68971a5
Move itertools before future_builtins since the latter depends on the former.
Neal Norwitz <nnorwitz@gmail.com>
parents:
45655
diff
changeset
|
437 # fast iterator tools implemented in C |
|
7da5b68971a5
Move itertools before future_builtins since the latter depends on the former.
Neal Norwitz <nnorwitz@gmail.com>
parents:
45655
diff
changeset
|
438 exts.append( Extension("itertools", ["itertoolsmodule.c"]) ) |
|
45439
8eb598331231
Added future_builtins, which contains PEP 3127 compatible versions of hex() and oct().
Eric Smith <eric@trueblade.com>
parents:
45128
diff
changeset
|
439 # code that will be builtins in the future, but conflict with the |
|
8eb598331231
Added future_builtins, which contains PEP 3127 compatible versions of hex() and oct().
Eric Smith <eric@trueblade.com>
parents:
45128
diff
changeset
|
440 # current builtins |
|
8eb598331231
Added future_builtins, which contains PEP 3127 compatible versions of hex() and oct().
Eric Smith <eric@trueblade.com>
parents:
45128
diff
changeset
|
441 exts.append( Extension('future_builtins', ['future_builtins.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
|
442 # random number generator implemented in C |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
443 exts.append( Extension("_random", ["_randommodule.c"]) ) |
|
31436
63fa60f2d61c
* Move collections.deque() in from the sandbox
Raymond Hettinger <python@rcn.com>
parents:
31386
diff
changeset
|
444 # high-performance collections |
|
40989
4087c0ec733b
Prepare collections module for pure python code entries.
Raymond Hettinger <python@rcn.com>
parents:
40844
diff
changeset
|
445 exts.append( Extension("_collections", ["_collectionsmodule.c"]) ) |
|
31353
ed20259a1ea5
SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents:
31090
diff
changeset
|
446 # bisect |
|
ed20259a1ea5
SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents:
31090
diff
changeset
|
447 exts.append( Extension("_bisect", ["_bisectmodule.c"]) ) |
|
30875
2acd28bd4d0f
Convert heapq.py to a C implementation.
Raymond Hettinger <python@rcn.com>
parents:
30770
diff
changeset
|
448 # heapq |
|
31931
63b68cb2b442
* Restore the pure python version of heapq.py.
Raymond Hettinger <python@rcn.com>
parents:
31742
diff
changeset
|
449 exts.append( Extension("_heapq", ["_heapqmodule.c"]) ) |
| 15940 | 450 # operator.add() and similar goodies |
| 451 exts.append( Extension('operator', ['operator.c']) ) | |
|
44945
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44741
diff
changeset
|
452 # Python 3.0 _fileio module |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44741
diff
changeset
|
453 exts.append( Extension("_fileio", ["_fileio.c"]) ) |
|
46805
4c5ee1b38045
Backport fast alternate io.BytesIO implementation.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46676
diff
changeset
|
454 # Python 3.0 _bytesio module |
|
4c5ee1b38045
Backport fast alternate io.BytesIO implementation.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46676
diff
changeset
|
455 exts.append( Extension("_bytesio", ["_bytesio.c"]) ) |
|
38477
aa065f820252
Apply modified version of Collin Winter's patch #1478788
Nick Coghlan <ncoghlan@gmail.com>
parents:
38348
diff
changeset
|
456 # _functools |
|
aa065f820252
Apply modified version of Collin Winter's patch #1478788
Nick Coghlan <ncoghlan@gmail.com>
parents:
38348
diff
changeset
|
457 exts.append( Extension("_functools", ["_functoolsmodule.c"]) ) |
|
46676
4ded35754cb7
Add the 'json' package. Code taken from simplejson 1.9 and contributed by Bob
Brett Cannon <bcannon@gmail.com>
parents:
46319
diff
changeset
|
458 # _json speedups |
|
4ded35754cb7
Add the 'json' package. Code taken from simplejson 1.9 and contributed by Bob
Brett Cannon <bcannon@gmail.com>
parents:
46319
diff
changeset
|
459 exts.append( Extension("_json", ["_json.c"]) ) |
|
16416
7d39d9dcf2d6
Whitespace correction...
Marc-André Lemburg <mal@egenix.com>
parents:
16415
diff
changeset
|
460 # Python C API test module |
|
16447
ac52d3727867
Renamed _testXXX to _testcapiXXX. Jack is my hero -- good call!
Tim Peters <tim.peters@gmail.com>
parents:
16422
diff
changeset
|
461 exts.append( Extension('_testcapi', ['_testcapimodule.c']) ) |
| 36459 | 462 # profilers (_lsprof is for cProfile.py) |
| 463 exts.append( Extension('_hotshot', ['_hotshot.c']) ) | |
| 464 exts.append( Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']) ) | |
| 15940 | 465 # static Unicode character database |
|
19343
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
466 if have_unicode: |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
467 exts.append( Extension('unicodedata', ['unicodedata.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
468 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
469 missing.append('unicodedata') |
| 15940 | 470 # access to ISO C locale support |
|
29471
4f076fc0195a
Patch #752671: NetBSD needs to link libintl to _locale.so.
Martin v. Löwis <martin@v.loewis.de>
parents:
29438
diff
changeset
|
471 data = open('pyconfig.h').read() |
|
4f076fc0195a
Patch #752671: NetBSD needs to link libintl to _locale.so.
Martin v. Löwis <martin@v.loewis.de>
parents:
29438
diff
changeset
|
472 m = re.search(r"#s*define\s+WITH_LIBINTL\s+1\s*", data) |
|
4f076fc0195a
Patch #752671: NetBSD needs to link libintl to _locale.so.
Martin v. Löwis <martin@v.loewis.de>
parents:
29438
diff
changeset
|
473 if m is not None: |
|
24810
7ce82e9d08c7
Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents:
24790
diff
changeset
|
474 locale_libs = ['intl'] |
|
7ce82e9d08c7
Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents:
24790
diff
changeset
|
475 else: |
|
7ce82e9d08c7
Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents:
24790
diff
changeset
|
476 locale_libs = [] |
|
32698
7742f85a3723
_localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents:
32416
diff
changeset
|
477 if platform == 'darwin': |
|
7742f85a3723
_localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents:
32416
diff
changeset
|
478 locale_extra_link_args = ['-framework', 'CoreFoundation'] |
|
7742f85a3723
_localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents:
32416
diff
changeset
|
479 else: |
|
7742f85a3723
_localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents:
32416
diff
changeset
|
480 locale_extra_link_args = [] |
|
32735
2bc66f1df7cc
Whitespace normalization. Ran reindent.py over the entire source tree.
Tim Peters <tim.peters@gmail.com>
parents:
32727
diff
changeset
|
481 |
|
32698
7742f85a3723
_localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents:
32416
diff
changeset
|
482 |
|
24810
7ce82e9d08c7
Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents:
24790
diff
changeset
|
483 exts.append( Extension('_locale', ['_localemodule.c'], |
|
32698
7742f85a3723
_localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents:
32416
diff
changeset
|
484 libraries=locale_libs, |
|
7742f85a3723
_localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents:
32416
diff
changeset
|
485 extra_link_args=locale_extra_link_args) ) |
| 15940 | 486 |
| 487 # Modules with some UNIX dependencies -- on by default: | |
| 488 # (If you have a really backward UNIX, select and socket may not be | |
| 489 # supported...) | |
| 490 | |
| 491 # fcntl(2) and ioctl(2) | |
| 492 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
|
493 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
|
494 # pwd(3) |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
495 exts.append( Extension('pwd', ['pwdmodule.c']) ) |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
496 # grp(3) |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
497 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
|
498 # 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
|
499 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
|
500 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
|
501 exts.append( Extension('spwd', ['spwdmodule.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
502 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
503 missing.append('spwd') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
504 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
505 missing.extend(['pwd', 'grp', 'spwd']) |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
506 |
| 15940 | 507 # select(2); not on ancient System V |
| 508 exts.append( Extension('select', ['selectmodule.c']) ) | |
| 509 | |
| 510 # Fred Drake's interface to the Python parser | |
| 511 exts.append( Extension('parser', ['parsermodule.c']) ) | |
| 512 | |
|
22805
f1af8ad11000
Removed old Digital Creations copyright/license notices (with
Guido van Rossum <guido@python.org>
parents:
22545
diff
changeset
|
513 # cStringIO and cPickle |
| 15940 | 514 exts.append( Extension('cStringIO', ['cStringIO.c']) ) |
| 515 exts.append( Extension('cPickle', ['cPickle.c']) ) | |
| 516 | |
| 517 # Memory-mapped files (also works on Win32). | |
|
24032
c10c09192c12
More fixes for building MacPython extension modules. It now actually succeeds
Jack Jansen <jack.jansen@cwi.nl>
parents:
24008
diff
changeset
|
518 if platform not in ['atheos', 'mac']: |
|
23777
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
519 exts.append( Extension('mmap', ['mmapmodule.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
520 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
521 missing.append('mmap') |
| 15940 | 522 |
|
33370
af65004f622f
Remove mpz, rotor, xreadlines modules
Andrew M. Kuchling <amk@amk.ca>
parents:
33294
diff
changeset
|
523 # 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
|
524 if platform not in ['mac']: |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
525 # syslog daemon interface |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
526 exts.append( Extension('syslog', ['syslogmodule.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
527 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
528 missing.append('syslog') |
| 15940 | 529 |
| 530 # George Neville-Neil's timing module: | |
|
36817
bc0797b06a99
Stop building timing module, it's old and deprecated
Neal Norwitz <nnorwitz@gmail.com>
parents:
36668
diff
changeset
|
531 # Deprecated in PEP 4 http://www.python.org/peps/pep-0004.html |
|
bc0797b06a99
Stop building timing module, it's old and deprecated
Neal Norwitz <nnorwitz@gmail.com>
parents:
36668
diff
changeset
|
532 # http://mail.python.org/pipermail/python-dev/2006-January/060023.html |
|
bc0797b06a99
Stop building timing module, it's old and deprecated
Neal Norwitz <nnorwitz@gmail.com>
parents:
36668
diff
changeset
|
533 #exts.append( Extension('timing', ['timingmodule.c']) ) |
| 15940 | 534 |
| 535 # | |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
536 # 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
|
537 # libraries, are platform-specific, or present other surprises. |
| 15940 | 538 # |
| 539 | |
| 540 # Multimedia modules | |
| 541 # These don't work for 64-bit platforms!!! | |
| 542 # These represent audio samples or images as strings: | |
| 543 | |
|
32763
8ad5a1620092
Move comment that goes along with audioop
Neal Norwitz <nnorwitz@gmail.com>
parents:
32762
diff
changeset
|
544 # Operations on audio samples |
|
32797
ea54fdb86530
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
32765
diff
changeset
|
545 # 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
|
546 # 64-bit platforms. |
|
76ad814bc67c
Patch #993173: Enable audioop on 64-bit platforms.
Martin v. Löwis <martin@v.loewis.de>
parents:
32735
diff
changeset
|
547 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
|
548 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
549 # Disabled on 64-bit platforms |
| 15940 | 550 if sys.maxint != 9223372036854775807L: |
| 551 # Operations on images | |
| 552 exts.append( Extension('imageop', ['imageop.c']) ) | |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
553 else: |
|
41784
b7fb942b403e
Remove the rgbimg module. It has been deprecated since Python 2.5.
Brett Cannon <bcannon@gmail.com>
parents:
41028
diff
changeset
|
554 missing.extend(['imageop']) |
| 15940 | 555 |
| 556 # readline | |
|
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
|
557 do_readline = self.compiler.find_library_file(lib_dirs, 'readline') |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
558 if platform == 'darwin': # and os.uname()[2] < '9.': |
|
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
|
559 # MacOSX 10.4 has a broken readline. Don't try to build |
|
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
|
560 # the readline module unless the user has installed a fixed |
|
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
|
561 # readline package |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
562 # FIXME: The readline emulation on 10.5 is better, but the |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
563 # readline module doesn't compile out of the box. |
|
36668
8410f06ad36e
Check for a not-found rlconf.h by testing for None.
Martin v. Löwis <martin@v.loewis.de>
parents:
36648
diff
changeset
|
564 if find_file('readline/rlconf.h', inc_dirs, []) is None: |
|
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
|
565 do_readline = False |
|
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
|
566 if do_readline: |
|
38348
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
567 if sys.platform == 'darwin': |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
568 # In every directory on the search path search for a dynamic |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
569 # library and then a static library, instead of first looking |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
570 # for dynamic libraries on the entiry path. |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
571 # This way a staticly linked custom readline gets picked up |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
572 # before the (broken) dynamic library in /usr/lib. |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
573 readline_extra_link_args = ('-Wl,-search_paths_first',) |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
574 else: |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
575 readline_extra_link_args = () |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
576 |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
577 readline_libs = ['readline'] |
|
19319
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
578 if self.compiler.find_library_file(lib_dirs, |
|
36479
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
579 'ncursesw'): |
|
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
580 readline_libs.append('ncursesw') |
|
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
581 elif self.compiler.find_library_file(lib_dirs, |
|
19319
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
582 'ncurses'): |
|
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
583 readline_libs.append('ncurses') |
|
28473
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
584 elif self.compiler.find_library_file(lib_dirs, 'curses'): |
|
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
585 readline_libs.append('curses') |
|
19319
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
586 elif self.compiler.find_library_file(lib_dirs + |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
587 ['/usr/lib/termcap'], |
|
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
588 'termcap'): |
|
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
589 readline_libs.append('termcap') |
| 15940 | 590 exts.append( Extension('readline', ['readline.c'], |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
591 library_dirs=['/usr/lib/termcap'], |
|
38348
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
592 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
|
593 libraries=readline_libs) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
594 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
595 missing.append('readline') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
596 |
|
24032
c10c09192c12
More fixes for building MacPython extension modules. It now actually succeeds
Jack Jansen <jack.jansen@cwi.nl>
parents:
24008
diff
changeset
|
597 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
|
598 # crypt module. |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
599 |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
600 if self.compiler.find_library_file(lib_dirs, 'crypt'): |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
601 libs = ['crypt'] |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
602 else: |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
603 libs = [] |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
604 exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
605 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
606 missing.append('crypt') |
| 15940 | 607 |
|
28341
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
608 # CSV files |
|
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
609 exts.append( Extension('_csv', ['_csv.c']) ) |
|
797909492c38
build _csv extension module
Skip Montanaro <skip@pobox.com>
parents:
28208
diff
changeset
|
610 |
| 15940 | 611 # socket(2) |
|
23811
e3e019bc4e1e
Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents:
23777
diff
changeset
|
612 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
|
613 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
|
614 # 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
|
615 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
|
616 '/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
|
617 '/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
|
618 ] |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
619 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
|
620 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
|
621 ) |
|
29043
8e79dc3731bf
Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents:
29013
diff
changeset
|
622 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
|
623 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
|
624 ['/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
|
625 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
|
626 ssl_incs += krb5_h |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
627 ssl_libs = find_library_file(self.compiler, '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
|
628 ['/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
|
629 '/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
|
630 ] ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
631 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
632 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
|
633 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
|
634 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
|
635 include_dirs = ssl_incs, |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
636 library_dirs = ssl_libs, |
|
23811
e3e019bc4e1e
Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents:
23777
diff
changeset
|
637 libraries = ['ssl', 'crypto'], |
|
23825
9f0009ca97b9
Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
23816
diff
changeset
|
638 depends = ['socketmodule.h']), ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
639 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
640 missing.append('_ssl') |
| 15940 | 641 |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
642 # 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
|
643 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
|
644 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
|
645 '^\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
|
646 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
|
647 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
|
648 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
|
649 try: |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
650 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
|
651 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
|
652 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
|
653 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
|
654 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
|
655 break |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
656 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
|
657 pass |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
658 |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
659 # 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
|
660 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
|
661 break |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
662 |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
663 #print 'openssl_ver = 0x%08x' % 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
|
664 |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
665 if (ssl_incs is not None and |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
666 ssl_libs is not None and |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
667 openssl_ver >= 0x00907000): |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
668 # The _hashlib module wraps optimized implementations |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
669 # of hash functions from the OpenSSL library. |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
670 exts.append( Extension('_hashlib', ['_hashopenssl.c'], |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
671 include_dirs = ssl_incs, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
672 library_dirs = ssl_libs, |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
673 libraries = ['ssl', 'crypto']) ) |
|
42841
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
674 # these aren't strictly missing since they are unneeded. |
|
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
675 #missing.extend(['_sha', '_md5']) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
676 else: |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
677 # The _sha module implements the SHA1 hash algorithm. |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
678 exts.append( Extension('_sha', ['shamodule.c']) ) |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
679 # The _md5 module implements the RSA Data Security, Inc. MD5 |
|
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
680 # Message-Digest Algorithm, described in RFC 1321. The |
|
37436
115428bb1d3f
- Patch #360466: Replace the MD5 implementation from RSA Data Security Inc
Matthias Klose <doko@ubuntu.com>
parents:
37413
diff
changeset
|
681 # necessary files md5.c and md5.h are included here. |
|
38617
f00518bb5b43
add depends = ['md5.h'] to the _md5 module extension for correctness sake.
Gregory P. Smith <greg@mad-scientist.com>
parents:
38582
diff
changeset
|
682 exts.append( Extension('_md5', |
|
f00518bb5b43
add depends = ['md5.h'] to the _md5 module extension for correctness sake.
Gregory P. Smith <greg@mad-scientist.com>
parents:
38582
diff
changeset
|
683 sources = ['md5module.c', 'md5.c'], |
|
f00518bb5b43
add depends = ['md5.h'] to the _md5 module extension for correctness sake.
Gregory P. Smith <greg@mad-scientist.com>
parents:
38582
diff
changeset
|
684 depends = ['md5.h']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
685 missing.append('_hashlib') |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
686 |
|
35396
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
687 if (openssl_ver < 0x00908000): |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
688 # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
689 exts.append( Extension('_sha256', ['sha256module.c']) ) |
|
12a9bb24b6d9
Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents:
35375
diff
changeset
|
690 exts.append( Extension('_sha512', ['sha512module.c']) ) |
|
35375
624918e1c1b2
[ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents:
35238
diff
changeset
|
691 |
| 15940 | 692 # Modules that provide persistent dictionary-like semantics. You will |
| 693 # probably want to arrange for at least one of them to be available on | |
| 694 # your machine, though none are defined by default because of library | |
| 695 # dependencies. The Python module anydbm.py provides an | |
| 696 # implementation independent wrapper for these; dumbdbm.py provides | |
| 697 # similar functionality (but slower of course) implemented in Python. | |
| 698 | |
|
43477
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
699 # Sleepycat^WOracle Berkeley DB interface. |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
700 # http://www.oracle.com/database/berkeley-db/db/index.html |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
701 # |
|
42841
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
702 # This requires the Sleepycat^WOracle DB code. The supported versions |
|
43510
fa93dd4e34bc
remove another sleepycat reference
Gregory P. Smith <greg@mad-scientist.com>
parents:
43504
diff
changeset
|
703 # are set below. Visit the URL above to download |
|
37691
eac83feeb11f
raise the minimum supported BerkeleyDB version to 3.3 and add notes to
Gregory P. Smith <greg@mad-scientist.com>
parents:
37605
diff
changeset
|
704 # a release. Most open source OSes come with one or more |
|
eac83feeb11f
raise the minimum supported BerkeleyDB version to 3.3 and add notes to
Gregory P. Smith <greg@mad-scientist.com>
parents:
37605
diff
changeset
|
705 # versions of BerkeleyDB already installed. |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
706 |
|
47333
3c70d68beb30
Allow BerlekeyDB up through 4.7. I doubt any of our unixy buildbots even have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47249
diff
changeset
|
707 max_db_ver = (4, 7) |
|
37691
eac83feeb11f
raise the minimum supported BerkeleyDB version to 3.3 and add notes to
Gregory P. Smith <greg@mad-scientist.com>
parents:
37605
diff
changeset
|
708 min_db_ver = (3, 3) |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
709 db_setup_debug = False # verbose debug prints from this script? |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
710 |
|
47351
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
711 def allow_db_ver(db_ver): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
712 """Returns a boolean if the given BerkeleyDB version is acceptable. |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
713 |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
714 Args: |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
715 db_ver: A tuple of the version to verify. |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
716 """ |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
717 if not (min_db_ver <= db_ver <= max_db_ver): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
718 return False |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
719 # Use this function to filter out known bad configurations. |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
720 if (4, 6) == db_ver[:2]: |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
721 # BerkeleyDB 4.6.x is not stable on many architectures. |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
722 arch = platform_machine() |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
723 if arch not in ('i386', 'i486', 'i586', 'i686', |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
724 'x86_64', 'ia64'): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
725 return False |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
726 return True |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
727 |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
728 def gen_db_minor_ver_nums(major): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
729 if major == 4: |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
730 for x in range(max_db_ver[1]+1): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
731 if allow_db_ver((4, x)): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
732 yield x |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
733 elif major == 3: |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
734 for x in (3,): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
735 if allow_db_ver((3, x)): |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
736 yield x |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
737 else: |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
738 raise ValueError("unknown major BerkeleyDB version", major) |
|
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
739 |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
740 # construct a list of paths to look for the header file in on |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
741 # top of the normal inc_dirs. |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
742 db_inc_paths = [ |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
743 '/usr/include/db4', |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
744 '/usr/local/include/db4', |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
745 '/opt/sfw/include/db4', |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
746 '/usr/include/db3', |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
747 '/usr/local/include/db3', |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
748 '/opt/sfw/include/db3', |
|
41003
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
749 # Fink defaults (http://fink.sourceforge.net/) |
|
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
750 '/sw/include/db4', |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
751 '/sw/include/db3', |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
752 ] |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
753 # 4.x minor number specific paths |
|
47351
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
754 for x in gen_db_minor_ver_nums(4): |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
755 db_inc_paths.append('/usr/include/db4%d' % x) |
|
35737
5390ddc77eb8
Find bsd db v4 on gentoo (2005 i think)
Neal Norwitz <nnorwitz@gmail.com>
parents:
35396
diff
changeset
|
756 db_inc_paths.append('/usr/include/db4.%d' % x) |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
757 db_inc_paths.append('/usr/local/BerkeleyDB.4.%d/include' % x) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
758 db_inc_paths.append('/usr/local/include/db4%d' % x) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
759 db_inc_paths.append('/pkg/db-4.%d/include' % x) |
|
36396
0372e25e430e
Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents:
36162
diff
changeset
|
760 db_inc_paths.append('/opt/db-4.%d/include' % x) |
|
41003
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
761 # MacPorts default (http://www.macports.org/) |
|
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
762 db_inc_paths.append('/opt/local/include/db4%d' % x) |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
763 # 3.x minor number specific paths |
|
47351
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
764 for x in gen_db_minor_ver_nums(3): |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
765 db_inc_paths.append('/usr/include/db3%d' % x) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
766 db_inc_paths.append('/usr/local/BerkeleyDB.3.%d/include' % x) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
767 db_inc_paths.append('/usr/local/include/db3%d' % x) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
768 db_inc_paths.append('/pkg/db-3.%d/include' % x) |
|
36396
0372e25e430e
Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents:
36162
diff
changeset
|
769 db_inc_paths.append('/opt/db-3.%d/include' % x) |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
770 |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
771 # Add some common subdirectories for Sleepycat DB to the list, |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
772 # based on the standard include directories. This way DB3/4 gets |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
773 # picked up when it is installed in a non-standard prefix and |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
774 # the user has added that prefix into inc_dirs. |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
775 std_variants = [] |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
776 for dn in inc_dirs: |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
777 std_variants.append(os.path.join(dn, 'db3')) |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
778 std_variants.append(os.path.join(dn, 'db4')) |
|
47351
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
779 for x in gen_db_minor_ver_nums(4): |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
780 std_variants.append(os.path.join(dn, "db4%d"%x)) |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
781 std_variants.append(os.path.join(dn, "db4.%d"%x)) |
|
47351
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
782 for x in gen_db_minor_ver_nums(3): |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
783 std_variants.append(os.path.join(dn, "db3%d"%x)) |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
784 std_variants.append(os.path.join(dn, "db3.%d"%x)) |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
785 |
|
38967
a21e420a597c
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
38946
diff
changeset
|
786 db_inc_paths = std_variants + db_inc_paths |
|
41003
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
787 db_inc_paths = [p for p in db_inc_paths if os.path.exists(p)] |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
788 |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
789 db_ver_inc_map = {} |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
790 |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
791 class db_found(Exception): pass |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
792 try: |
|
26548
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
793 # See whether there is a Sleepycat header in the standard |
|
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
794 # search path. |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
795 for d in inc_dirs + db_inc_paths: |
|
26548
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
796 f = os.path.join(d, "db.h") |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
797 if db_setup_debug: print "db: looking for db.h in", f |
|
26548
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
798 if os.path.exists(f): |
|
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
799 f = open(f).read() |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
800 m = re.search(r"#define\WDB_VERSION_MAJOR\W(\d+)", f) |
|
26548
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
801 if m: |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
802 db_major = int(m.group(1)) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
803 m = re.search(r"#define\WDB_VERSION_MINOR\W(\d+)", f) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
804 db_minor = int(m.group(1)) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
805 db_ver = (db_major, db_minor) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
806 |
|
43477
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
807 # Avoid 4.6 prior to 4.6.21 due to a BerkeleyDB bug |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
808 if db_ver == (4, 6): |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
809 m = re.search(r"#define\WDB_VERSION_PATCH\W(\d+)", f) |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
810 db_patch = int(m.group(1)) |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
811 if db_patch < 21: |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
812 print "db.h:", db_ver, "patch", db_patch, |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
813 print "being ignored (4.6.x must be >= 4.6.21)" |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
814 continue |
|
f7353595b7fa
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
Gregory P. Smith <greg@mad-scientist.com>
parents:
43319
diff
changeset
|
815 |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
816 if ( (not db_ver_inc_map.has_key(db_ver)) and |
|
47351
502e72f28e9e
Disable the use of BerkeleyDB 4.6 on platforms that appear to have
Gregory P. Smith <greg@mad-scientist.com>
parents:
47333
diff
changeset
|
817 allow_db_ver(db_ver) ): |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
818 # save the include directory with the db.h version |
|
41003
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
819 # (first occurrence only) |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
820 db_ver_inc_map[db_ver] = d |
|
40207
98e900499043
Check db_setup_debug for a few print statements; change sqlite_setup_debug to False
Andrew M. Kuchling <amk@amk.ca>
parents:
39422
diff
changeset
|
821 if db_setup_debug: |
|
98e900499043
Check db_setup_debug for a few print statements; change sqlite_setup_debug to False
Andrew M. Kuchling <amk@amk.ca>
parents:
39422
diff
changeset
|
822 print "db.h: found", db_ver, "in", d |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
823 else: |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
824 # we already found a header for this library version |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
825 if db_setup_debug: print "db.h: ignoring", d |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
826 else: |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
827 # ignore this header, it didn't contain a version number |
|
41003
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
828 if db_setup_debug: |
|
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
829 print "db.h: no version number version in", d |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
830 |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
831 db_found_vers = db_ver_inc_map.keys() |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
832 db_found_vers.sort() |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
833 |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
834 while db_found_vers: |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
835 db_ver = db_found_vers.pop() |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
836 db_incdir = db_ver_inc_map[db_ver] |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
837 |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
838 # check lib directories parallel to the location of the header |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
839 db_dirs_to_check = [ |
|
41003
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
840 db_incdir.replace("include", 'lib64'), |
|
fe9a9d39a351
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
Skip Montanaro <skip@pobox.com>
parents:
40989
diff
changeset
|
841 db_incdir.replace("include", 'lib'), |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
842 ] |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
843 db_dirs_to_check = filter(os.path.isdir, db_dirs_to_check) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
844 |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
845 # Look for a version specific db-X.Y before an ambiguoius dbX |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
846 # XXX should we -ever- look for a dbX name? Do any |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
847 # systems really not name their library by version and |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
848 # symlink to more general names? |
|
34717
516f15521598
add support for another DB library naming convention (FreeBSD ports)
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents:
34706
diff
changeset
|
849 for dblib in (('db-%d.%d' % db_ver), |
|
516f15521598
add support for another DB library naming convention (FreeBSD ports)
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents:
34706
diff
changeset
|
850 ('db%d%d' % db_ver), |
|
516f15521598
add support for another DB library naming convention (FreeBSD ports)
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents:
34706
diff
changeset
|
851 ('db%d' % db_ver[0])): |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
852 dblib_file = self.compiler.find_library_file( |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
853 db_dirs_to_check + lib_dirs, dblib ) |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
854 if dblib_file: |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
855 dblib_dir = [ os.path.abspath(os.path.dirname(dblib_file)) ] |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
856 raise db_found |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
857 else: |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
858 if db_setup_debug: print "db lib: ", dblib, "not found" |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
859 |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
860 except db_found: |
|
47379
922e5a24cc82
Turn off debugging output for building bsddb.
Brett Cannon <bcannon@gmail.com>
parents:
47351
diff
changeset
|
861 if db_setup_debug: |
|
922e5a24cc82
Turn off debugging output for building bsddb.
Brett Cannon <bcannon@gmail.com>
parents:
47351
diff
changeset
|
862 print "bsddb using BerkeleyDB lib:", db_ver, dblib |
|
922e5a24cc82
Turn off debugging output for building bsddb.
Brett Cannon <bcannon@gmail.com>
parents:
47351
diff
changeset
|
863 print "bsddb lib dir:", dblib_dir, " inc dir:", db_incdir |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
864 db_incs = [db_incdir] |
|
24143
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
865 dblibs = [dblib] |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
866 # We add the runtime_library_dirs argument because the |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
867 # BerkeleyDB lib we're linking against often isn't in the |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
868 # system dynamic library search path. This is usually |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
869 # correct and most trouble free, but may cause problems in |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
870 # some unusual system configurations (e.g. the directory |
|
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
871 # is on an NFS server that goes away). |
|
26280
875140d30e17
Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
26137
diff
changeset
|
872 exts.append(Extension('_bsddb', ['_bsddb.c'], |
|
43504
33021e403f3c
Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents:
43477
diff
changeset
|
873 depends = ['bsddb.h'], |
|
26548
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
874 library_dirs=dblib_dir, |
|
67912d83799f
Search in standard library and include dirs for Sleepycat stuff.
Martin v. Löwis <martin@v.loewis.de>
parents:
26443
diff
changeset
|
875 runtime_library_dirs=dblib_dir, |
|
26280
875140d30e17
Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
26137
diff
changeset
|
876 include_dirs=db_incs, |
|
875140d30e17
Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
26137
diff
changeset
|
877 libraries=dblibs)) |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
878 else: |
|
34158
3626db433104
rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents:
34156
diff
changeset
|
879 if db_setup_debug: print "db: no appropriate library found" |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
880 db_incs = None |
|
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
881 dblibs = [] |
|
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
882 dblib_dir = None |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
883 missing.append('_bsddb') |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
884 |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
885 # The sqlite interface |
|
40207
98e900499043
Check db_setup_debug for a few print statements; change sqlite_setup_debug to False
Andrew M. Kuchling <amk@amk.ca>
parents:
39422
diff
changeset
|
886 sqlite_setup_debug = False # verbose debug prints from this script? |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
887 |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
888 # We hunt for #define SQLITE_VERSION "n.n.n" |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
889 # We need to find >= sqlite version 3.0.8 |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
890 sqlite_incdir = sqlite_libdir = None |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
891 sqlite_inc_paths = [ '/usr/include', |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
892 '/usr/include/sqlite', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
893 '/usr/include/sqlite3', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
894 '/usr/local/include', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
895 '/usr/local/include/sqlite', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
896 '/usr/local/include/sqlite3', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
897 ] |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
898 MIN_SQLITE_VERSION_NUMBER = (3, 0, 8) |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
899 MIN_SQLITE_VERSION = ".".join([str(x) |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
900 for x in MIN_SQLITE_VERSION_NUMBER]) |
|
38348
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
901 |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
902 # Scan the default include directories before the SQLite specific |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
903 # ones. This allows one to override the copy of sqlite on OSX, |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
904 # where /usr/include contains an old version of sqlite. |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
905 for d in inc_dirs + sqlite_inc_paths: |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
906 f = os.path.join(d, "sqlite3.h") |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
907 if os.path.exists(f): |
|
37381
91e9fb5cfe14
backport r243 from the pysqlite2 svn repository - lowers the required version
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37362
diff
changeset
|
908 if sqlite_setup_debug: print "sqlite: found %s"%f |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
909 incf = open(f).read() |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
910 m = re.search( |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
911 r'\s*.*#\s*.*define\s.*SQLITE_VERSION\W*"(.*)"', incf) |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
912 if m: |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
913 sqlite_version = m.group(1) |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
914 sqlite_version_tuple = tuple([int(x) |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
915 for x in sqlite_version.split(".")]) |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
916 if sqlite_version_tuple >= MIN_SQLITE_VERSION_NUMBER: |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
917 # we win! |
|
40207
98e900499043
Check db_setup_debug for a few print statements; change sqlite_setup_debug to False
Andrew M. Kuchling <amk@amk.ca>
parents:
39422
diff
changeset
|
918 if sqlite_setup_debug: |
|
98e900499043
Check db_setup_debug for a few print statements; change sqlite_setup_debug to False
Andrew M. Kuchling <amk@amk.ca>
parents:
39422
diff
changeset
|
919 print "%s/sqlite3.h: version %s"%(d, sqlite_version) |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
920 sqlite_incdir = d |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
921 break |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
922 else: |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
923 if sqlite_setup_debug: |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
924 print "%s: version %d is too old, need >= %s"%(d, |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
925 sqlite_version, MIN_SQLITE_VERSION) |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
926 elif sqlite_setup_debug: |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
927 print "sqlite: %s had no SQLITE_VERSION"%(f,) |
|
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
928 |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
929 if sqlite_incdir: |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
930 sqlite_dirs_to_check = [ |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
931 os.path.join(sqlite_incdir, '..', 'lib64'), |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
932 os.path.join(sqlite_incdir, '..', 'lib'), |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
933 os.path.join(sqlite_incdir, '..', '..', 'lib64'), |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
934 os.path.join(sqlite_incdir, '..', '..', 'lib'), |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
935 ] |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
936 sqlite_libfile = self.compiler.find_library_file( |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
937 sqlite_dirs_to_check + lib_dirs, 'sqlite3') |
|
49431
2e794757bdc8
Merged revisions 66766-66767,66771-66772,66774,66776,66783-66787,66790,66793,66797 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49346
diff
changeset
|
938 if sqlite_libfile: |
|
2e794757bdc8
Merged revisions 66766-66767,66771-66772,66774,66776,66783-66787,66790,66793,66797 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49346
diff
changeset
|
939 sqlite_libdir = [os.path.abspath(os.path.dirname(sqlite_libfile))] |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
940 |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
941 if sqlite_incdir and sqlite_libdir: |
|
37938
7da4af95ebad
Updated the sqlite3 module to the external pysqlite 2.2.2 version.
Gerhard Häring <gh@ghaering.de>
parents:
37691
diff
changeset
|
942 sqlite_srcs = ['_sqlite/cache.c', |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
943 '_sqlite/connection.c', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
944 '_sqlite/cursor.c', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
945 '_sqlite/microprotocols.c', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
946 '_sqlite/module.c', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
947 '_sqlite/prepare_protocol.c', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
948 '_sqlite/row.c', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
949 '_sqlite/statement.c', |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
950 '_sqlite/util.c', ] |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
951 |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
952 sqlite_defines = [] |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
953 if sys.platform != "win32": |
|
37495
d3969aeba777
upgrade to final version of pysqlite 2.2.0
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37492
diff
changeset
|
954 sqlite_defines.append(('MODULE_NAME', '"sqlite3"')) |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
955 else: |
|
37495
d3969aeba777
upgrade to final version of pysqlite 2.2.0
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37492
diff
changeset
|
956 sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"')) |
|
d3969aeba777
upgrade to final version of pysqlite 2.2.0
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37492
diff
changeset
|
957 |
|
38348
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
958 |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
959 if sys.platform == 'darwin': |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
960 # In every directory on the search path search for a dynamic |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
961 # library and then a static library, instead of first looking |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
962 # for dynamic libraries on the entiry path. |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
963 # This way a staticly linked custom sqlite gets picked up |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
964 # before the dynamic library in /usr/lib. |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
965 sqlite_extra_link_args = ('-Wl,-search_paths_first',) |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
966 else: |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
967 sqlite_extra_link_args = () |
|
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
968 |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
969 exts.append(Extension('_sqlite3', sqlite_srcs, |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
970 define_macros=sqlite_defines, |
|
37406
85b26f4fa2a5
cleaned up setup.py code for sqlite3, based on patch from Gerhard Haering.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37381
diff
changeset
|
971 include_dirs=["Modules/_sqlite", |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
972 sqlite_incdir], |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
973 library_dirs=sqlite_libdir, |
|
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
974 runtime_library_dirs=sqlite_libdir, |
|
38348
8d28e63e8f21
- Search the sqlite specific search directories
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38262
diff
changeset
|
975 extra_link_args=sqlite_extra_link_args, |
|
37362
e546274d6503
merged the sqlite-integration branch.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37313
diff
changeset
|
976 libraries=["sqlite3",])) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
977 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
978 missing.append('_sqlite3') |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
979 |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
980 # Look for Berkeley db 1.85. Note that it is built as a different |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
981 # module name so it can be included even when later versions are |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
982 # available. A very restrictive search is performed to avoid |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
983 # accidentally building this module with a later version of the |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
984 # underlying db library. May BSD-ish Unixes incorporate db 1.85 |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
985 # symbols into libc and place the include file in /usr/include. |
|
42841
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
986 # |
|
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
987 # If the better bsddb library can be built (db_incs is defined) |
|
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
988 # we do not build this one. Otherwise this build will pick up |
|
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
989 # the more recent berkeleydb's db.h file first in the include path |
|
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
990 # when attempting to compile and it will fail. |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
991 f = "/usr/include/db.h" |
|
42841
673cbc85d8c4
keep setup.py from listing unneeded hash modules (_md5, _sha*) as
Gregory P. Smith <greg@mad-scientist.com>
parents:
42772
diff
changeset
|
992 if os.path.exists(f) and not db_incs: |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
993 data = open(f).read() |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
994 m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data) |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
995 if m is not None: |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
996 # bingo - old version used hash file format version 2 |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
997 ### XXX this should be fixed to not be platform-dependent |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
998 ### but I don't have direct access to an osf1 platform and |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
999 ### seemed to be muffing the search somehow |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
1000 libraries = platform == "osf1" and ['db'] or None |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
1001 if libraries is not None: |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
1002 exts.append(Extension('bsddb185', ['bsddbmodule.c'], |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
1003 libraries=libraries)) |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
1004 else: |
|
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
1005 exts.append(Extension('bsddb185', ['bsddbmodule.c'])) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1006 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1007 missing.append('bsddb185') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1008 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1009 missing.append('bsddb185') |
|
29001
6c40b73c7045
build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents:
28947
diff
changeset
|
1010 |
| 15940 | 1011 # 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
|
1012 if platform not in ['cygwin']: |
|
26570
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1013 if find_file("ndbm.h", inc_dirs, []) is not None: |
|
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1014 # Some systems have -lndbm, others don't |
|
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1015 if self.compiler.find_library_file(lib_dirs, 'ndbm'): |
|
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1016 ndbm_libs = ['ndbm'] |
|
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1017 else: |
|
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1018 ndbm_libs = [] |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1019 exts.append( Extension('dbm', ['dbmmodule.c'], |
|
24143
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
1020 define_macros=[('HAVE_NDBM_H',None)], |
|
26570
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1021 libraries = ndbm_libs ) ) |
|
24143
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
1022 elif (self.compiler.find_library_file(lib_dirs, 'gdbm') |
|
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
1023 and find_file("gdbm/ndbm.h", inc_dirs, []) is not None): |
|
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
1024 exts.append( Extension('dbm', ['dbmmodule.c'], |
|
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
1025 define_macros=[('HAVE_GDBM_NDBM_H',None)], |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
1026 libraries = ['gdbm'] ) ) |
|
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
1027 elif db_incs is not None: |
|
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
1028 exts.append( Extension('dbm', ['dbmmodule.c'], |
|
26570
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1029 library_dirs=dblib_dir, |
|
2aba1ac4744c
Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h
Martin v. Löwis <martin@v.loewis.de>
parents:
26548
diff
changeset
|
1030 runtime_library_dirs=dblib_dir, |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
1031 include_dirs=db_incs, |
|
24143
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
1032 define_macros=[('HAVE_BERKDB_H',None), |
|
e9e6111beec1
The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents:
24032
diff
changeset
|
1033 ('DB_DBM_HSEARCH',None)], |
|
23867
45d676933882
This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents:
23825
diff
changeset
|
1034 libraries=dblibs)) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1035 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1036 missing.append('dbm') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1037 |
| 15940 | 1038 # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: |
| 1039 if (self.compiler.find_library_file(lib_dirs, 'gdbm')): | |
| 1040 exts.append( Extension('gdbm', ['gdbmmodule.c'], | |
| 1041 libraries = ['gdbm'] ) ) | |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1042 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1043 missing.append('gdbm') |
| 15940 | 1044 |
| 1045 # Unix-only modules | |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1046 if platform not in ['mac', 'win32']: |
| 15940 | 1047 # Steen Lumholt's termios module |
| 1048 exts.append( Extension('termios', ['termios.c']) ) | |
| 1049 # Jeremy Hylton's rlimit interface | |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1050 if platform not in ['atheos']: |
|
23777
bec1b942e0bc
Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents:
23659
diff
changeset
|
1051 exts.append( Extension('resource', ['resource.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1052 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1053 missing.append('resource') |
| 15940 | 1054 |
|
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
|
1055 # Sun yellow pages. Some systems have the functions in libc. |
|
47227
5ec9528c93de
Patch #1722225: Support QNX 6.
Martin v. Löwis <martin@v.loewis.de>
parents:
47200
diff
changeset
|
1056 if platform not in ['cygwin', 'atheos', 'qnx6']: |
|
16804
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1057 if (self.compiler.find_library_file(lib_dirs, 'nsl')): |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1058 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
|
1059 else: |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1060 libs = [] |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
1061 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
|
1062 libraries = libs) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1063 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1064 missing.append('nis') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1065 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1066 missing.extend(['nis', 'resource', 'termios']) |
| 15940 | 1067 |
|
31468
de2ed800fa50
a couple other sunos4 support items removed
Skip Montanaro <skip@pobox.com>
parents:
31436
diff
changeset
|
1068 # 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
|
1069 # provided by the ncurses library. |
|
39390
b7eab1c18e9d
[Patch #1464056] Ensure that we use the panelw library when linking with ncursesw.
Andrew M. Kuchling <amk@amk.ca>
parents:
39374
diff
changeset
|
1070 panel_library = 'panel' |
|
36479
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
1071 if (self.compiler.find_library_file(lib_dirs, 'ncursesw')): |
|
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
1072 curses_libs = ['ncursesw'] |
|
39390
b7eab1c18e9d
[Patch #1464056] Ensure that we use the panelw library when linking with ncursesw.
Andrew M. Kuchling <amk@amk.ca>
parents:
39374
diff
changeset
|
1073 # Bug 1464056: If _curses.so links with ncursesw, |
|
b7eab1c18e9d
[Patch #1464056] Ensure that we use the panelw library when linking with ncursesw.
Andrew M. Kuchling <amk@amk.ca>
parents:
39374
diff
changeset
|
1074 # _curses_panel.so must link with panelw. |
|
b7eab1c18e9d
[Patch #1464056] Ensure that we use the panelw library when linking with ncursesw.
Andrew M. Kuchling <amk@amk.ca>
parents:
39374
diff
changeset
|
1075 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
|
1076 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
|
1077 libraries = curses_libs) ) |
|
d496c0764ad6
Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents:
36459
diff
changeset
|
1078 elif (self.compiler.find_library_file(lib_dirs, 'ncurses')): |
| 15940 | 1079 curses_libs = ['ncurses'] |
| 1080 exts.append( Extension('_curses', ['_cursesmodule.c'], | |
| 1081 libraries = curses_libs) ) | |
| 21274 | 1082 elif (self.compiler.find_library_file(lib_dirs, 'curses') |
| 1083 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
|
1084 # 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
|
1085 # the _curses module. |
| 15940 | 1086 if (self.compiler.find_library_file(lib_dirs, 'terminfo')): |
| 1087 curses_libs = ['curses', 'terminfo'] | |
|
28473
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
1088 elif (self.compiler.find_library_file(lib_dirs, 'termcap')): |
|
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
1089 curses_libs = ['curses', 'termcap'] |
| 15940 | 1090 else: |
|
28473
0f558eede6c5
SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents:
28356
diff
changeset
|
1091 curses_libs = ['curses'] |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1092 |
| 15940 | 1093 exts.append( Extension('_curses', ['_cursesmodule.c'], |
| 1094 libraries = curses_libs) ) | |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1095 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1096 missing.append('_curses') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1097 |
| 15940 | 1098 # 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
|
1099 if (module_enabled(exts, '_curses') and |
|
39390
b7eab1c18e9d
[Patch #1464056] Ensure that we use the panelw library when linking with ncursesw.
Andrew M. Kuchling <amk@amk.ca>
parents:
39374
diff
changeset
|
1100 self.compiler.find_library_file(lib_dirs, panel_library)): |
| 15940 | 1101 exts.append( Extension('_curses_panel', ['_curses_panel.c'], |
|
39390
b7eab1c18e9d
[Patch #1464056] Ensure that we use the panelw library when linking with ncursesw.
Andrew M. Kuchling <amk@amk.ca>
parents:
39374
diff
changeset
|
1102 libraries = [panel_library] + curses_libs) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1103 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1104 missing.append('_curses_panel') |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1105 |
|
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
|
1106 # 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
|
1107 # 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
|
1108 # 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
|
1109 # |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1110 # 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
|
1111 # 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
|
1112 # 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
|
1113 # 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
|
1114 # 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
|
1115 # |
|
825948c21f0d
Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents:
24605
diff
changeset
|
1116 # 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
|
1117 # 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
|
1118 zlib_inc = find_file('zlib.h', [], inc_dirs) |
|
46038
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1119 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
|
1120 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
|
1121 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
|
1122 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
|
1123 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
|
1124 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
|
1125 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
|
1126 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
|
1127 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
|
1128 break |
|
24605
fd4575b56a4d
Update the URL for getting zlib, and update the minimal required
Guido van Rossum <guido@python.org>
parents:
24579
diff
changeset
|
1129 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
|
1130 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
|
1131 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
|
1132 if version >= version_req: |
|
c497fa3fe38a
Patch by Mark Favas to ensure that the zlib we find is 1.1.3 or
Guido van Rossum <guido@python.org>
parents:
17099
diff
changeset
|
1133 if (self.compiler.find_library_file(lib_dirs, 'z')): |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1134 if sys.platform == "darwin": |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1135 zlib_extra_link_args = ('-Wl,-search_paths_first',) |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1136 else: |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1137 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
|
1138 exts.append( Extension('zlib', ['zlibmodule.c'], |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1139 libraries = ['z'], |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1140 extra_link_args = zlib_extra_link_args)) |
|
46038
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1141 have_zlib = True |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1142 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1143 missing.append('zlib') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1144 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1145 missing.append('zlib') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1146 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1147 missing.append('zlib') |
| 15940 | 1148 |
|
46038
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1149 # Helper module for various ascii-encoders. Uses zlib for an optimized |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1150 # crc32 if we have it. Otherwise binascii uses its own. |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1151 if have_zlib: |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1152 extra_compile_args = ['-DUSE_ZLIB_CRC32'] |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1153 libraries = ['z'] |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1154 extra_link_args = zlib_extra_link_args |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1155 else: |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1156 extra_compile_args = [] |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1157 libraries = [] |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1158 extra_link_args = [] |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1159 exts.append( Extension('binascii', ['binascii.c'], |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1160 extra_compile_args = extra_compile_args, |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1161 libraries = libraries, |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1162 extra_link_args = extra_link_args) ) |
|
5ca928402e54
Have the binascii module use zlib's optimized crc32() function when available
Gregory P. Smith <greg@mad-scientist.com>
parents:
46024
diff
changeset
|
1163 |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1164 # Gustavo Niemeyer's bz2 module. |
|
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1165 if (self.compiler.find_library_file(lib_dirs, 'bz2')): |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1166 if sys.platform == "darwin": |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1167 bz2_extra_link_args = ('-Wl,-search_paths_first',) |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1168 else: |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1169 bz2_extra_link_args = () |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1170 exts.append( Extension('bz2', ['bz2module.c'], |
|
38946
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1171 libraries = ['bz2'], |
|
7c8990cccf9b
Use staticly build copies of zlib and bzip2 to build the OSX installer, that
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38617
diff
changeset
|
1172 extra_link_args = bz2_extra_link_args) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1173 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1174 missing.append('bz2') |
|
26037
521e89c4ff44
Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
25790
diff
changeset
|
1175 |
| 15940 | 1176 # Interface to the Expat XML parser |
| 1177 # | |
|
23889
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1178 # Expat was written by James Clark and is now maintained by a |
|
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1179 # group of developers on SourceForge; see www.libexpat.org for |
|
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1180 # more information. The pyexpat module was written by Paul |
|
30425
d864f3168cac
Remove possibly-misleading Expat version
Andrew M. Kuchling <amk@amk.ca>
parents:
29795
diff
changeset
|
1181 # Prescod after a prototype by Jack Jansen. The Expat source |
|
d864f3168cac
Remove possibly-misleading Expat version
Andrew M. Kuchling <amk@amk.ca>
parents:
29795
diff
changeset
|
1182 # is included in Modules/expat/. Usage of a system |
|
23889
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1183 # shared libexpat.so/expat.dll is not advised. |
|
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1184 # |
|
41ab532d4f60
Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents:
23867
diff
changeset
|
1185 # 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
|
1186 # |
|
21942
9d44e752d617
Compute expat -I directives from srcdir. Fixes #517214.
Martin v. Löwis <martin@v.loewis.de>
parents:
21939
diff
changeset
|
1187 expatinc = os.path.join(os.getcwd(), srcdir, 'Modules', 'expat') |
|
30731
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1188 define_macros = [ |
|
38040
36c7a4422e30
Patch 1471883: --enable-universalsdk on Mac OS X
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38013
diff
changeset
|
1189 ('HAVE_EXPAT_CONFIG_H', '1'), |
|
36c7a4422e30
Patch 1471883: --enable-universalsdk on Mac OS X
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38013
diff
changeset
|
1190 ] |
|
36c7a4422e30
Patch 1471883: --enable-universalsdk on Mac OS X
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
38013
diff
changeset
|
1191 |
|
30731
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1192 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
|
1193 define_macros = define_macros, |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1194 include_dirs = [expatinc], |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1195 sources = ['pyexpat.c', |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1196 'expat/xmlparse.c', |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1197 'expat/xmlrole.c', |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1198 'expat/xmltok.c', |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1199 ], |
|
f0da0cad5cd5
Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents:
30485
diff
changeset
|
1200 )) |
| 15940 | 1201 |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1202 # 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
|
1203 # 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
|
1204 |
|
37234
34f20ab44cef
Find a source file in srcdir to allow to build outside of srcdir.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
37021
diff
changeset
|
1205 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
|
1206 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
|
1207 exts.append(Extension('_elementtree', |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1208 define_macros = define_macros, |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1209 include_dirs = [expatinc], |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1210 sources = ['_elementtree.c'], |
|
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1211 )) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1212 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1213 missing.append('_elementtree') |
|
36026
e01d8524b6f6
added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents:
35737
diff
changeset
|
1214 |
|
31386
887ce39f95f2
Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
31353
diff
changeset
|
1215 # Hye-Shik Chang's CJKCodecs modules. |
|
34706
d687a8a09a72
Build with --disable-unicode again. Fixes #1158607.
Martin v. Löwis <martin@v.loewis.de>
parents:
34636
diff
changeset
|
1216 if have_unicode: |
|
d687a8a09a72
Build with --disable-unicode again. Fixes #1158607.
Martin v. Löwis <martin@v.loewis.de>
parents:
34636
diff
changeset
|
1217 exts.append(Extension('_multibytecodec', |
|
d687a8a09a72
Build with --disable-unicode again. Fixes #1158607.
Martin v. Löwis <martin@v.loewis.de>
parents:
34636
diff
changeset
|
1218 ['cjkcodecs/multibytecodec.c'])) |
|
d687a8a09a72
Build with --disable-unicode again. Fixes #1158607.
Martin v. Löwis <martin@v.loewis.de>
parents:
34636
diff
changeset
|
1219 for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'): |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1220 exts.append(Extension('_codecs_%s' % loc, |
|
34706
d687a8a09a72
Build with --disable-unicode again. Fixes #1158607.
Martin v. Löwis <martin@v.loewis.de>
parents:
34636
diff
changeset
|
1221 ['cjkcodecs/_codecs_%s.c' % loc])) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1222 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1223 missing.append('_multibytecodec') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1224 for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'): |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1225 missing.append('_codecs_%s' % loc) |
|
31386
887ce39f95f2
Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
31353
diff
changeset
|
1226 |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1227 # Dynamic loading module |
|
25232
aac1ee966f56
Only build the 'dl' extension when sys.maxint equals 2**31-1.
Guido van Rossum <guido@python.org>
parents:
25075
diff
changeset
|
1228 if sys.maxint == 0x7fffffff: |
|
aac1ee966f56
Only build the 'dl' extension when sys.maxint equals 2**31-1.
Guido van Rossum <guido@python.org>
parents:
25075
diff
changeset
|
1229 # This requires sizeof(int) == sizeof(long) == sizeof(char*) |
|
aac1ee966f56
Only build the 'dl' extension when sys.maxint equals 2**31-1.
Guido van Rossum <guido@python.org>
parents:
25075
diff
changeset
|
1230 dl_inc = find_file('dlfcn.h', [], inc_dirs) |
|
37553
3959810bc549
Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37537
diff
changeset
|
1231 if (dl_inc is not None) and (platform not in ['atheos']): |
|
25232
aac1ee966f56
Only build the 'dl' extension when sys.maxint equals 2**31-1.
Guido van Rossum <guido@python.org>
parents:
25075
diff
changeset
|
1232 exts.append( Extension('dl', ['dlmodule.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1233 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1234 missing.append('dl') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1235 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1236 missing.append('dl') |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1237 |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1238 # Thomas Heller's _ctypes module |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1239 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
|
1240 |
|
47577
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1241 # Richard Oudkerk's multiprocessing module |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1242 if platform == 'win32': # Windows |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1243 macros = dict() |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1244 libraries = ['ws2_32'] |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1245 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1246 elif platform == 'darwin': # Mac OSX |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1247 macros = dict( |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1248 HAVE_SEM_OPEN=1, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1249 HAVE_SEM_TIMEDWAIT=0, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1250 HAVE_FD_TRANSFER=1, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1251 HAVE_BROKEN_SEM_GETVALUE=1 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1252 ) |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1253 libraries = [] |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1254 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1255 elif platform == 'cygwin': # Cygwin |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1256 macros = dict( |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1257 HAVE_SEM_OPEN=1, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1258 HAVE_SEM_TIMEDWAIT=1, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1259 HAVE_FD_TRANSFER=0, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1260 HAVE_BROKEN_SEM_UNLINK=1 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1261 ) |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1262 libraries = [] |
|
47845
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1263 |
|
49641
a529e3dc695a
Merged revisions 67098 via svnmerge from
Martin v. Löwis <martin@v.loewis.de>
parents:
49454
diff
changeset
|
1264 elif platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'): |
|
47845
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1265 # FreeBSD's P1003.1b semaphore support is very experimental |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1266 # and has many known problems. (as of June 2008) |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1267 macros = dict( # FreeBSD |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1268 HAVE_SEM_OPEN=0, |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1269 HAVE_SEM_TIMEDWAIT=0, |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1270 HAVE_FD_TRANSFER=1, |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1271 ) |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1272 libraries = [] |
|
b85770459591
Give information for compililation of _multiprocessing.SemLock on FreeBSD:
Hye-Shik Chang <hyeshik@gmail.com>
parents:
47577
diff
changeset
|
1273 |
|
49346
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1274 elif platform.startswith('openbsd'): |
|
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1275 macros = dict( # OpenBSD |
|
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1276 HAVE_SEM_OPEN=0, # Not implemented |
|
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1277 HAVE_SEM_TIMEDWAIT=0, |
|
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1278 HAVE_FD_TRANSFER=1, |
|
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1279 ) |
|
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1280 libraries = [] |
|
b4964df64384
issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller
Jesse Noller <jnoller@gmail.com>
parents:
47845
diff
changeset
|
1281 |
|
47577
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1282 else: # Linux and other unices |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1283 macros = dict( |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1284 HAVE_SEM_OPEN=1, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1285 HAVE_SEM_TIMEDWAIT=1, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1286 HAVE_FD_TRANSFER=1 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1287 ) |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1288 libraries = ['rt'] |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1289 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1290 if platform == 'win32': |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1291 multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1292 '_multiprocessing/semaphore.c', |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1293 '_multiprocessing/pipe_connection.c', |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1294 '_multiprocessing/socket_connection.c', |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1295 '_multiprocessing/win32_functions.c' |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1296 ] |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1297 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1298 else: |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1299 multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c', |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1300 '_multiprocessing/socket_connection.c' |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1301 ] |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1302 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1303 if macros.get('HAVE_SEM_OPEN', False): |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1304 multiprocessing_srcs.append('_multiprocessing/semaphore.c') |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1305 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1306 exts.append ( Extension('_multiprocessing', multiprocessing_srcs, |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1307 define_macros=macros.items(), |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1308 include_dirs=["Modules/_multiprocessing"])) |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1309 # End multiprocessing |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1310 |
|
4511ecd25634
add the multiprocessing package to fulfill PEP 371
Benjamin Peterson <benjamin@python.org>
parents:
47473
diff
changeset
|
1311 |
| 15940 | 1312 # Platform-specific libraries |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1313 if platform == 'linux2': |
| 15940 | 1314 # Linux-specific modules |
| 1315 exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) | |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1316 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1317 missing.append('linuxaudiodev') |
|
27149
5ed820670af3
Add reminder that ossaudiodev can/should also be built on FreeBSD.
Greg Ward <gward@python.net>
parents:
27148
diff
changeset
|
1318 |
|
35238
526faaab00eb
Add support for FreeBSD 7.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
34930
diff
changeset
|
1319 if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', |
|
43703
365913d7af7d
Enable platform-specific tweaks for FreeBSD 8 (exactly same to FreeBSD 7's yet)
Hye-Shik Chang <hyeshik@gmail.com>
parents:
43510
diff
changeset
|
1320 '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
|
1321 exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1322 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1323 missing.append('ossaudiodev') |
| 15940 | 1324 |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1325 if platform == 'sunos5': |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1326 # SunOS specific modules |
| 15940 | 1327 exts.append( Extension('sunaudiodev', ['sunaudiodev.c']) ) |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1328 else: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1329 missing.append('sunaudiodev') |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1330 |
|
33294
67fbbeb1e218
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
33285
diff
changeset
|
1331 if platform == 'darwin' and ("--disable-toolbox-glue" not in |
|
37313
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1332 sysconfig.get_config_var("CONFIG_ARGS")): |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1333 |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1334 if os.uname()[2] > '8.': |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1335 # We're on Mac OS X 10.4 or later, the compiler should |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1336 # support '-Wno-deprecated-declarations'. This will |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1337 # surpress deprecation warnings for the Carbon extensions, |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1338 # these extensions wrap the Carbon APIs and even those |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1339 # parts that are deprecated. |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1340 carbon_extra_compile_args = ['-Wno-deprecated-declarations'] |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1341 else: |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1342 carbon_extra_compile_args = [] |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1343 |
|
26396
e3fae7b6c207
Don't disable building Mac-specific modules for a non-framework build:
Just van Rossum <just@letterror.com>
parents:
26351
diff
changeset
|
1344 # Mac OS X specific modules. |
|
37413
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1345 def macSrcExists(name1, name2=''): |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1346 if not name1: |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1347 return None |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1348 names = (name1,) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1349 if name2: |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1350 names = (name1, name2) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1351 path = os.path.join(srcdir, 'Mac', 'Modules', *names) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1352 return os.path.exists(path) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1353 |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1354 def addMacExtension(name, kwds, extra_srcs=[]): |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1355 dirname = '' |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1356 if name[0] == '_': |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1357 dirname = name[1:].lower() |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1358 cname = name + '.c' |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1359 cmodulename = name + 'module.c' |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1360 # Check for NNN.c, NNNmodule.c, _nnn/NNN.c, _nnn/NNNmodule.c |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1361 if macSrcExists(cname): |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1362 srcs = [cname] |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1363 elif macSrcExists(cmodulename): |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1364 srcs = [cmodulename] |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1365 elif macSrcExists(dirname, cname): |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1366 # XXX(nnorwitz): If all the names ended with module, we |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1367 # wouldn't need this condition. ibcarbon is the only one. |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1368 srcs = [os.path.join(dirname, cname)] |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1369 elif macSrcExists(dirname, cmodulename): |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1370 srcs = [os.path.join(dirname, cmodulename)] |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1371 else: |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1372 raise RuntimeError("%s not found" % name) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1373 |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1374 # Here's the whole point: add the extension with sources |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1375 exts.append(Extension(name, srcs + extra_srcs, **kwds)) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1376 |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1377 # Core Foundation |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1378 core_kwds = {'extra_compile_args': carbon_extra_compile_args, |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1379 'extra_link_args': ['-framework', 'CoreFoundation'], |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1380 } |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1381 addMacExtension('_CF', core_kwds, ['cf/pycfbridge.c']) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1382 addMacExtension('autoGIL', core_kwds) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1383 |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1384 # Carbon |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1385 carbon_kwds = {'extra_compile_args': carbon_extra_compile_args, |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1386 'extra_link_args': ['-framework', 'Carbon'], |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1387 } |
|
37492
09990661226d
whitespace normalisation
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37458
diff
changeset
|
1388 CARBON_EXTS = ['ColorPicker', 'gestalt', 'MacOS', 'Nav', |
|
09990661226d
whitespace normalisation
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37458
diff
changeset
|
1389 'OSATerminology', 'icglue', |
|
37413
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1390 # All these are in subdirs |
|
37492
09990661226d
whitespace normalisation
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37458
diff
changeset
|
1391 '_AE', '_AH', '_App', '_CarbonEvt', '_Cm', '_Ctl', |
|
37413
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1392 '_Dlg', '_Drag', '_Evt', '_File', '_Folder', '_Fm', |
|
37492
09990661226d
whitespace normalisation
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37458
diff
changeset
|
1393 '_Help', '_Icn', '_IBCarbon', '_List', |
|
09990661226d
whitespace normalisation
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37458
diff
changeset
|
1394 '_Menu', '_Mlte', '_OSA', '_Res', '_Qd', '_Qdoffs', |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1395 '_Scrap', '_Snd', '_TE', |
|
37492
09990661226d
whitespace normalisation
Anthony Baxter <anthonybaxter@gmail.com>
parents:
37458
diff
changeset
|
1396 ] |
|
37413
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1397 for name in CARBON_EXTS: |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1398 addMacExtension(name, carbon_kwds) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1399 |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1400 # Workaround for a bug in the version of gcc shipped with Xcode 3. |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1401 # The _Win extension should build just like the other Carbon extensions, but |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1402 # this actually results in a hard crash of the linker. |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1403 # |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1404 if '-arch ppc64' in cflags and '-arch ppc' in cflags: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1405 win_kwds = {'extra_compile_args': carbon_extra_compile_args + ['-arch', 'i386', '-arch', 'ppc'], |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1406 'extra_link_args': ['-framework', 'Carbon', '-arch', 'i386', '-arch', 'ppc'], |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1407 } |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1408 addMacExtension('_Win', win_kwds) |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1409 else: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1410 addMacExtension('_Win', carbon_kwds) |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1411 |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1412 |
|
37413
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1413 # Application Services & QuickTime |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1414 app_kwds = {'extra_compile_args': carbon_extra_compile_args, |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1415 'extra_link_args': ['-framework','ApplicationServices'], |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1416 } |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1417 addMacExtension('_Launch', app_kwds) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1418 addMacExtension('_CG', app_kwds) |
|
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1419 |
|
26396
e3fae7b6c207
Don't disable building Mac-specific modules for a non-framework build:
Just van Rossum <just@letterror.com>
parents:
26351
diff
changeset
|
1420 exts.append( Extension('_Qt', ['qt/_Qtmodule.c'], |
|
37313
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1421 extra_compile_args=carbon_extra_compile_args, |
|
228e25c93a97
Add '-Wno-deprecated-warnings' to the compile flags for the Carbon extensions
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
37234
diff
changeset
|
1422 extra_link_args=['-framework', 'QuickTime', |
|
26396
e3fae7b6c207
Don't disable building Mac-specific modules for a non-framework build:
Just van Rossum <just@letterror.com>
parents:
26351
diff
changeset
|
1423 '-framework', 'Carbon']) ) |
|
37413
7826049acb4b
Remove some duplicated code for handling Mac modules. No functional change (intended). Also stoped setting srcdir twice.
Neal Norwitz <nnorwitz@gmail.com>
parents:
37406
diff
changeset
|
1424 |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1425 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1426 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
|
1427 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1428 # 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
|
1429 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
|
1430 |
|
41025
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1431 if '_tkinter' not in [e.name for e in self.extensions]: |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1432 missing.append('_tkinter') |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1433 |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1434 return missing |
|
06992e6b205a
patch 1673619 - identify extension modules which cannot be built
Skip Montanaro <skip@pobox.com>
parents:
41003
diff
changeset
|
1435 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1436 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
|
1437 # 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
|
1438 # 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
|
1439 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
|
1440 framework_dirs = [ |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1441 '/System/Library/Frameworks/', |
|
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1442 '/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
|
1443 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
|
1444 ] |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1445 |
|
36156
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1446 # 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
|
1447 # bundles. |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1448 # 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
|
1449 for F in framework_dirs: |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1450 # 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
|
1451 for fw in 'Tcl', 'Tk': |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1452 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
|
1453 break |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1454 else: |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1455 # 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
|
1456 # building |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1457 break |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1458 else: |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1459 # 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
|
1460 # 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
|
1461 return 0 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1462 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1463 # 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
|
1464 # 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
|
1465 # 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
|
1466 # |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1467 include_dirs = [ |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1468 join(F, fw + '.framework', H) |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1469 for fw in 'Tcl', 'Tk' |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1470 for H in 'Headers', 'Versions/Current/PrivateHeaders' |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1471 ] |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1472 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1473 # 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
|
1474 # 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
|
1475 # 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
|
1476 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
|
1477 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
|
1478 |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1479 # All existing framework builds of Tcl/Tk don't support 64-bit |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1480 # architectures. |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1481 cflags = sysconfig.get_config_vars('CFLAGS')[0] |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1482 archs = re.findall('-arch\s+(\w+)', cflags) |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1483 if 'x86_64' in archs or 'ppc64' in archs: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1484 try: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1485 archs.remove('x86_64') |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1486 except ValueError: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1487 pass |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1488 try: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1489 archs.remove('ppc64') |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1490 except ValueError: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1491 pass |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1492 |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1493 for a in archs: |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1494 frameworks.append('-arch') |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1495 frameworks.append(a) |
|
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1496 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1497 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
|
1498 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
|
1499 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
|
1500 libraries = [], |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1501 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
|
1502 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
|
1503 ) |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1504 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
|
1505 return 1 |
|
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1506 |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1507 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1508 def detect_tkinter(self, inc_dirs, lib_dirs): |
| 15940 | 1509 # 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
|
1510 |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1511 # 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
|
1512 # 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
|
1513 # 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
|
1514 platform = self.get_platform() |
|
36156
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1515 if (platform == 'darwin' and |
|
c71ca1cd363b
typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents:
36144
diff
changeset
|
1516 self.detect_tkinter_darwin(inc_dirs, lib_dirs)): |
|
27507
d9d57f5f98cd
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
27396
diff
changeset
|
1517 return |
|
23957
03bba7282852
Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents:
23889
diff
changeset
|
1518 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1519 # 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
|
1520 # 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
|
1521 # 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
|
1522 tcllib = tklib = tcl_includes = tk_includes = None |
|
31742
c061f25f74e0
[Patch #905863] Support the CVS version of Tcl/Tk, which has the version number 8.5
Andrew M. Kuchling <amk@amk.ca>
parents:
31741
diff
changeset
|
1523 for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', |
|
18819
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1524 '82', '8.1', '81', '8.0', '80']: |
|
27694
7c4dda0c145f
This patch enables Cygwin Python to build _tkinter against Tcl/Tk 8.4.
Jason Tishler <jason@tishler.net>
parents:
27598
diff
changeset
|
1525 tklib = self.compiler.find_library_file(lib_dirs, '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
|
1526 tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
1527 if tklib and tcllib: |
| 15940 | 1528 # Exit the loop when we've found the Tcl/Tk libraries |
| 1529 break | |
| 1530 | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1531 # 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
|
1532 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
|
1533 # 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
|
1534 # 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
|
1535 dotversion = version |
|
4eb458c3941d
[Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents:
31468
diff
changeset
|
1536 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
|
1537 # 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
|
1538 # 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
|
1539 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
|
1540 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
|
1541 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
|
1542 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
|
1543 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
|
1544 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
|
1545 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
|
1546 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
|
1547 tk_includes = find_file('tk.h', inc_dirs, tk_include_sub) |
| 15940 | 1548 |
|
28947
8df897f14fb8
Change 'and' to 'or' in _tkinter test.
Martin v. Löwis <martin@v.loewis.de>
parents:
28940
diff
changeset
|
1549 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
|
1550 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
|
1551 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
|
1552 return |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1553 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1554 # OK... everything seems to be present for Tcl/Tk. |
| 15940 | 1555 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1556 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
|
1557 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
|
1558 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
|
1559 include_dirs.append(dir) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1560 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1561 # 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
|
1562 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
|
1563 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
|
1564 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
|
1565 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
|
1566 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
|
1567 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
|
1568 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
|
1569 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
|
1570 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
|
1571 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
|
1572 else: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1573 # 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
|
1574 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
|
1575 added_lib_dirs.append('/usr/X11/lib') |
| 15940 | 1576 |
|
27695
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1577 # 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
|
1578 if platform == 'cygwin': |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1579 x11_inc = find_file('X11/Xlib.h', [], include_dirs) |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1580 if x11_inc is None: |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1581 return |
|
1a300f475332
This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents:
27694
diff
changeset
|
1582 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1583 # Check for BLT extension |
| 21274 | 1584 if self.compiler.find_library_file(lib_dirs + added_lib_dirs, |
| 1585 'BLT8.0'): | |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1586 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
|
1587 libs.append('BLT8.0') |
|
26626
e41ee2b8e73d
Patch #629126: Detect BLT by also looking for libBLT.
Martin v. Löwis <martin@v.loewis.de>
parents:
26616
diff
changeset
|
1588 elif self.compiler.find_library_file(lib_dirs + added_lib_dirs, |
|
e41ee2b8e73d
Patch #629126: Detect BLT by also looking for libBLT.
Martin v. Löwis <martin@v.loewis.de>
parents:
26616
diff
changeset
|
1589 'BLT'): |
|
e41ee2b8e73d
Patch #629126: Detect BLT by also looking for libBLT.
Martin v. Löwis <martin@v.loewis.de>
parents:
26616
diff
changeset
|
1590 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
|
1591 libs.append('BLT') |
| 15940 | 1592 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1593 # 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
|
1594 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
|
1595 libs.append('tcl'+ version) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1596 |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
1597 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
|
1598 libs.append('ld') |
| 15940 | 1599 |
|
18819
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1600 # 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
|
1601 if platform != "cygwin": |
|
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
1602 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
|
1603 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1604 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
|
1605 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
|
1606 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
|
1607 libraries = libs, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1608 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
|
1609 ) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1610 self.extensions.append(ext) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1611 |
|
27820
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1612 ## # 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
|
1613 ## ext = Extension('xx', ['xxmodule.c']) |
|
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1614 ## self.extensions.append(ext) |
|
fbc45beaf034
Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents:
27695
diff
changeset
|
1615 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
1616 # XXX handle these, but how to detect? |
| 15940 | 1617 # *** 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
|
1618 # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ |
| 15940 | 1619 # *** 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
|
1620 # -DWITH_TOGL togl.c \ |
| 15940 | 1621 # *** Uncomment these for TOGL extension only: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1622 # -lGL -lGLU -lXext -lXmu \ |
| 15940 | 1623 |
|
45655
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1624 def configure_ctypes_darwin(self, ext): |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1625 # Darwin (OS X) uses preconfigured files, in |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1626 # the Modules/_ctypes/libffi_osx directory. |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1627 (srcdir,) = sysconfig.get_config_vars('srcdir') |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1628 ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1629 '_ctypes', 'libffi_osx')) |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1630 sources = [os.path.join(ffi_srcdir, p) |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1631 for p in ['ffi.c', |
|
47473
c34e34057714
MacOS X: Enable 4-way universal builds
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
47449
diff
changeset
|
1632 'x86/darwin64.S', |
|
45655
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1633 'x86/x86-darwin.S', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1634 'x86/x86-ffi_darwin.c', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1635 'x86/x86-ffi64.c', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1636 'powerpc/ppc-darwin.S', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1637 'powerpc/ppc-darwin_closure.S', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1638 'powerpc/ppc-ffi_darwin.c', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1639 'powerpc/ppc64-darwin_closure.S', |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1640 ]] |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1641 |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1642 # Add .S (preprocessed assembly) to C compiler source extensions. |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1643 self.compiler.src_extensions.append('.S') |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1644 |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1645 include_dirs = [os.path.join(ffi_srcdir, 'include'), |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1646 os.path.join(ffi_srcdir, 'powerpc')] |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1647 ext.include_dirs.extend(include_dirs) |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1648 ext.sources.extend(sources) |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1649 return True |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1650 |
|
37536
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
1651 def configure_ctypes(self, ext): |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1652 if not self.use_system_libffi: |
|
45655
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1653 if sys.platform == 'darwin': |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1654 return self.configure_ctypes_darwin(ext) |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1655 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1656 (srcdir,) = sysconfig.get_config_vars('srcdir') |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1657 ffi_builddir = os.path.join(self.build_temp, 'libffi') |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1658 ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules', |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1659 '_ctypes', 'libffi')) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1660 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
|
1661 |
|
38013
4da0f7621325
Rerun the libffi configuration if any of the files used for that
Thomas Heller <theller@ctypes.org>
parents:
37938
diff
changeset
|
1662 from distutils.dep_util import newer_group |
|
4da0f7621325
Rerun the libffi configuration if any of the files used for that
Thomas Heller <theller@ctypes.org>
parents:
37938
diff
changeset
|
1663 |
|
4da0f7621325
Rerun the libffi configuration if any of the files used for that
Thomas Heller <theller@ctypes.org>
parents:
37938
diff
changeset
|
1664 config_sources = [os.path.join(ffi_srcdir, fname) |
|
40844
a6546c27369a
Ignore directory time stamps when considering
Martin v. Löwis <martin@v.loewis.de>
parents:
40544
diff
changeset
|
1665 for fname in os.listdir(ffi_srcdir) |
|
a6546c27369a
Ignore directory time stamps when considering
Martin v. Löwis <martin@v.loewis.de>
parents:
40544
diff
changeset
|
1666 if os.path.isfile(os.path.join(ffi_srcdir, fname))] |
|
38013
4da0f7621325
Rerun the libffi configuration if any of the files used for that
Thomas Heller <theller@ctypes.org>
parents:
37938
diff
changeset
|
1667 if self.force or newer_group(config_sources, |
|
4da0f7621325
Rerun the libffi configuration if any of the files used for that
Thomas Heller <theller@ctypes.org>
parents:
37938
diff
changeset
|
1668 ffi_configfile): |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1669 from distutils.dir_util import mkpath |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1670 mkpath(ffi_builddir) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1671 config_args = [] |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1672 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1673 # Pass empty CFLAGS because we'll just append the resulting |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1674 # CFLAGS to Python's; -g or -O2 is to be avoided. |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1675 cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \ |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1676 % (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
|
1677 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1678 res = os.system(cmd) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1679 if res or not os.path.exists(ffi_configfile): |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1680 print "Failed to configure _ctypes module" |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1681 return False |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1682 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1683 fficonfig = {} |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1684 execfile(ffi_configfile, globals(), fficonfig) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1685 ffi_srcdir = os.path.join(fficonfig['ffi_srcdir'], 'src') |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1686 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1687 # Add .S (preprocessed assembly) to C compiler source extensions. |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1688 self.compiler.src_extensions.append('.S') |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1689 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1690 include_dirs = [os.path.join(ffi_builddir, 'include'), |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1691 ffi_builddir, ffi_srcdir] |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1692 extra_compile_args = fficonfig['ffi_cflags'].split() |
|
37536
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
1693 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1694 ext.sources.extend(fficonfig['ffi_sources']) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1695 ext.include_dirs.extend(include_dirs) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1696 ext.extra_compile_args.extend(extra_compile_args) |
|
37537
5bc2b4e3ffc1
Don't try to build ctypes when configuration of libffi fails.
Thomas Heller <theller@ctypes.org>
parents:
37536
diff
changeset
|
1697 return True |
|
37536
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
1698 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1699 def detect_ctypes(self, inc_dirs, lib_dirs): |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1700 self.use_system_libffi = False |
|
37536
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
1701 include_dirs = [] |
|
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
1702 extra_compile_args = [] |
|
39374
465a078d2ca6
Fix #1530448 - fix ctypes build failure on solaris 10.
Thomas Heller <theller@ctypes.org>
parents:
38967
diff
changeset
|
1703 extra_link_args = [] |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1704 sources = ['_ctypes/_ctypes.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1705 '_ctypes/callbacks.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1706 '_ctypes/callproc.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1707 '_ctypes/stgdict.c', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1708 '_ctypes/cfield.c', |
|
37536
9bed30df7a4a
Configure Modules/_ctypes/libffi just before building the _ctypes extension.
Thomas Heller <theller@ctypes.org>
parents:
37495
diff
changeset
|
1709 '_ctypes/malloc_closure.c'] |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1710 depends = ['_ctypes/ctypes.h'] |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1711 |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1712 if sys.platform == 'darwin': |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1713 sources.append('_ctypes/darwin/dlfcn_simple.c') |
|
45655
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1714 extra_compile_args.append('-DMACOSX') |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1715 include_dirs.append('_ctypes/darwin') |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1716 # XXX Is this still needed? |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1717 ## 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
|
1718 |
|
39374
465a078d2ca6
Fix #1530448 - fix ctypes build failure on solaris 10.
Thomas Heller <theller@ctypes.org>
parents:
38967
diff
changeset
|
1719 elif sys.platform == 'sunos5': |
|
39422
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1720 # XXX This shouldn't be necessary; it appears that some |
|
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1721 # of the assembler code is non-PIC (i.e. it has relocations |
|
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1722 # when it shouldn't. The proper fix would be to rewrite |
|
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1723 # the assembler code to be PIC. |
|
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1724 # This only works with GCC; the Sun compiler likely refuses |
|
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1725 # this option. If you want to compile ctypes with the Sun |
|
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1726 # compiler, please research a proper solution, instead of |
|
ddea4d37c83c
Add some commentary on -mimpure-text.
Martin v. Löwis <martin@v.loewis.de>
parents:
39390
diff
changeset
|
1727 # finding some -z option for the Sun compiler. |
|
39374
465a078d2ca6
Fix #1530448 - fix ctypes build failure on solaris 10.
Thomas Heller <theller@ctypes.org>
parents:
38967
diff
changeset
|
1728 extra_link_args.append('-mimpure-text') |
|
465a078d2ca6
Fix #1530448 - fix ctypes build failure on solaris 10.
Thomas Heller <theller@ctypes.org>
parents:
38967
diff
changeset
|
1729 |
|
47449
4440247b8a44
Fix misspelled sys.platform name and misspelled filename.
Thomas Heller <theller@ctypes.org>
parents:
47379
diff
changeset
|
1730 elif sys.platform.startswith('hp-ux'): |
|
47200
22d2fb761ac1
On HPUX, -fPIC must be used for linking. _ctypes now builds on HP-UX
Thomas Heller <theller@ctypes.org>
parents:
46805
diff
changeset
|
1731 extra_link_args.append('-fPIC') |
|
22d2fb761ac1
On HPUX, -fPIC must be used for linking. _ctypes now builds on HP-UX
Thomas Heller <theller@ctypes.org>
parents:
46805
diff
changeset
|
1732 |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1733 ext = Extension('_ctypes', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1734 include_dirs=include_dirs, |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1735 extra_compile_args=extra_compile_args, |
|
39374
465a078d2ca6
Fix #1530448 - fix ctypes build failure on solaris 10.
Thomas Heller <theller@ctypes.org>
parents:
38967
diff
changeset
|
1736 extra_link_args=extra_link_args, |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1737 libraries=[], |
|
36898
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1738 sources=sources, |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1739 depends=depends) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1740 ext_test = Extension('_ctypes_test', |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1741 sources=['_ctypes/_ctypes_test.c']) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1742 self.extensions.extend([ext, ext_test]) |
|
27905ebaddab
Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents:
36817
diff
changeset
|
1743 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1744 if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1745 return |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1746 |
|
45655
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1747 if sys.platform == 'darwin': |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1748 # OS X 10.5 comes with libffi.dylib; the include files are |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1749 # in /usr/include/ffi |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1750 inc_dirs.append('/usr/include/ffi') |
|
d387b01dbc1c
Merged changes from libffi3-branch.
Thomas Heller <theller@ctypes.org>
parents:
45439
diff
changeset
|
1751 |
|
37605
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1752 ffi_inc = find_file('ffi.h', [], inc_dirs) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1753 if ffi_inc is not None: |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1754 ffi_h = ffi_inc[0] + '/ffi.h' |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1755 fp = open(ffi_h) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1756 while 1: |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1757 line = fp.readline() |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1758 if not line: |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1759 ffi_inc = None |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1760 break |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1761 if line.startswith('#define LIBFFI_H'): |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1762 break |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1763 ffi_lib = None |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1764 if ffi_inc is not None: |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1765 for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1766 if (self.compiler.find_library_file(lib_dirs, lib_name)): |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1767 ffi_lib = lib_name |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1768 break |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1769 |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1770 if ffi_inc and ffi_lib: |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1771 ext.include_dirs.extend(ffi_inc) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1772 ext.libraries.append(ffi_lib) |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1773 self.use_system_libffi = True |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1774 |
|
e070c316eb45
Patch #1464444: Add --with-system-ffi.
Martin v. Löwis <martin@v.loewis.de>
parents:
37553
diff
changeset
|
1775 |
|
17886
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1776 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
|
1777 # 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
|
1778 # 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
|
1779 # installation: |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
1780 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
|
1781 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
|
1782 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
|
1783 |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1784 class PyBuildInstallLib(install_lib): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1785 # 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
|
1786 # 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
|
1787 # 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
|
1788 # 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
|
1789 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1790 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
|
1791 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1792 def install(self): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1793 outfiles = install_lib.install(self) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1794 self.set_file_modes(outfiles, 0644, 0755) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1795 self.set_dir_modes(self.install_dir, 0755) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1796 return outfiles |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1797 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1798 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
|
1799 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
|
1800 if not files: return |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1801 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1802 for filename in files: |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1803 if os.path.islink(filename): continue |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1804 mode = defaultMode |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1805 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
|
1806 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
|
1807 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
|
1808 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1809 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
|
1810 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
|
1811 os.path.walk(dirname, self.set_dir_modes_visitor, mode) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1812 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1813 def set_dir_modes_visitor(self, mode, dirname, names): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1814 if os.path.islink(dirname): return |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1815 log.info("changing mode of %s to %o", dirname, mode) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1816 if not self.dry_run: os.chmod(dirname, mode) |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1817 |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1818 def is_chmod_supported(self): |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1819 return hasattr(os, 'chmod') |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1820 |
|
27990
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1821 SUMMARY = """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1822 Python is an interpreted, interactive, object-oriented programming |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1823 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
|
1824 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1825 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
|
1826 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
|
1827 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
|
1828 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
|
1829 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
|
1830 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
|
1831 programmable interface. |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1832 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1833 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
|
1834 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
|
1835 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
|
1836 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
|
1837 yourself. |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1838 """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1839 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1840 CLASSIFIERS = """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1841 Development Status :: 6 - Mature |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1842 License :: OSI Approved :: Python Software Foundation License |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1843 Natural Language :: English |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1844 Programming Language :: C |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1845 Programming Language :: Python |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1846 Topic :: Software Development |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1847 """ |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1848 |
| 15940 | 1849 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
|
1850 # 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
|
1851 import warnings |
|
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
1852 warnings.filterwarnings("ignore",category=DeprecationWarning) |
|
27990
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1853 setup(# PyPI Metadata (PEP 301) |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1854 name = "Python", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1855 version = sys.version.split()[0], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1856 url = "http://www.python.org/%s" % sys.version[:3], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1857 maintainer = "Guido van Rossum and the Python community", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1858 maintainer_email = "python-dev@python.org", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1859 description = "A high-level object-oriented programming language", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1860 long_description = SUMMARY.strip(), |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1861 license = "PSF license", |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1862 classifiers = filter(None, CLASSIFIERS.split("\n")), |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1863 platforms = ["Many"], |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1864 |
|
0b3db0edb151
Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents:
27989
diff
changeset
|
1865 # Build info |
|
26687
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1866 cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall, |
|
6b390548c698
This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents:
26674
diff
changeset
|
1867 'install_lib':PyBuildInstallLib}, |
| 15940 | 1868 # The struct module is defined here, because build_ext won't be |
| 1869 # called unless there's at least one extension module defined. | |
|
38262
6b79fffbbe1f
patch #1493701: performance enhancements for struct module
Bob Ippolito <bob@redivi.com>
parents:
38261
diff
changeset
|
1870 ext_modules=[Extension('_struct', ['_struct.c'])], |
| 16844 | 1871 |
| 1872 # Scripts to install | |
|
32416
950cf69c69b6
Install Barry's smtpd.py daemon.
Skip Montanaro <skip@pobox.com>
parents:
32400
diff
changeset
|
1873 scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle', |
|
46052
2d0e08917a2e
Install 2to3 script.
Martin v. Löwis <martin@v.loewis.de>
parents:
46038
diff
changeset
|
1874 'Tools/scripts/2to3', |
|
32416
950cf69c69b6
Install Barry's smtpd.py daemon.
Skip Montanaro <skip@pobox.com>
parents:
32400
diff
changeset
|
1875 'Lib/smtpd.py'] |
| 15940 | 1876 ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
1877 |
| 15940 | 1878 # --install-platlib |
| 1879 if __name__ == '__main__': | |
| 1880 main() |
