annotate setup.py @ 44999:7c02182e2979

Merged revisions 60284-60349 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r60286 | christian.heimes | 2008-01-25 15:54:23 +0100 (Fri, 25 Jan 2008) | 1 line setup.py doesn't pick up changes to a header file ........ r60287 | christian.heimes | 2008-01-25 16:52:11 +0100 (Fri, 25 Jan 2008) | 2 lines Added the Python core headers Include/*.h and pyconfig.h as dependencies for the extensions in Modules/ It forces a rebuild of all extensions when a header files has been modified ........ r60291 | raymond.hettinger | 2008-01-25 20:24:46 +0100 (Fri, 25 Jan 2008) | 4 lines Changes 54857 and 54840 broke code and were reverted in Py2.5 just before it was released, but that reversion never made it to the Py2.6 head. ........ r60296 | guido.van.rossum | 2008-01-25 20:50:26 +0100 (Fri, 25 Jan 2008) | 2 lines Rewrite the list_inline_repeat overflow check slightly differently. ........ r60301 | thomas.wouters | 2008-01-25 22:09:34 +0100 (Fri, 25 Jan 2008) | 4 lines Use the right (portable) definition of the max of a Py_ssize_t. ........ r60303 | thomas.wouters | 2008-01-26 02:47:05 +0100 (Sat, 26 Jan 2008) | 5 lines Make 'testall' work again when building in a separate directory. test_distutils still fails when doing that. ........ r60305 | neal.norwitz | 2008-01-26 06:54:48 +0100 (Sat, 26 Jan 2008) | 3 lines Prevent this test from failing if there are transient network problems by retrying the host for up to 3 times. ........ r60306 | neal.norwitz | 2008-01-26 08:26:12 +0100 (Sat, 26 Jan 2008) | 12 lines Use a condition variable (threading.Event) rather than sleeps and checking a global to determine when the server is ready to be used. This slows the test down, but should make it correct. There was a race condition before where the server could have assigned a port, yet it wasn't ready to serve requests. If the client sent a request before the server was completely ready, it would get an exception. There was machinery to try to handle this condition. All of that should be unnecessary and removed if this change works. A NOTE was added as a comment about what needs to be fixed. The buildbots will tell us if there are more errors or if this test is now stable. ........ r60307 | neal.norwitz | 2008-01-26 08:38:03 +0100 (Sat, 26 Jan 2008) | 3 lines Fix exception in tearDown on ppc buildbot. If there's no directory, that shouldn't cause the test to fail. Just like it setUp. ........ r60308 | raymond.hettinger | 2008-01-26 09:19:06 +0100 (Sat, 26 Jan 2008) | 3 lines Make PySet_Add() work with frozensets. Works like PyTuple_SetItem() to build-up values in a brand new frozenset. ........ r60309 | neal.norwitz | 2008-01-26 09:26:00 +0100 (Sat, 26 Jan 2008) | 1 line The OS X buildbot had errors with the unavailable exceptions disabled. Restore it. ........ r60310 | raymond.hettinger | 2008-01-26 09:37:28 +0100 (Sat, 26 Jan 2008) | 4 lines Let marshal build-up sets and frozensets one element at a time. Saves the unnecessary creation of a tuple as intermediate container. ........ r60311 | raymond.hettinger | 2008-01-26 09:41:13 +0100 (Sat, 26 Jan 2008) | 1 line Update test code for change to PySet_Add(). ........ r60312 | raymond.hettinger | 2008-01-26 10:31:11 +0100 (Sat, 26 Jan 2008) | 1 line Revert PySet_Add() changes. ........ r60314 | georg.brandl | 2008-01-26 10:43:35 +0100 (Sat, 26 Jan 2008) | 2 lines #1934: fix os.path.isabs docs. ........ r60316 | georg.brandl | 2008-01-26 12:00:18 +0100 (Sat, 26 Jan 2008) | 2 lines Add missing things in re docstring. ........ r60317 | georg.brandl | 2008-01-26 12:02:22 +0100 (Sat, 26 Jan 2008) | 2 lines Slashes allowed on Windows. ........ r60319 | georg.brandl | 2008-01-26 14:41:21 +0100 (Sat, 26 Jan 2008) | 2 lines Fix markup again. ........ r60320 | andrew.kuchling | 2008-01-26 14:50:51 +0100 (Sat, 26 Jan 2008) | 1 line Add some items ........ r60321 | georg.brandl | 2008-01-26 15:02:38 +0100 (Sat, 26 Jan 2008) | 2 lines Clarify "b" mode under Unix. ........ r60322 | georg.brandl | 2008-01-26 15:03:47 +0100 (Sat, 26 Jan 2008) | 3 lines #1940: make it possible to use curses.filter() before curses.initscr() as the documentation says. ........ r60324 | georg.brandl | 2008-01-26 15:14:20 +0100 (Sat, 26 Jan 2008) | 3 lines #1473257: add generator.gi_code attribute that refers to the original code object backing the generator. Patch by Collin Winter. ........ r60325 | georg.brandl | 2008-01-26 15:19:22 +0100 (Sat, 26 Jan 2008) | 2 lines Move C API entries to the corresponding section. ........ r60326 | christian.heimes | 2008-01-26 17:43:35 +0100 (Sat, 26 Jan 2008) | 1 line Unit test fix from Giampaolo Rodola, #1938 ........ r60327 | gregory.p.smith | 2008-01-26 19:51:05 +0100 (Sat, 26 Jan 2008) | 2 lines Update docs for new callpack params added in r60188 ........ r60329 | neal.norwitz | 2008-01-26 21:24:36 +0100 (Sat, 26 Jan 2008) | 3 lines Cleanup the code a bit. test_rfind is failing on PPC and PPC64 buildbots, this might fix the problem. ........ r60330 | neal.norwitz | 2008-01-26 22:02:45 +0100 (Sat, 26 Jan 2008) | 1 line Always try to remove the test file even if close raises an exception ........ r60331 | neal.norwitz | 2008-01-26 22:21:59 +0100 (Sat, 26 Jan 2008) | 3 lines Reduce the race condition by signalling when the server is ready and not trying to connect before. ........ r60334 | neal.norwitz | 2008-01-27 00:13:46 +0100 (Sun, 27 Jan 2008) | 5 lines On some systems (e.g., Ubuntu on hppa) the flush() doesn't cause the exception, but the close() does. Will backport. ........ r60335 | neal.norwitz | 2008-01-27 00:14:17 +0100 (Sun, 27 Jan 2008) | 2 lines Consistently use tempfile.tempdir for the db_home directory. ........ r60338 | neal.norwitz | 2008-01-27 02:44:05 +0100 (Sun, 27 Jan 2008) | 4 lines Eliminate the sleeps that assume the server will start in .5 seconds. This should make the test less flaky. It also speeds up the test by about 75% on my box (20+ seconds -> ~4 seconds). ........ r60342 | neal.norwitz | 2008-01-27 06:02:34 +0100 (Sun, 27 Jan 2008) | 6 lines Try to prevent this test from being flaky. We might need a sleep in here which isn't as bad as it sounds. The close() *should* raise an exception, so if it didn't we should give more time to sync and really raise it. Will backport. ........ r60344 | jeffrey.yasskin | 2008-01-27 06:40:35 +0100 (Sun, 27 Jan 2008) | 3 lines Make rational.gcd() public and allow Rational to take decimal strings, per Raymond's advice. ........ r60345 | neal.norwitz | 2008-01-27 08:36:03 +0100 (Sun, 27 Jan 2008) | 3 lines Mostly reformat. Also set an error and return NULL if neither MS_WINDOWS nor UNIX is defined. This may have caused problems on cygwin. ........ r60346 | neal.norwitz | 2008-01-27 08:37:38 +0100 (Sun, 27 Jan 2008) | 3 lines Use int for the sign rather than a char. char can be signed or unsigned. It's system dependent. This might fix the problem with test_rfind failing. ........ r60347 | neal.norwitz | 2008-01-27 08:41:33 +0100 (Sun, 27 Jan 2008) | 1 line Add stdarg include for va_list to get this to compile on cygwin ........ r60348 | raymond.hettinger | 2008-01-27 11:13:57 +0100 (Sun, 27 Jan 2008) | 1 line Docstring nit ........ r60349 | raymond.hettinger | 2008-01-27 11:47:55 +0100 (Sun, 27 Jan 2008) | 1 line Removed an unnecessary and confusing paragraph from the namedtuple docs. ........
author Christian Heimes <christian@cheimes.de>
date Sun, 27 Jan 2008 15:18:18 +0000
parents 14d4104976fc
children c3b38a85989f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16287
4b72888c9e2f Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents: 16283
diff changeset
1 # Autodetecting setup.py script for building the Python extensions
4b72888c9e2f Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents: 16283
diff changeset
2 #
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
3
16287
4b72888c9e2f Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents: 16283
diff changeset
4 __version__ = "$Revision$"
4b72888c9e2f Remove unused import of 'string'
Andrew M. Kuchling <amk@amk.ca>
parents: 16283
diff changeset
5
34125
1a938f456053 Change code in setup.py for parsing LDFLAGS and CPPFLAGS to use optparse
Brett Cannon <bcannon@gmail.com>
parents: 34124
diff changeset
6 import sys, os, imp, re, optparse
44999
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
7 from glob import glob
26687
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
8
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
9 from distutils import log
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
10 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
11 from distutils import text_file
16282
ea4a2f3b266e Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents: 16225
diff changeset
12 from distutils.errors import *
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
13 from distutils.core import Extension, setup
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
14 from distutils.command.build_ext import build_ext
17886
0af824c88203 Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents: 17531
diff changeset
15 from distutils.command.install import install
26687
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
16 from distutils.command.install_lib import install_lib
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
17
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
18 # This global variable is used to hold the list of modules to be disabled.
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
19 disabled_module_list = []
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
20
21742
9d5adff87f30 Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents: 21610
diff changeset
21 def add_dir_to_list(dirlist, dir):
9d5adff87f30 Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents: 21610
diff changeset
22 """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
23 1) 'dir' is not already in 'dirlist'
9d5adff87f30 Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents: 21610
diff changeset
24 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
25 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
26 dirlist.insert(0, dir)
9d5adff87f30 Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents: 21610
diff changeset
27
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
28 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
29 """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
30 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
31 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
32
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
33 '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
34 '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
35 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
36 '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
37 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
38 """
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 # 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
41 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
42 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
43 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
44
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
45 # 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
46 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
47 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
48 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
49 return [dir]
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
50
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
51 # Not found anywhere
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
52 return None
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
53
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
54 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
55 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
56 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
57 return None
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
58
26443
c1258b1a36c6 [Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents: 26396
diff changeset
59 # 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
60 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
61 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
62 # 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
63 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
64 if p == dirname:
c1258b1a36c6 [Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents: 26396
diff changeset
65 return [ ]
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
66
26443
c1258b1a36c6 [Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents: 26396
diff changeset
67 # 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
68 # 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
69 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
70 # 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
71 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
72 if p == dirname:
c1258b1a36c6 [Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents: 26396
diff changeset
73 return [p]
c1258b1a36c6 [Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents: 26396
diff changeset
74 else:
c1258b1a36c6 [Patch #641685] setup.py contained code for finding libraries, instead
Andrew M. Kuchling <amk@amk.ca>
parents: 26396
diff changeset
75 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
76
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
77 def module_enabled(extlist, modname):
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
78 """Returns whether the module 'modname' is present in the list
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
79 of extensions 'extlist'."""
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
80 extlist = [ext for ext in extlist if ext.name == modname]
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
81 return len(extlist)
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
82
19007
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
83 def find_module_file(module, dirlist):
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
84 """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
85 return the unadorned filename"""
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
86 list = find_file(module, [], dirlist)
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
87 if not list:
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
88 return module
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
89 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
90 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
91 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
92
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
93 class PyBuildExt(build_ext):
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
94
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
95 def __init__(self, dist):
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
96 build_ext.__init__(self, dist)
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
97 self.failed = []
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
98
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
99 def build_extensions(self):
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
100
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
101 # Detect which modules should be compiled
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
102 missing = self.detect_modules()
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
103
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
104 # Remove modules that are present on the disabled list
44742
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
105 extensions = [ext for ext in self.extensions
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
106 if ext.name not in disabled_module_list]
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
107 # move ctypes to the end, it depends on other modules
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
108 ext_map = dict((ext.name, i) for i, ext in enumerate(extensions))
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
109 if "_ctypes" in ext_map:
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
110 ctypes = extensions.pop(ext_map["_ctypes"])
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
111 extensions.append(ctypes)
14d4104976fc Merged revisions 59985-60000,60002,60005-60007,60009-60042 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44160
diff changeset
112 self.extensions = extensions
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
113
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
114 # Fix up the autodetected modules, prefixing all the source files
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
115 # with Modules/ and adding Python's include directory to the path.
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
116 (srcdir,) = sysconfig.get_config_vars('srcdir')
25790
83828583d917 [SF bug 620364]
Guido van Rossum <guido@python.org>
parents: 25415
diff changeset
117 if not srcdir:
83828583d917 [SF bug 620364]
Guido van Rossum <guido@python.org>
parents: 25415
diff changeset
118 # Maybe running on Windows but not using CYGWIN?
83828583d917 [SF bug 620364]
Guido van Rossum <guido@python.org>
parents: 25415
diff changeset
119 raise ValueError("No source directory; cannot proceed.")
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
120
16225
e56dd2dd9960 Patch from Andrew to properly set module source directory.
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents: 16201
diff changeset
121 # Figure out the location of the source code for extension modules
e56dd2dd9960 Patch from Andrew to properly set module source directory.
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents: 16201
diff changeset
122 moddir = os.path.join(os.getcwd(), srcdir, 'Modules')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
123 moddir = os.path.normpath(moddir)
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
124 srcdir, tail = os.path.split(moddir)
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
125 srcdir = os.path.normpath(srcdir)
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
126 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
127
19007
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
128 moddirlist = [moddir]
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
129 incdirlist = ['./Include']
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 # Platform-dependent module source and include directories
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
132 platform = self.get_platform()
33294
67fbbeb1e218 Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 33285
diff changeset
133 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
134 sysconfig.get_config_var("CONFIG_ARGS")):
19007
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
135 # 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
136 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
137 moddirlist.append(macmoddir)
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
138 incdirlist.append('./Mac/Include')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
139
23825
9f0009ca97b9 Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 23816
diff changeset
140 alldirlist = moddirlist + incdirlist
9f0009ca97b9 Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 23816
diff changeset
141
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
142 # 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
143 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
144 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
145
44999
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
146 # Python header files
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
147 headers = glob("Include/*.h") + ["pyconfig.h"]
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
148
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
149 for ext in self.extensions[:]:
19007
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
150 ext.sources = [ find_module_file(filename, moddirlist)
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
151 for filename in ext.sources ]
23825
9f0009ca97b9 Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 23816
diff changeset
152 if ext.depends is not None:
9f0009ca97b9 Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 23816
diff changeset
153 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
154 for filename in ext.depends]
44999
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
155 else:
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
156 ext.depends = []
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
157 # re-compile extensions if a header file has been changed
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
158 ext.depends.extend(headers)
7c02182e2979 Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44742
diff changeset
159
19007
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
160 ext.include_dirs.append( '.' ) # to get config.h
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
161 for incdir in incdirlist:
cefdcd60a8b2 Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents: 18845
diff changeset
162 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
163
16038
b6863ba88989 GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents: 16013
diff changeset
164 # 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
165 # 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
166 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
167 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
168
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
169 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
170 # 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
171 # 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
172 remove_modules = []
36144
82a52a464aa2 Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents: 36026
diff changeset
173 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
174 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
175 while 1:
82a52a464aa2 Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents: 36026
diff changeset
176 line = input.readline()
82a52a464aa2 Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents: 36026
diff changeset
177 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
178 line = line.split()
82a52a464aa2 Bug #999767: make setup.py obey Setup.local wrt shared modules
Georg Brandl <georg@python.org>
parents: 36026
diff changeset
179 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
180 input.close()
36162
1e595b6c924e Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 36156
diff changeset
181
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
182 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
183 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
184 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
185
15998
f390f43ac4b6 Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents: 15996
diff changeset
186 # 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
187 # 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
188 # 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
189 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
190 args = {}
f390f43ac4b6 Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents: 15996
diff changeset
191 # 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
192 # compilers
f390f43ac4b6 Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents: 15996
diff changeset
193 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
194 (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
195 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
196 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
197
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
198 build_ext.build_extensions(self)
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
199
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
200 longest = max([len(e.name) for e in self.extensions])
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
201 if self.failed:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
202 longest = max(longest, max([len(name) for name in self.failed]))
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
203
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
204 def print_three_column(lst):
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
205 lst.sort(key=str.lower)
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
206 # guarantee zip() doesn't drop anything
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
207 while len(lst) % 3:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
208 lst.append("")
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
209 for e, f, g in zip(lst[::3], lst[1::3], lst[2::3]):
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
210 print("%-*s %-*s %-*s" % (longest, e, longest, f,
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
211 longest, g))
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
212
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
213 if missing:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
214 print()
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
215 print("Failed to find the necessary bits to build these modules:")
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
216 print_three_column(missing)
42775
d7517c306791 Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42653
diff changeset
217 print("To find the necessary bits, look in setup.py in"
d7517c306791 Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42653
diff changeset
218 " detect_modules() for the module's name.")
d7517c306791 Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42653
diff changeset
219 print()
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
220
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
221 if self.failed:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
222 failed = self.failed[:]
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
223 print()
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
224 print("Failed to build these modules:")
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
225 print_three_column(failed)
42775
d7517c306791 Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42653
diff changeset
226 print()
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
227
16282
ea4a2f3b266e Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents: 16225
diff changeset
228 def build_extension(self, ext):
ea4a2f3b266e Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents: 16225
diff changeset
229
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
230 if ext.name == '_ctypes':
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
231 if not self.configure_ctypes(ext):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
232 return
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
233
16282
ea4a2f3b266e Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents: 16225
diff changeset
234 try:
ea4a2f3b266e Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents: 16225
diff changeset
235 build_ext.build_extension(self, ext)
40587
6b18a095c2e7 SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents: 40582
diff changeset
236 except (CCompilerError, DistutilsError) as why:
16282
ea4a2f3b266e Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents: 16225
diff changeset
237 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
238 (ext.name, sys.exc_info()[1]))
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
239 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
240 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
241 # 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
242 # 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
243 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
244 self.announce(
3ef7bed007f6 Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents: 21775
diff changeset
245 '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
246 ext.name)
3ef7bed007f6 Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents: 21775
diff changeset
247 return
23513
35f01bf34d60 Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents: 22805
diff changeset
248 # 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
249 # modules have been imported
35f01bf34d60 Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents: 22805
diff changeset
250 if self.get_platform() == 'cygwin':
35f01bf34d60 Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents: 22805
diff changeset
251 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
252 % ext.name)
35f01bf34d60 Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents: 22805
diff changeset
253 return
21788
05fabd8f4e7f Fix for
Michael W. Hudson <mwh@python.net>
parents: 21787
diff changeset
254 ext_filename = os.path.join(
05fabd8f4e7f Fix for
Michael W. Hudson <mwh@python.net>
parents: 21787
diff changeset
255 self.build_lib,
05fabd8f4e7f Fix for
Michael W. Hudson <mwh@python.net>
parents: 21787
diff changeset
256 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
257 try:
21788
05fabd8f4e7f Fix for
Michael W. Hudson <mwh@python.net>
parents: 21787
diff changeset
258 imp.load_dynamic(ext.name, ext_filename)
40587
6b18a095c2e7 SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents: 40582
diff changeset
259 except ImportError as why:
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
260 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
261 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
262 ' 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
263 assert not self.inplace
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
264 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
265 newname = basename + "_failed" + tail
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
266 if os.path.exists(newname):
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
267 os.remove(newname)
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
268 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
269
28111
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
270 # 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
271 # 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
272 # _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
273 # use here.
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
274 # 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
275 # 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
276 try:
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
277 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
278 os.remove(filename)
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
279 except AttributeError:
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
280 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
281 except:
7a2f683395e7 Just pointed out the code was better written with
Neal Norwitz <nnorwitz@gmail.com>
parents: 28109
diff changeset
282 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
283 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
284 '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
285 level=3)
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
286 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
287
29508
53554688e5a2 Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents: 29471
diff changeset
288 def get_platform(self):
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
289 # Get value of sys.platform
42645
a5e984eda45a Remove support for BeOS
Skip Montanaro <skip@pobox.com>
parents: 42552
diff changeset
290 for platform in ['cygwin', 'darwin', 'atheos', 'osf1']:
29508
53554688e5a2 Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents: 29471
diff changeset
291 if sys.platform.startswith(platform):
53554688e5a2 Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents: 29471
diff changeset
292 return platform
53554688e5a2 Convert some repetitive code into a loop
Neal Norwitz <nnorwitz@gmail.com>
parents: 29471
diff changeset
293 return sys.platform
16192
4fe69a9f8b30 Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents: 16176
diff changeset
294
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
295 def detect_modules(self):
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
296 # Ensure that /usr/local is always used
21742
9d5adff87f30 Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents: 21610
diff changeset
297 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
298 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
299
34124
4e38ecd1912e setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents: 33986
diff changeset
300 # 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
301 # 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
302 # 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
303 # 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
304 # 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
305 # 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
306 for env_var, arg_name, dir_list in (
4e38ecd1912e setup.py now uses the library directories specified in LDFLAGS (``-L``
Brett Cannon <bcannon@gmail.com>
parents: 33986
diff changeset
307 ('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
308 ('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
309 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
310 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
311 # To prevent optparse from raising an exception about any
5dc274e15822 Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents: 34186
diff changeset
312 # options in env_val that is doesn't know about we strip out
5dc274e15822 Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents: 34186
diff changeset
313 # 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
314 # 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
315 #
5dc274e15822 Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents: 34186
diff changeset
316 # 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
317 # 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
318 # 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
319 # used for a library directory.
42775
d7517c306791 Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42653
diff changeset
320 env_val = re.sub(r'(^|\s+)-(-|(?!%s))' % arg_name[1],
d7517c306791 Merged revisions 57221-57391 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42653
diff changeset
321 ' ', 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
322 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
323 # 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
324 # allowed
5dc274e15822 Strip out double dashes and dashes for options not used during parsing of
Brett Cannon <bcannon@gmail.com>
parents: 34186
diff changeset
325 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
326 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
327 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
328 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
329 if options.dirs:
f1c35da64d55 Since it is a possibility that LDFLAGS or CPPFLAGS were set with options that
Brett Cannon <bcannon@gmail.com>
parents: 34288
diff changeset
330 for directory in options.dirs:
f1c35da64d55 Since it is a possibility that LDFLAGS or CPPFLAGS were set with options that
Brett Cannon <bcannon@gmail.com>
parents: 34288
diff changeset
331 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
332
24477
b38754f1cb61 Fix for
Michael W. Hudson <mwh@python.net>
parents: 24143
diff changeset
333 if os.path.normpath(sys.prefix) != '/usr':
b38754f1cb61 Fix for
Michael W. Hudson <mwh@python.net>
parents: 24143
diff changeset
334 add_dir_to_list(self.compiler.library_dirs,
b38754f1cb61 Fix for
Michael W. Hudson <mwh@python.net>
parents: 24143
diff changeset
335 sysconfig.get_config_var("LIBDIR"))
b38754f1cb61 Fix for
Michael W. Hudson <mwh@python.net>
parents: 24143
diff changeset
336 add_dir_to_list(self.compiler.include_dirs,
b38754f1cb61 Fix for
Michael W. Hudson <mwh@python.net>
parents: 24143
diff changeset
337 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
338
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
339 # 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
340 # 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
341 # 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
342 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
343 '/lib64', '/usr/lib64',
49b6e966e57f Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents: 33750
diff changeset
344 '/lib', '/usr/lib',
49b6e966e57f Patch #1050475: Fix various x86_64 build issues
Martin v. Löwis <martin@v.loewis.de>
parents: 33750
diff changeset
345 ]
21787
3ef7bed007f6 Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents: 21775
diff changeset
346 inc_dirs = self.compiler.include_dirs + ['/usr/include']
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
347 exts = []
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
348 missing = []
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
349
34911
87719ae9288c Fix building of spwd; was incorrectly checking for the needed HAVE_* values to
Brett Cannon <bcannon@gmail.com>
parents: 34717
diff changeset
350 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
351 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
352
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
353 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
354 (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
355
23777
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 23659
diff changeset
356 # 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
357 if platform == 'atheos':
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 23659
diff changeset
358 lib_dirs += ['/system/libs', '/atheos/autolnk/lib']
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 23659
diff changeset
359 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
360 inc_dirs += ['/system/include', '/atheos/autolnk/include']
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 23659
diff changeset
361 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
362
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
363 # 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
364 if platform in ['osf1', 'unixware7', 'openunix8']:
29001
6c40b73c7045 build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents: 28947
diff changeset
365 lib_dirs += ['/usr/ccs/lib']
6c40b73c7045 build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents: 28947
diff changeset
366
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
367 if platform == 'darwin':
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
368 # This should work on any unixy platform ;-)
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
369 # If the user has bothered specifying additional -I and -L flags
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
370 # in OPT and LDFLAGS we might as well use them here.
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
371 # NOTE: using shlex.split would technically be more correct, but
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
372 # also gives a bootstrap problem. Let's hope nobody uses directories
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
373 # with whitespace in the name to store libraries.
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
374 cflags, ldflags = sysconfig.get_config_vars(
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
375 'CFLAGS', 'LDFLAGS')
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
376 for item in cflags.split():
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
377 if item.startswith('-I'):
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
378 inc_dirs.append(item[2:])
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
379
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
380 for item in ldflags.split():
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
381 if item.startswith('-L'):
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
382 lib_dirs.append(item[2:])
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
383
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
384 # 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
385 math_libs = ['m']
42645
a5e984eda45a Remove support for BeOS
Skip Montanaro <skip@pobox.com>
parents: 42552
diff changeset
386 if platform in ['darwin', 'mac']:
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
387 math_libs = []
21787
3ef7bed007f6 Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents: 21775
diff changeset
388
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
389 # XXX Omitted modules: gl, pure, dl, SGI-specific modules
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
390
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
391 #
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
392 # The following modules are all pretty straightforward, and compile
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
393 # on pretty much any POSIXish platform.
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
394 #
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
395
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
396 # 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
397 exts.append( Extension('_weakref', ['_weakref.c']) )
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
398
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
399 # array objects
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
400 exts.append( Extension('array', ['arraymodule.c']) )
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
401 # 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
402 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
403 libraries=math_libs) )
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
404
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
405 # 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
406 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
407 libraries=math_libs) )
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
408 # 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
409 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
410 libraries=math_libs) )
32400
6ce67f7b0430 Add compilation of timemodule.c with datetimemodule.c to get
Brett Cannon <bcannon@gmail.com>
parents: 32244
diff changeset
411 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
412 libraries=math_libs) )
26829
f64c96922708 SF patch 658251: Install a C implementation of the Mersenne Twister as the
Raymond Hettinger <python@rcn.com>
parents: 26724
diff changeset
413 # random number generator implemented in C
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
414 exts.append( Extension("_random", ["_randommodule.c"]) )
27570
ba57c3daf6e9 Move itertools module from the sandbox and into production.
Raymond Hettinger <python@rcn.com>
parents: 27507
diff changeset
415 # fast iterator tools implemented in C
ba57c3daf6e9 Move itertools module from the sandbox and into production.
Raymond Hettinger <python@rcn.com>
parents: 27507
diff changeset
416 exts.append( Extension("itertools", ["itertoolsmodule.c"]) )
31436
63fa60f2d61c * Move collections.deque() in from the sandbox
Raymond Hettinger <python@rcn.com>
parents: 31386
diff changeset
417 # high-performance collections
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
418 exts.append( Extension("_collections", ["_collectionsmodule.c"]) )
31353
ed20259a1ea5 SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents: 31090
diff changeset
419 # bisect
ed20259a1ea5 SF Patch #864863: Bisect C implementation
Raymond Hettinger <python@rcn.com>
parents: 31090
diff changeset
420 exts.append( Extension("_bisect", ["_bisectmodule.c"]) )
30875
2acd28bd4d0f Convert heapq.py to a C implementation.
Raymond Hettinger <python@rcn.com>
parents: 30770
diff changeset
421 # heapq
31931
63b68cb2b442 * Restore the pure python version of heapq.py.
Raymond Hettinger <python@rcn.com>
parents: 31742
diff changeset
422 exts.append( Extension("_heapq", ["_heapqmodule.c"]) )
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
423 # operator.add() and similar goodies
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
424 exts.append( Extension('operator', ['operator.c']) )
38669
19fd6141940d Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn
Thomas Wouters <thomas@python.org>
parents: 38453
diff changeset
425 # _functools
19fd6141940d Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn
Thomas Wouters <thomas@python.org>
parents: 38453
diff changeset
426 exts.append( Extension("_functools", ["_functoolsmodule.c"]) )
41253
f29f1a8b7869 Patch #1680961: remove sys.exitfunc and replace it with a private C API. Also, reimplement atexit in C so it can take advantage of this private API.
Collin Winter <collinw@gmail.com>
parents: 41064
diff changeset
427 # atexit
f29f1a8b7869 Patch #1680961: remove sys.exitfunc and replace it with a private C API. Also, reimplement atexit in C so it can take advantage of this private API.
Collin Winter <collinw@gmail.com>
parents: 41064
diff changeset
428 exts.append( Extension("atexit", ["atexitmodule.c"]) )
16416
7d39d9dcf2d6 Whitespace correction...
Marc-André Lemburg <mal@egenix.com>
parents: 16415
diff changeset
429 # 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
430 exts.append( Extension('_testcapi', ['_testcapimodule.c']) )
43527
2b746f28b399 remove hotshot profiler from Py3k
Fred Drake <fdrake@acm.org>
parents: 43480
diff changeset
431 # profiler (_lsprof is for cProfile.py)
36459
3abf33264146 Added the cProfile module.
Armin Rigo <arigo@tunes.org>
parents: 36396
diff changeset
432 exts.append( Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']) )
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
433 # static Unicode character database
41818
bfc73d849e28 The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents: 41749
diff changeset
434 exts.append( Extension('unicodedata', ['unicodedata.c']) )
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
435 # 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
436 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
437 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
438 if m is not None:
24810
7ce82e9d08c7 Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents: 24790
diff changeset
439 locale_libs = ['intl']
7ce82e9d08c7 Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents: 24790
diff changeset
440 else:
7ce82e9d08c7 Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents: 24790
diff changeset
441 locale_libs = []
32698
7742f85a3723 _localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents: 32416
diff changeset
442 if platform == 'darwin':
7742f85a3723 _localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents: 32416
diff changeset
443 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
444 else:
7742f85a3723 _localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents: 32416
diff changeset
445 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
446
32698
7742f85a3723 _localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents: 32416
diff changeset
447
24810
7ce82e9d08c7 Patch #588564: _locale library patch
Jason Tishler <jason@tishler.net>
parents: 24790
diff changeset
448 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
449 libraries=locale_libs,
7742f85a3723 _localemodule now needs to be linked with CoreFoundation on darwin.
Jack Jansen <jack.jansen@cwi.nl>
parents: 32416
diff changeset
450 extra_link_args=locale_extra_link_args) )
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
451
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
452 # Modules with some UNIX dependencies -- on by default:
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
453 # (If you have a really backward UNIX, select and socket may not be
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
454 # supported...)
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
455
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
456 # fcntl(2) and ioctl(2)
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
457 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
458 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
459 # pwd(3)
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
460 exts.append( Extension('pwd', ['pwdmodule.c']) )
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
461 # grp(3)
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
462 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
463 # 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
464 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
465 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
466 exts.append( Extension('spwd', ['spwdmodule.c']) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
467 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
468 missing.append('spwd')
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
469 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
470 missing.extend(['pwd', 'grp', 'spwd'])
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
471
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
472 # select(2); not on ancient System V
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
473 exts.append( Extension('select', ['selectmodule.c']) )
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
474
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
475 # Helper module for various ascii-encoders
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
476 exts.append( Extension('binascii', ['binascii.c']) )
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
477
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
478 # Fred Drake's interface to the Python parser
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
479 exts.append( Extension('parser', ['parsermodule.c']) )
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
480
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
481 # 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
482 if platform not in ['atheos', 'mac']:
23777
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 23659
diff changeset
483 exts.append( Extension('mmap', ['mmapmodule.c']) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
484 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
485 missing.append('mmap')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
486
33370
af65004f622f Remove mpz, rotor, xreadlines modules
Andrew M. Kuchling <amk@amk.ca>
parents: 33294
diff changeset
487 # 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
488 if platform not in ['mac']:
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
489 # syslog daemon interface
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
490 exts.append( Extension('syslog', ['syslogmodule.c']) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
491 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
492 missing.append('syslog')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
493
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
494 #
15998
f390f43ac4b6 Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents: 15996
diff changeset
495 # 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
496 # libraries, are platform-specific, or present other surprises.
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
497 #
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
498
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
499 # Multimedia modules
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
500 # These don't work for 64-bit platforms!!!
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
501 # These represent audio samples or images as strings:
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
502
32763
8ad5a1620092 Move comment that goes along with audioop
Neal Norwitz <nnorwitz@gmail.com>
parents: 32762
diff changeset
503 # Operations on audio samples
32797
ea54fdb86530 Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 32765
diff changeset
504 # 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
505 # 64-bit platforms.
76ad814bc67c Patch #993173: Enable audioop on 64-bit platforms.
Martin v. Löwis <martin@v.loewis.de>
parents: 32735
diff changeset
506 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
507
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
508 # 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
509 do_readline = self.compiler.find_library_file(lib_dirs, 'readline')
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
510 if platform == 'darwin':
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
511 # 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
512 # 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
513 # readline package
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
514 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
515 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
516 if do_readline:
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
517 if sys.platform == 'darwin':
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
518 # In every directory on the search path search for a dynamic
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
519 # library and then a static library, instead of first looking
43239
c6b1123e0e6c fix typo
Fred Drake <fdrake@acm.org>
parents: 43212
diff changeset
520 # for dynamic libraries on the entire path.
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
521 # This way a staticly linked custom readline gets picked up
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
522 # before the (broken) dynamic library in /usr/lib.
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
523 readline_extra_link_args = ('-Wl,-search_paths_first',)
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
524 else:
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
525 readline_extra_link_args = ()
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
526
16283
65c6a2998b1b Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents: 16282
diff changeset
527 readline_libs = ['readline']
19319
d370a58fb7fd Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents: 19269
diff changeset
528 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
529 'ncursesw'):
d496c0764ad6 Patch #428494: Prefer linking against ncursesw over ncurses library
Martin v. Löwis <martin@v.loewis.de>
parents: 36459
diff changeset
530 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
531 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
532 'ncurses'):
d370a58fb7fd Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents: 19269
diff changeset
533 readline_libs.append('ncurses')
28473
0f558eede6c5 SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents: 28356
diff changeset
534 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
535 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
536 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
537 ['/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
538 'termcap'):
65c6a2998b1b Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents: 16282
diff changeset
539 readline_libs.append('termcap')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
540 exts.append( Extension('readline', ['readline.c'],
16282
ea4a2f3b266e Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents: 16225
diff changeset
541 library_dirs=['/usr/lib/termcap'],
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
542 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
543 libraries=readline_libs) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
544 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
545 missing.append('readline')
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
546
24032
c10c09192c12 More fixes for building MacPython extension modules. It now actually succeeds
Jack Jansen <jack.jansen@cwi.nl>
parents: 24008
diff changeset
547 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
548 # crypt module.
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
549
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
550 if self.compiler.find_library_file(lib_dirs, 'crypt'):
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
551 libs = ['crypt']
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
552 else:
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
553 libs = []
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
554 exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
555 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
556 missing.append('crypt')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
557
28341
797909492c38 build _csv extension module
Skip Montanaro <skip@pobox.com>
parents: 28208
diff changeset
558 # CSV files
797909492c38 build _csv extension module
Skip Montanaro <skip@pobox.com>
parents: 28208
diff changeset
559 exts.append( Extension('_csv', ['_csv.c']) )
797909492c38 build _csv extension module
Skip Montanaro <skip@pobox.com>
parents: 28208
diff changeset
560
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
561 # socket(2)
23811
e3e019bc4e1e Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents: 23777
diff changeset
562 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
563 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
564 # 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
565 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
566 '/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
567 '/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
568 ]
35396
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
569 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
570 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
571 )
29043
8e79dc3731bf Only look for krb5.h if ssl.h was found.
Martin v. Löwis <martin@v.loewis.de>
parents: 29013
diff changeset
572 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
573 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
574 ['/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
575 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
576 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
577 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
578 ['/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
579 '/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
580 ] )
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
581
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
582 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
583 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
584 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
585 include_dirs = ssl_incs,
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
586 library_dirs = ssl_libs,
23811
e3e019bc4e1e Add dependencies on socketmodule.h.
Guido van Rossum <guido@python.org>
parents: 23777
diff changeset
587 libraries = ['ssl', 'crypto'],
23825
9f0009ca97b9 Munge depends files to have absolute paths.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 23816
diff changeset
588 depends = ['socketmodule.h']), )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
589 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
590 missing.append('_ssl')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
591
35396
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
592 # 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
593 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
594 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
595 '^\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
596 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
597 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
598 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
599 try:
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
600 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
601 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
602 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
603 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
604 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
605 break
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
606 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
607 pass
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
608
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
609 # 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
610 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
611 break
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
612
42653
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
613 #print('openssl_ver = 0x%08x' % openssl_ver)
35396
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
614
42653
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
615 if ssl_incs is not None and ssl_libs is not None:
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
616 if openssl_ver >= 0x00907000:
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
617 # The _hashlib module wraps optimized implementations
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
618 # of hash functions from the OpenSSL library.
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
619 exts.append( Extension('_hashlib', ['_hashopenssl.c'],
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
620 include_dirs = ssl_incs,
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
621 library_dirs = ssl_libs,
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
622 libraries = ['ssl', 'crypto']) )
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
623 else:
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
624 print("warning: openssl 0x%08x is too old for _hashlib" %
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
625 openssl_ver)
986776456791 Print warning when openssl is too old; it's pretty essential at this point.
Guido van Rossum <guido@python.org>
parents: 42645
diff changeset
626 missing.append('_hashlib')
35375
624918e1c1b2 [ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents: 35238
diff changeset
627 else:
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
628 missing.append('_hashlib')
35375
624918e1c1b2 [ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents: 35238
diff changeset
629
43296
75cd54863250 openssl 0.9.6 is too old to use, use our own modules
Gregory P. Smith <greg@mad-scientist.com>
parents: 43294
diff changeset
630 if openssl_ver < 0x00908000:
35396
12a9bb24b6d9 Add a check for the OpenSSL version number to conditionally compile
Gregory P. Smith <greg@mad-scientist.com>
parents: 35375
diff changeset
631 # 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
632 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
633 exts.append( Extension('_sha512', ['sha512module.c']) )
35375
624918e1c1b2 [ sf.net patch # 1121611 ]
Gregory P. Smith <greg@mad-scientist.com>
parents: 35238
diff changeset
634
43296
75cd54863250 openssl 0.9.6 is too old to use, use our own modules
Gregory P. Smith <greg@mad-scientist.com>
parents: 43294
diff changeset
635 if openssl_ver < 0x00907000:
43294
78f1c329c983 Adds stand alone _md5 and _sha1 modules for use by hashlib on systems
Gregory P. Smith <greg@mad-scientist.com>
parents: 43266
diff changeset
636 # no openssl at all, use our own md5 and sha1
78f1c329c983 Adds stand alone _md5 and _sha1 modules for use by hashlib on systems
Gregory P. Smith <greg@mad-scientist.com>
parents: 43266
diff changeset
637 exts.append( Extension('_md5', ['md5module.c']) )
78f1c329c983 Adds stand alone _md5 and _sha1 modules for use by hashlib on systems
Gregory P. Smith <greg@mad-scientist.com>
parents: 43266
diff changeset
638 exts.append( Extension('_sha1', ['sha1module.c']) )
78f1c329c983 Adds stand alone _md5 and _sha1 modules for use by hashlib on systems
Gregory P. Smith <greg@mad-scientist.com>
parents: 43266
diff changeset
639
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
640 # Modules that provide persistent dictionary-like semantics. You will
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
641 # probably want to arrange for at least one of them to be available on
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
642 # your machine, though none are defined by default because of library
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
643 # dependencies. The Python module anydbm.py provides an
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
644 # implementation independent wrapper for these; dumbdbm.py provides
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
645 # similar functionality (but slower of course) implemented in Python.
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
646
43480
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
647 # Sleepycat^WOracle Berkeley DB interface.
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
648 # 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
649 #
42954
27f0289b6835 Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents: 42775
diff changeset
650 # This requires the Sleepycat^WOracle DB code. The supported versions
43480
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
651 # are set below. Visit the URL above to download
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
652 # a release. Most open source OSes come with one or more
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
653 # 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
654
43480
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
655 max_db_ver = (4, 6)
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
656 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
657 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
658
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
659 # 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
660 # 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
661 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
662 '/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
663 '/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
664 '/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
665 '/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
666 '/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
667 '/opt/sfw/include/db3',
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
668 # Fink defaults (http://fink.sourceforge.net/)
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
669 '/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
670 '/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
671 ]
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
672 # 4.x minor number specific paths
43320
ac198fbd3700 merge of r58091 from trunk:
Gregory P. Smith <greg@mad-scientist.com>
parents: 43296
diff changeset
673 for x in range(max_db_ver[1]+1):
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
674 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
675 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
676 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
677 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
678 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
679 db_inc_paths.append('/opt/db-4.%d/include' % x)
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
680 # MacPorts default (http://www.macports.org/)
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
681 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
682 # 3.x minor number specific paths
40582
67287ca4e1e8 Merged revisions 53005-53303 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 40450
diff changeset
683 for x in (3,):
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
684 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
685 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
686 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
687 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
688 db_inc_paths.append('/opt/db-3.%d/include' % x)
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
689
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
690 # Add some common subdirectories for Sleepycat DB to the list,
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
691 # based on the standard include directories. This way DB3/4 gets
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
692 # picked up when it is installed in a non-standard prefix and
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
693 # the user has added that prefix into inc_dirs.
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
694 std_variants = []
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
695 for dn in inc_dirs:
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
696 std_variants.append(os.path.join(dn, 'db3'))
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
697 std_variants.append(os.path.join(dn, 'db4'))
43212
a9fb65c8eacb - Add support for linking the bsddb module against BerkeleyDB 4.6.x.
Matthias Klose <doko@ubuntu.com>
parents: 42954
diff changeset
698 for x in (0,1,2,3,4,5,6):
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
699 std_variants.append(os.path.join(dn, "db4%d"%x))
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
700 std_variants.append(os.path.join(dn, "db4.%d"%x))
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
701 for x in (2,3):
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
702 std_variants.append(os.path.join(dn, "db3%d"%x))
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
703 std_variants.append(os.path.join(dn, "db3.%d"%x))
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
704
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
705 db_inc_paths = std_variants + db_inc_paths
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
706 db_inc_paths = [p for p in db_inc_paths if os.path.exists(p)]
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
707
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
708 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
709
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
710 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
711 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
712 # 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
713 # 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
714 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
715 f = os.path.join(d, "db.h")
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
716 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
717 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
718 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
719 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
720 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
721 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
722 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
723 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
724 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
725
43480
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
726 # Avoid 4.6 prior to 4.6.21 due to a BerkeleyDB bug
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
727 if db_ver == (4, 6):
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
728 m = re.search(r"#define\WDB_VERSION_PATCH\W(\d+)", f)
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
729 db_patch = int(m.group(1))
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
730 if db_patch < 21:
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
731 print("db.h:", db_ver, "patch", db_patch,
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
732 "being ignored (4.6.x must be >= 4.6.21)")
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
733 continue
ae2a99fc73da Merge 58344: allow BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module
Gregory P. Smith <greg@mad-scientist.com>
parents: 43320
diff changeset
734
39575
63237fcefd99 Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents: 39545
diff changeset
735 if ( (db_ver not in db_ver_inc_map) and
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
736 (db_ver <= max_db_ver and db_ver >= min_db_ver) ):
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
737 # save the include directory with the db.h version
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
738 # (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
739 db_ver_inc_map[db_ver] = d
40450
cc992d75d5b3 Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents: 39575
diff changeset
740 if db_setup_debug:
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
741 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
742 else:
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
743 # we already found a header for this library version
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
744 if db_setup_debug: print("db.h: ignoring", d)
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
745 else:
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
746 # ignore this header, it didn't contain a version number
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
747 if db_setup_debug:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
748 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
749
40807
f229645d607d Random change to make this work unchanged when dict.keys() returns a dict view.
Guido van Rossum <guido@python.org>
parents: 40774
diff changeset
750 db_found_vers = sorted(db_ver_inc_map.keys())
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
751
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
752 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
753 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
754 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
755
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
756 # 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
757 db_dirs_to_check = [
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
758 db_incdir.replace("include", 'lib64'),
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
759 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
760 ]
42142
a53e48be6df9 Merged revisions 56125-56153 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42084
diff changeset
761 db_dirs_to_check = [x for x in db_dirs_to_check if os.path.isdir(x)]
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
762
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
763 # 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
764 # 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
765 # 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
766 # 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
767 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
768 ('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
769 ('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
770 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
771 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
772 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
773 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
774 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
775 else:
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
776 if db_setup_debug: print("db lib: ", dblib, "not found")
34158
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
777
3626db433104 rewrote the bsddb module BerkeleyDB library and include file locating
Gregory P. Smith <greg@mad-scientist.com>
parents: 34156
diff changeset
778 except db_found:
40450
cc992d75d5b3 Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents: 39575
diff changeset
779 if db_setup_debug:
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
780 print("db lib: using", db_ver, dblib)
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
781 print("db: 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
782 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
783 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
784 # 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
785 # 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
786 # 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
787 # 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
788 # 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
789 # 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
790 exts.append(Extension('_bsddb', ['_bsddb.c'],
43734
3e5edf19d5f0 Merged revisions 58221-58741 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 43527
diff changeset
791 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
792 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
793 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
794 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
795 libraries=dblibs))
23867
45d676933882 This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents: 23825
diff changeset
796 else:
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
797 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
798 db_incs = None
45d676933882 This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents: 23825
diff changeset
799 dblibs = []
45d676933882 This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents: 23825
diff changeset
800 dblib_dir = None
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
801 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
802
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
803 # The sqlite interface
40450
cc992d75d5b3 Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents: 39575
diff changeset
804 sqlite_setup_debug = False # verbose debug prints from this script?
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
805
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
806 # We hunt for #define SQLITE_VERSION "n.n.n"
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
807 # We need to find >= sqlite version 3.0.8
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
808 sqlite_incdir = sqlite_libdir = None
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
809 sqlite_inc_paths = [ '/usr/include',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
810 '/usr/include/sqlite',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
811 '/usr/include/sqlite3',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
812 '/usr/local/include',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
813 '/usr/local/include/sqlite',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
814 '/usr/local/include/sqlite3',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
815 ]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
816 MIN_SQLITE_VERSION_NUMBER = (3, 0, 8)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
817 MIN_SQLITE_VERSION = ".".join([str(x)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
818 for x in MIN_SQLITE_VERSION_NUMBER])
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
819
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
820 # Scan the default include directories before the SQLite specific
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
821 # ones. This allows one to override the copy of sqlite on OSX,
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
822 # where /usr/include contains an old version of sqlite.
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
823 for d in inc_dirs + sqlite_inc_paths:
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
824 f = os.path.join(d, "sqlite3.h")
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
825 if os.path.exists(f):
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
826 if sqlite_setup_debug: print("sqlite: found %s"%f)
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
827 incf = open(f).read()
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
828 m = re.search(
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
829 r'\s*.*#\s*.*define\s.*SQLITE_VERSION\W*"(.*)"', incf)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
830 if m:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
831 sqlite_version = m.group(1)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
832 sqlite_version_tuple = tuple([int(x)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
833 for x in sqlite_version.split(".")])
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
834 if sqlite_version_tuple >= MIN_SQLITE_VERSION_NUMBER:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
835 # we win!
40450
cc992d75d5b3 Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents: 39575
diff changeset
836 if sqlite_setup_debug:
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
837 print("%s/sqlite3.h: version %s"%(d, sqlite_version))
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
838 sqlite_incdir = d
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
839 break
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
840 else:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
841 if sqlite_setup_debug:
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
842 print("%s: version %d is too old, need >= %s"%(d,
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
843 sqlite_version, MIN_SQLITE_VERSION))
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
844 elif sqlite_setup_debug:
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
845 print("sqlite: %s had no SQLITE_VERSION"%(f,))
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
846
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
847 if sqlite_incdir:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
848 sqlite_dirs_to_check = [
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
849 os.path.join(sqlite_incdir, '..', 'lib64'),
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
850 os.path.join(sqlite_incdir, '..', 'lib'),
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
851 os.path.join(sqlite_incdir, '..', '..', 'lib64'),
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
852 os.path.join(sqlite_incdir, '..', '..', 'lib'),
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
853 ]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
854 sqlite_libfile = self.compiler.find_library_file(
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
855 sqlite_dirs_to_check + lib_dirs, 'sqlite3')
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
856 sqlite_libdir = [os.path.abspath(os.path.dirname(sqlite_libfile))]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
857
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
858 if sqlite_incdir and sqlite_libdir:
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
859 sqlite_srcs = ['_sqlite/cache.c',
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
860 '_sqlite/connection.c',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
861 '_sqlite/cursor.c',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
862 '_sqlite/microprotocols.c',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
863 '_sqlite/module.c',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
864 '_sqlite/prepare_protocol.c',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
865 '_sqlite/row.c',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
866 '_sqlite/statement.c',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
867 '_sqlite/util.c', ]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
868
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
869 sqlite_defines = []
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
870 if sys.platform != "win32":
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
871 sqlite_defines.append(('MODULE_NAME', '"sqlite3"'))
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
872 else:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
873 sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"'))
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
874
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
875
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
876 if sys.platform == 'darwin':
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
877 # In every directory on the search path search for a dynamic
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
878 # library and then a static library, instead of first looking
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
879 # for dynamic libraries on the entiry path.
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
880 # This way a staticly linked custom sqlite gets picked up
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
881 # before the dynamic library in /usr/lib.
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
882 sqlite_extra_link_args = ('-Wl,-search_paths_first',)
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
883 else:
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
884 sqlite_extra_link_args = ()
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
885
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
886 exts.append(Extension('_sqlite3', sqlite_srcs,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
887 define_macros=sqlite_defines,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
888 include_dirs=["Modules/_sqlite",
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
889 sqlite_incdir],
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
890 library_dirs=sqlite_libdir,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
891 runtime_library_dirs=sqlite_libdir,
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
892 extra_link_args=sqlite_extra_link_args,
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
893 libraries=["sqlite3",]))
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
894 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
895 missing.append('_sqlite3')
29001
6c40b73c7045 build bsddb185 module in certain restricted circumstances
Skip Montanaro <skip@pobox.com>
parents: 28947
diff changeset
896
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
897 # 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
898 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
899 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
900 # 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
901 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
902 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
903 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
904 ndbm_libs = []
16192
4fe69a9f8b30 Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents: 16176
diff changeset
905 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
906 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
907 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
908 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
909 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
910 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
911 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
912 libraries = ['gdbm'] ) )
45d676933882 This introduces stricter library/header file checking for the Berkeley DB
Skip Montanaro <skip@pobox.com>
parents: 23825
diff changeset
913 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
914 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
915 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
916 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
917 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
918 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
919 ('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
920 libraries=dblibs))
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
921 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
922 missing.append('dbm')
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
923
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
924 # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm:
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
925 if (self.compiler.find_library_file(lib_dirs, 'gdbm')):
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
926 exts.append( Extension('gdbm', ['gdbmmodule.c'],
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
927 libraries = ['gdbm'] ) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
928 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
929 missing.append('gdbm')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
930
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
931 # Unix-only modules
16192
4fe69a9f8b30 Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents: 16176
diff changeset
932 if platform not in ['mac', 'win32']:
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
933 # Steen Lumholt's termios module
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
934 exts.append( Extension('termios', ['termios.c']) )
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
935 # Jeremy Hylton's rlimit interface
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
936 if platform not in ['atheos']:
23777
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 23659
diff changeset
937 exts.append( Extension('resource', ['resource.c']) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
938 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
939 missing.append('resource')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
940
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
941 # Sun yellow pages. Some systems have the functions in libc.
23777
bec1b942e0bc Patch #488073: AtheOS port.
Martin v. Löwis <martin@v.loewis.de>
parents: 23659
diff changeset
942 if platform not in ['cygwin', 'atheos']:
16804
8156879fe60d Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents: 16750
diff changeset
943 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
944 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
945 else:
8156879fe60d Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents: 16750
diff changeset
946 libs = []
8156879fe60d Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents: 16750
diff changeset
947 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
948 libraries = libs) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
949 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
950 missing.append('nis')
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
951 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
952 missing.extend(['nis', 'resource', 'termios'])
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
953
31468
de2ed800fa50 a couple other sunos4 support items removed
Skip Montanaro <skip@pobox.com>
parents: 31436
diff changeset
954 # 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
955 # provided by the ncurses library.
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
956 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
957 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
958 curses_libs = ['ncursesw']
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
959 # Bug 1464056: If _curses.so links with ncursesw,
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
960 # _curses_panel.so must link with panelw.
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
961 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
962 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
963 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
964 elif (self.compiler.find_library_file(lib_dirs, 'ncurses')):
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
965 curses_libs = ['ncurses']
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
966 exts.append( Extension('_curses', ['_cursesmodule.c'],
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
967 libraries = curses_libs) )
21274
cfbe38a03e8c Wrap some long lines.
Fred Drake <fdrake@acm.org>
parents: 21256
diff changeset
968 elif (self.compiler.find_library_file(lib_dirs, 'curses')
cfbe38a03e8c Wrap some long lines.
Fred Drake <fdrake@acm.org>
parents: 21256
diff changeset
969 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
970 # 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
971 # the _curses module.
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
972 if (self.compiler.find_library_file(lib_dirs, 'terminfo')):
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
973 curses_libs = ['curses', 'terminfo']
28473
0f558eede6c5 SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents: 28356
diff changeset
974 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
975 curses_libs = ['curses', 'termcap']
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
976 else:
28473
0f558eede6c5 SF patch #712367, get build working on AIX
Neal Norwitz <nnorwitz@gmail.com>
parents: 28356
diff changeset
977 curses_libs = ['curses']
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
978
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
979 exts.append( Extension('_curses', ['_cursesmodule.c'],
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
980 libraries = curses_libs) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
981 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
982 missing.append('_curses')
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
983
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
984 # 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
985 if (module_enabled(exts, '_curses') and
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
986 self.compiler.find_library_file(lib_dirs, panel_library)):
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
987 exts.append( Extension('_curses_panel', ['_curses_panel.c'],
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
988 libraries = [panel_library] + curses_libs) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
989 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
990 missing.append('_curses_panel')
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
991
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
992 # 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
993 # 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
994 # 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
995 #
825948c21f0d Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents: 24605
diff changeset
996 # 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
997 # 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
998 # 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
999 # 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
1000 # 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
1001 #
825948c21f0d Regress Guido's change of 2002/08/06 to check for the zlib version
Barry Warsaw <barry@python.org>
parents: 24605
diff changeset
1002 # 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
1003 # 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
1004 zlib_inc = find_file('zlib.h', [], inc_dirs)
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
1005 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
1006 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
1007 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
1008 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
1009 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
1010 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
1011 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
1012 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
1013 break
24605
fd4575b56a4d Update the URL for getting zlib, and update the minimal required
Guido van Rossum <guido@python.org>
parents: 24579
diff changeset
1014 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
1015 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
1016 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
1017 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
1018 if (self.compiler.find_library_file(lib_dirs, 'z')):
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1019 if sys.platform == "darwin":
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1020 zlib_extra_link_args = ('-Wl,-search_paths_first',)
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1021 else:
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1022 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
1023 exts.append( Extension('zlib', ['zlibmodule.c'],
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1024 libraries = ['z'],
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1025 extra_link_args = zlib_extra_link_args))
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1026 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1027 missing.append('zlib')
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1028 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1029 missing.append('zlib')
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1030 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1031 missing.append('zlib')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1032
26037
521e89c4ff44 Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 25790
diff changeset
1033 # Gustavo Niemeyer's bz2 module.
521e89c4ff44 Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 25790
diff changeset
1034 if (self.compiler.find_library_file(lib_dirs, 'bz2')):
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1035 if sys.platform == "darwin":
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1036 bz2_extra_link_args = ('-Wl,-search_paths_first',)
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1037 else:
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1038 bz2_extra_link_args = ()
26037
521e89c4ff44 Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 25790
diff changeset
1039 exts.append( Extension('bz2', ['bz2module.c'],
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1040 libraries = ['bz2'],
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1041 extra_link_args = bz2_extra_link_args) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1042 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1043 missing.append('bz2')
26037
521e89c4ff44 Patch implementing bz2 module.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 25790
diff changeset
1044
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1045 # Interface to the Expat XML parser
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1046 #
23889
41ab532d4f60 Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents: 23867
diff changeset
1047 # 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
1048 # 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
1049 # 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
1050 # 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
1051 # 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
1052 # shared libexpat.so/expat.dll is not advised.
41ab532d4f60 Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents: 23867
diff changeset
1053 #
41ab532d4f60 Update description of the Expat library.
Fred Drake <fdrake@acm.org>
parents: 23867
diff changeset
1054 # 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
1055 #
21942
9d44e752d617 Compute expat -I directives from srcdir. Fixes #517214.
Martin v. Löwis <martin@v.loewis.de>
parents: 21939
diff changeset
1056 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
1057 define_macros = [
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1058 ('HAVE_EXPAT_CONFIG_H', '1'),
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1059 ]
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1060
30731
f0da0cad5cd5 Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents: 30485
diff changeset
1061 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
1062 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
1063 include_dirs = [expatinc],
f0da0cad5cd5 Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents: 30485
diff changeset
1064 sources = ['pyexpat.c',
f0da0cad5cd5 Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents: 30485
diff changeset
1065 'expat/xmlparse.c',
f0da0cad5cd5 Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents: 30485
diff changeset
1066 'expat/xmlrole.c',
f0da0cad5cd5 Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents: 30485
diff changeset
1067 'expat/xmltok.c',
f0da0cad5cd5 Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents: 30485
diff changeset
1068 ],
f0da0cad5cd5 Provide a bit more information to the compiler when building Expat.
Fred Drake <fdrake@acm.org>
parents: 30485
diff changeset
1069 ))
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1070
36026
e01d8524b6f6 added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents: 35737
diff changeset
1071 # 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
1072 # 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
1073
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1074 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
1075 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
1076 exts.append(Extension('_elementtree',
e01d8524b6f6 added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents: 35737
diff changeset
1077 define_macros = define_macros,
e01d8524b6f6 added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents: 35737
diff changeset
1078 include_dirs = [expatinc],
e01d8524b6f6 added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents: 35737
diff changeset
1079 sources = ['_elementtree.c'],
e01d8524b6f6 added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents: 35737
diff changeset
1080 ))
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1081 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1082 missing.append('_elementtree')
36026
e01d8524b6f6 added cElementTree/_elementtree build stuff and wrapper module
Fredrik Lundh <fredrik@pythonware.com>
parents: 35737
diff changeset
1083
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31353
diff changeset
1084 # Hye-Shik Chang's CJKCodecs modules.
41818
bfc73d849e28 The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents: 41749
diff changeset
1085 exts.append(Extension('_multibytecodec',
bfc73d849e28 The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents: 41749
diff changeset
1086 ['cjkcodecs/multibytecodec.c']))
bfc73d849e28 The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents: 41749
diff changeset
1087 for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'):
bfc73d849e28 The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents: 41749
diff changeset
1088 exts.append(Extension('_codecs_%s' % loc,
bfc73d849e28 The unicode builtin is gone now. Fix setup.py so that
Walter Dörwald <walter@livinglogic.de>
parents: 41749
diff changeset
1089 ['cjkcodecs/_codecs_%s.c' % loc]))
31386
887ce39f95f2 Add CJK codecs support as discussed on python-dev. (SF #873597)
Hye-Shik Chang <hyeshik@gmail.com>
parents: 31353
diff changeset
1090
21787
3ef7bed007f6 Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents: 21775
diff changeset
1091 # Dynamic loading module
44160
9d152530910a Removed PyInt_GetMax and sys.maxint
Christian Heimes <christian@cheimes.de>
parents: 43734
diff changeset
1092 if sys.maxsize == 0x7fffffff:
25232
aac1ee966f56 Only build the 'dl' extension when sys.maxint equals 2**31-1.
Guido van Rossum <guido@python.org>
parents: 25075
diff changeset
1093 # 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
1094 dl_inc = find_file('dlfcn.h', [], inc_dirs)
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1095 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
1096 exts.append( Extension('dl', ['dlmodule.c']) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1097 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1098 missing.append('dl')
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1099 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1100 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
1101
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1102 # Thomas Heller's _ctypes module
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1103 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
1104
41064
6e1cf4d28af3 Check in Daniel Stutzbach's _fileio.c and test_fileio.py
Guido van Rossum <guido@python.org>
parents: 40893
diff changeset
1105 # _fileio -- supposedly cross platform
6e1cf4d28af3 Check in Daniel Stutzbach's _fileio.c and test_fileio.py
Guido van Rossum <guido@python.org>
parents: 40893
diff changeset
1106 exts.append(Extension('_fileio', ['_fileio.c']))
6e1cf4d28af3 Check in Daniel Stutzbach's _fileio.c and test_fileio.py
Guido van Rossum <guido@python.org>
parents: 40893
diff changeset
1107
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1108 # Platform-specific libraries
35238
526faaab00eb Add support for FreeBSD 7.
Hye-Shik Chang <hyeshik@gmail.com>
parents: 34930
diff changeset
1109 if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
43734
3e5edf19d5f0 Merged revisions 58221-58741 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 43527
diff changeset
1110 '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
1111 exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1112 else:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1113 missing.append('ossaudiodev')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1114
33294
67fbbeb1e218 Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 33285
diff changeset
1115 if platform == 'darwin' and ("--disable-toolbox-glue" not in
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1116 sysconfig.get_config_var("CONFIG_ARGS")):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1117
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1118 if os.uname()[2] > '8.':
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1119 # We're on Mac OS X 10.4 or later, the compiler should
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1120 # support '-Wno-deprecated-declarations'. This will
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1121 # surpress deprecation warnings for the Carbon extensions,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1122 # these extensions wrap the Carbon APIs and even those
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1123 # parts that are deprecated.
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1124 carbon_extra_compile_args = ['-Wno-deprecated-declarations']
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1125 else:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1126 carbon_extra_compile_args = []
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1127
26396
e3fae7b6c207 Don't disable building Mac-specific modules for a non-framework build:
Just van Rossum <just@letterror.com>
parents: 26351
diff changeset
1128 # Mac OS X specific modules.
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1129 def macSrcExists(name1, name2=''):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1130 if not name1:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1131 return None
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1132 names = (name1,)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1133 if name2:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1134 names = (name1, name2)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1135 path = os.path.join(srcdir, 'Mac', 'Modules', *names)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1136 return os.path.exists(path)
24143
e9e6111beec1 The readme file said that OSX Carbon modules were only built for
Jack Jansen <jack.jansen@cwi.nl>
parents: 24032
diff changeset
1137
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1138 def addMacExtension(name, kwds, extra_srcs=[]):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1139 dirname = ''
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1140 if name[0] == '_':
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1141 dirname = name[1:].lower()
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1142 cname = name + '.c'
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1143 cmodulename = name + 'module.c'
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1144 # Check for NNN.c, NNNmodule.c, _nnn/NNN.c, _nnn/NNNmodule.c
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1145 if macSrcExists(cname):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1146 srcs = [cname]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1147 elif macSrcExists(cmodulename):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1148 srcs = [cmodulename]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1149 elif macSrcExists(dirname, cname):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1150 # XXX(nnorwitz): If all the names ended with module, we
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1151 # wouldn't need this condition. ibcarbon is the only one.
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1152 srcs = [os.path.join(dirname, cname)]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1153 elif macSrcExists(dirname, cmodulename):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1154 srcs = [os.path.join(dirname, cmodulename)]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1155 else:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1156 raise RuntimeError("%s not found" % name)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1157
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1158 # Here's the whole point: add the extension with sources
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1159 exts.append(Extension(name, srcs + extra_srcs, **kwds))
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1160
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1161 # Core Foundation
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1162 core_kwds = {'extra_compile_args': carbon_extra_compile_args,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1163 'extra_link_args': ['-framework', 'CoreFoundation'],
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1164 }
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1165 addMacExtension('_CF', core_kwds, ['cf/pycfbridge.c'])
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1166 addMacExtension('autoGIL', core_kwds)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1167
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1168 # Carbon
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1169 carbon_kwds = {'extra_compile_args': carbon_extra_compile_args,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1170 'extra_link_args': ['-framework', 'Carbon'],
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1171 }
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1172 CARBON_EXTS = ['ColorPicker', 'gestalt', 'MacOS', 'Nav',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1173 'OSATerminology', 'icglue',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1174 # All these are in subdirs
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1175 '_AE', '_AH', '_App', '_CarbonEvt', '_Cm', '_Ctl',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1176 '_Dlg', '_Drag', '_Evt', '_File', '_Folder', '_Fm',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1177 '_Help', '_Icn', '_IBCarbon', '_List',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1178 '_Menu', '_Mlte', '_OSA', '_Res', '_Qd', '_Qdoffs',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1179 '_Scrap', '_Snd', '_TE', '_Win',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1180 ]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1181 for name in CARBON_EXTS:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1182 addMacExtension(name, carbon_kwds)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1183
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1184 # Application Services & QuickTime
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1185 app_kwds = {'extra_compile_args': carbon_extra_compile_args,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1186 'extra_link_args': ['-framework','ApplicationServices'],
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1187 }
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1188 addMacExtension('_Launch', app_kwds)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1189 addMacExtension('_CG', app_kwds)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1190
26396
e3fae7b6c207 Don't disable building Mac-specific modules for a non-framework build:
Just van Rossum <just@letterror.com>
parents: 26351
diff changeset
1191 exts.append( Extension('_Qt', ['qt/_Qtmodule.c'],
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1192 extra_compile_args=carbon_extra_compile_args,
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1193 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
1194 '-framework', 'Carbon']) )
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1195
21787
3ef7bed007f6 Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents: 21775
diff changeset
1196
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1197 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
1198
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1199 # 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
1200 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
1201
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1202 if '_tkinter' not in [e.name for e in self.extensions]:
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1203 missing.append('_tkinter')
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1204
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1205 return missing
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41464
diff changeset
1206
23957
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1207 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
1208 # 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
1209 # 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
1210 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
1211 framework_dirs = [
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1212 '/System/Library/Frameworks/',
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1213 '/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
1214 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
1215 ]
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1216
36156
c71ca1cd363b typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents: 36144
diff changeset
1217 # 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
1218 # bundles.
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1219 # 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
1220 for F in framework_dirs:
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1221 # 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
1222 for fw in 'Tcl', 'Tk':
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1223 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
1224 break
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1225 else:
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1226 # 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
1227 # building
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1228 break
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1229 else:
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1230 # 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
1231 # 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
1232 return 0
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1233
23957
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1234 # 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
1235 # 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
1236 # 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
1237 #
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1238 include_dirs = [
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1239 join(F, fw + '.framework', H)
41464
060c79f6d919 Hide list comp variables and support set comprehensions
Nick Coghlan <ncoghlan@gmail.com>
parents: 41253
diff changeset
1240 for fw in ('Tcl', 'Tk')
060c79f6d919 Hide list comp variables and support set comprehensions
Nick Coghlan <ncoghlan@gmail.com>
parents: 41253
diff changeset
1241 for H in ('Headers', 'Versions/Current/PrivateHeaders')
23957
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1242 ]
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1243
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1244 # 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
1245 # 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
1246 # 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
1247 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
1248 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
1249
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1250 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
1251 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
1252 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
1253 libraries = [],
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1254 extra_compile_args = frameworks,
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1255 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
1256 )
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1257 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
1258 return 1
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1259
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1260
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1261 def detect_tkinter(self, inc_dirs, lib_dirs):
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1262 # 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
1263
23957
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1264 # 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
1265 # 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
1266 # 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
1267 platform = self.get_platform()
36156
c71ca1cd363b typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents: 36144
diff changeset
1268 if (platform == 'darwin' and
c71ca1cd363b typo, use parens for continued expr
Skip Montanaro <skip@pobox.com>
parents: 36144
diff changeset
1269 self.detect_tkinter_darwin(inc_dirs, lib_dirs)):
27507
d9d57f5f98cd Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 27396
diff changeset
1270 return
23957
03bba7282852 Patch #557719 by Tony Lownds, slightly massaged by me: streamline the
Jack Jansen <jack.jansen@cwi.nl>
parents: 23889
diff changeset
1271
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1272 # 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
1273 # 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
1274 # 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
1275 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
1276 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
1277 '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
1278 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
1279 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
1280 if tklib and tcllib:
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1281 # Exit the loop when we've found the Tcl/Tk libraries
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1282 break
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1283
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1284 # 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
1285 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
1286 # 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
1287 # 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
1288 dotversion = version
4eb458c3941d [Patch #850977] Detect Tcl/Tk libraries on FreeBSD/OpenBSD. Bugfix candidate
Andrew M. Kuchling <amk@amk.ca>
parents: 31468
diff changeset
1289 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
1290 # 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
1291 # 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
1292 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
1293 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
1294 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
1295 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
1296 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
1297 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
1298 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
1299 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
1300 tk_includes = find_file('tk.h', inc_dirs, tk_include_sub)
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1301
28947
8df897f14fb8 Change 'and' to 'or' in _tkinter test.
Martin v. Löwis <martin@v.loewis.de>
parents: 28940
diff changeset
1302 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
1303 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
1304 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
1305 return
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1306
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1307 # OK... everything seems to be present for Tcl/Tk.
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1308
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1309 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
1310 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
1311 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
1312 include_dirs.append(dir)
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1313
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1314 # 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
1315 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
1316 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
1317 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
1318 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
1319 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
1320 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
1321 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
1322 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
1323 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
1324 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
1325 else:
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1326 # 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
1327 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
1328 added_lib_dirs.append('/usr/X11/lib')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1329
27695
1a300f475332 This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents: 27694
diff changeset
1330 # 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
1331 if platform == 'cygwin':
1a300f475332 This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents: 27694
diff changeset
1332 x11_inc = find_file('X11/Xlib.h', [], include_dirs)
1a300f475332 This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents: 27694
diff changeset
1333 if x11_inc is None:
1a300f475332 This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents: 27694
diff changeset
1334 return
1a300f475332 This patch reverts the following:
Jason Tishler <jason@tishler.net>
parents: 27694
diff changeset
1335
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1336 # Check for BLT extension
21274
cfbe38a03e8c Wrap some long lines.
Fred Drake <fdrake@acm.org>
parents: 21256
diff changeset
1337 if self.compiler.find_library_file(lib_dirs + added_lib_dirs,
cfbe38a03e8c Wrap some long lines.
Fred Drake <fdrake@acm.org>
parents: 21256
diff changeset
1338 'BLT8.0'):
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1339 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
1340 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
1341 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
1342 'BLT'):
e41ee2b8e73d Patch #629126: Detect BLT by also looking for libBLT.
Martin v. Löwis <martin@v.loewis.de>
parents: 26616
diff changeset
1343 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
1344 libs.append('BLT')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1345
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1346 # 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
1347 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
1348 libs.append('tcl'+ version)
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1349
16192
4fe69a9f8b30 Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents: 16176
diff changeset
1350 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
1351 libs.append('ld')
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1352
18819
dc9baf80c45a Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents: 18601
diff changeset
1353 # 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
1354 if platform != "cygwin":
dc9baf80c45a Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents: 18601
diff changeset
1355 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
1356
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1357 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
1358 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
1359 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
1360 libraries = libs,
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1361 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
1362 )
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1363 self.extensions.append(ext)
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1364
27820
fbc45beaf034 Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents: 27695
diff changeset
1365 ## # 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
1366 ## ext = Extension('xx', ['xxmodule.c'])
fbc45beaf034 Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents: 27695
diff changeset
1367 ## self.extensions.append(ext)
fbc45beaf034 Add compilation instructions for xxmodule.c.
Guido van Rossum <guido@python.org>
parents: 27695
diff changeset
1368
15996
c503fa9b265e Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents: 15970
diff changeset
1369 # XXX handle these, but how to detect?
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1370 # *** 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
1371 # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1372 # *** 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
1373 # -DWITH_TOGL togl.c \
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1374 # *** Uncomment these for TOGL extension only:
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1375 # -lGL -lGLU -lXext -lXmu \
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1376
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1377 def configure_ctypes(self, ext):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1378 if not self.use_system_libffi:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1379 (srcdir,) = sysconfig.get_config_vars('srcdir')
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1380 ffi_builddir = os.path.join(self.build_temp, 'libffi')
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1381 ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules',
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1382 '_ctypes', 'libffi'))
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1383 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
1384
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1385 from distutils.dep_util import newer_group
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1386
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1387 config_sources = [os.path.join(ffi_srcdir, fname)
40893
32c4897b5d46 Merged revisions 53623-53858 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 40807
diff changeset
1388 for fname in os.listdir(ffi_srcdir)
32c4897b5d46 Merged revisions 53623-53858 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 40807
diff changeset
1389 if os.path.isfile(os.path.join(ffi_srcdir, fname))]
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1390 if self.force or newer_group(config_sources,
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1391 ffi_configfile):
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1392 from distutils.dir_util import mkpath
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1393 mkpath(ffi_builddir)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1394 config_args = []
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1395
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1396 # Pass empty CFLAGS because we'll just append the resulting
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1397 # CFLAGS to Python's; -g or -O2 is to be avoided.
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1398 cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1399 % (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
1400
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1401 res = os.system(cmd)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1402 if res or not os.path.exists(ffi_configfile):
40774
793e0323d4d6 Essential changes for print function changes.
Guido van Rossum <guido@python.org>
parents: 40645
diff changeset
1403 print("Failed to configure _ctypes module")
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1404 return False
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1405
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1406 fficonfig = {}
42552
ac192f89c109 Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents: 42501
diff changeset
1407 fp = open(ffi_configfile)
ac192f89c109 Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents: 42501
diff changeset
1408 try:
ac192f89c109 Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents: 42501
diff changeset
1409 script = fp.read()
ac192f89c109 Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents: 42501
diff changeset
1410 finally:
ac192f89c109 Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents: 42501
diff changeset
1411 fp.close()
ac192f89c109 Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents: 42501
diff changeset
1412 exec(script, globals(), fficonfig)
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1413 ffi_srcdir = os.path.join(fficonfig['ffi_srcdir'], 'src')
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1414
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1415 # Add .S (preprocessed assembly) to C compiler source extensions.
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1416 self.compiler.src_extensions.append('.S')
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1417
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1418 include_dirs = [os.path.join(ffi_builddir, 'include'),
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1419 ffi_builddir, ffi_srcdir]
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1420 extra_compile_args = fficonfig['ffi_cflags'].split()
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1421
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1422 ext.sources.extend(fficonfig['ffi_sources'])
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1423 ext.include_dirs.extend(include_dirs)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1424 ext.extra_compile_args.extend(extra_compile_args)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1425 return True
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1426
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1427 def detect_ctypes(self, inc_dirs, lib_dirs):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1428 self.use_system_libffi = False
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1429 include_dirs = []
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1430 extra_compile_args = []
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1431 extra_link_args = []
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1432 sources = ['_ctypes/_ctypes.c',
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1433 '_ctypes/callbacks.c',
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1434 '_ctypes/callproc.c',
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1435 '_ctypes/stgdict.c',
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1436 '_ctypes/cfield.c',
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1437 '_ctypes/malloc_closure.c']
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1438 depends = ['_ctypes/ctypes.h']
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1439
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1440 if sys.platform == 'darwin':
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1441 sources.append('_ctypes/darwin/dlfcn_simple.c')
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1442 include_dirs.append('_ctypes/darwin')
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1443 # XXX Is this still needed?
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1444 ## 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
1445
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1446 elif sys.platform == 'sunos5':
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1447 # XXX This shouldn't be necessary; it appears that some
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1448 # of the assembler code is non-PIC (i.e. it has relocations
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1449 # when it shouldn't. The proper fix would be to rewrite
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1450 # the assembler code to be PIC.
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1451 # This only works with GCC; the Sun compiler likely refuses
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1452 # this option. If you want to compile ctypes with the Sun
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1453 # compiler, please research a proper solution, instead of
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1454 # finding some -z option for the Sun compiler.
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1455 extra_link_args.append('-mimpure-text')
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1456
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1457 ext = Extension('_ctypes',
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1458 include_dirs=include_dirs,
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1459 extra_compile_args=extra_compile_args,
39442
654c380cf8b9 Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents: 38673
diff changeset
1460 extra_link_args=extra_link_args,
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1461 libraries=[],
36898
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1462 sources=sources,
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1463 depends=depends)
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1464 ext_test = Extension('_ctypes_test',
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1465 sources=['_ctypes/_ctypes_test.c'])
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1466 self.extensions.extend([ext, ext_test])
27905ebaddab Changes to build the _ctypes extension module.
Thomas Heller <theller@ctypes.org>
parents: 36817
diff changeset
1467
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1468 if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1469 return
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1470
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1471 ffi_inc = find_file('ffi.h', [], inc_dirs)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1472 if ffi_inc is not None:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1473 ffi_h = ffi_inc[0] + '/ffi.h'
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1474 fp = open(ffi_h)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1475 while 1:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1476 line = fp.readline()
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1477 if not line:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1478 ffi_inc = None
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1479 break
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1480 if line.startswith('#define LIBFFI_H'):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1481 break
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1482 ffi_lib = None
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1483 if ffi_inc is not None:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1484 for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1485 if (self.compiler.find_library_file(lib_dirs, lib_name)):
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1486 ffi_lib = lib_name
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1487 break
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1488
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1489 if ffi_inc and ffi_lib:
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1490 ext.include_dirs.extend(ffi_inc)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1491 ext.libraries.append(ffi_lib)
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1492 self.use_system_libffi = True
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1493
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 36898
diff changeset
1494
17886
0af824c88203 Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents: 17531
diff changeset
1495 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
1496 # 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
1497 # 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
1498 # installation:
0af824c88203 Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents: 17531
diff changeset
1499 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
1500 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
1501 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
1502
26687
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1503 class PyBuildInstallLib(install_lib):
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1504 # 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
1505 # 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
1506 # 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
1507 # 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
1508
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1509 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
1510
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1511 def install(self):
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1512 outfiles = install_lib.install(self)
42084
229c28cb9afb Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41969
diff changeset
1513 self.set_file_modes(outfiles, 0o644, 0o755)
229c28cb9afb Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41969
diff changeset
1514 self.set_dir_modes(self.install_dir, 0o755)
26687
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1515 return outfiles
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1516
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1517 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
1518 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
1519 if not files: return
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1520
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1521 for filename in files:
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1522 if os.path.islink(filename): continue
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1523 mode = defaultMode
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1524 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
1525 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
1526 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
1527
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1528 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
1529 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
1530 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
1531
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1532 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
1533 if os.path.islink(dirname): return
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1534 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
1535 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
1536
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1537 def is_chmod_supported(self):
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1538 return hasattr(os, 'chmod')
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1539
27990
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1540 SUMMARY = """
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1541 Python is an interpreted, interactive, object-oriented programming
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1542 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
1543
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1544 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
1545 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
1546 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
1547 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
1548 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
1549 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
1550 programmable interface.
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1551
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1552 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
1553 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
1554 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
1555 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
1556 yourself.
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1557 """
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1558
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1559 CLASSIFIERS = """
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1560 Development Status :: 3 - Alpha
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1561 Development Status :: 6 - Mature
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1562 License :: OSI Approved :: Python Software Foundation License
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1563 Natural Language :: English
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1564 Programming Language :: C
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1565 Programming Language :: Python
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1566 Topic :: Software Development
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1567 """
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1568
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1569 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
1570 # 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
1571 import warnings
a1ddc4080cc5 Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents: 17889
diff changeset
1572 warnings.filterwarnings("ignore",category=DeprecationWarning)
27990
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1573 setup(# PyPI Metadata (PEP 301)
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1574 name = "Python",
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1575 version = sys.version.split()[0],
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1576 url = "http://www.python.org/%s" % sys.version[:3],
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1577 maintainer = "Guido van Rossum and the Python community",
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1578 maintainer_email = "python-dev@python.org",
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1579 description = "A high-level object-oriented programming language",
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1580 long_description = SUMMARY.strip(),
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1581 license = "PSF license",
42142
a53e48be6df9 Merged revisions 56125-56153 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 42084
diff changeset
1582 classifiers = [x for x in CLASSIFIERS.split("\n") if x],
27990
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1583 platforms = ["Many"],
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1584
0b3db0edb151 Add PEP 301 metadata.
Guido van Rossum <guido@python.org>
parents: 27989
diff changeset
1585 # Build info
26687
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1586 cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall,
6b390548c698 This is J. Lewis Muir's patch:
Michael W. Hudson <mwh@python.net>
parents: 26674
diff changeset
1587 'install_lib':PyBuildInstallLib},
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1588 # The struct module is defined here, because build_ext won't be
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1589 # called unless there's at least one extension module defined.
38453
29ae5e0fc348 Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents: 37879
diff changeset
1590 ext_modules=[Extension('_struct', ['_struct.c'])],
16844
8156deb0e62d Install the pydoc script
Andrew M. Kuchling <amk@amk.ca>
parents: 16842
diff changeset
1591
8156deb0e62d Install the pydoc script
Andrew M. Kuchling <amk@amk.ca>
parents: 16842
diff changeset
1592 # Scripts to install
32416
950cf69c69b6 Install Barry's smtpd.py daemon.
Skip Montanaro <skip@pobox.com>
parents: 32400
diff changeset
1593 scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
950cf69c69b6 Install Barry's smtpd.py daemon.
Skip Montanaro <skip@pobox.com>
parents: 32400
diff changeset
1594 'Lib/smtpd.py']
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1595 )
16201
38678cb0b3cd the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents: 16192
diff changeset
1596
15940
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1597 # --install-platlib
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1598 if __name__ == '__main__':
ea464eda6158 [Patch #102588/PEP 229]:
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1599 main()