Mercurial > cpython-lru_cache-weakref
annotate setup.py @ 23513:35f01bf34d60 legacy-trunk
Patch #491107: Cygwin setup.py import workaround patch
mwh wrote:
> Jason, feel free to complain if you think this isn't
> the right thing to do.
I guess that I would like to complain and reopen this
issue. :,) I cannot build a Python 2.2.1 with threads
under Cygwin without this patch even though I'm using
Michael's static _socket workaround. This is due to the
Cygwin fork() problem with DLL base address conflicts
that are triggered by importing many modules during the
setup.py run. Similar problems can also be caused by
regrtest.py.
Even after my rebase patch is accepted into Cygwin's
setup.exe, I feel this patch will still be necessary.
This is because during the build process, the shared
extensions (i.e., DLLs) will not be rebased yet. Hence,
the potential for DLL base address conflicts will exist.
One way to obviate this patch is to push the rebase
functionality into Cygwin's ld. Unfortunately, I don't
think this is likely to happen. Another possible way,
is to use the yet to be defined and implemented unload
module functionality:
http://mail.python.org/pipermail/python-dev/2001-December/019028.html
| author | Jason Tishler <jason@tishler.net> |
|---|---|
| date | Wed, 22 May 2002 16:46:15 +0000 |
| parents | f1af8ad11000 |
| children | 5c5fff5de250 |
| 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 |
| 21788 | 6 import sys, os, getopt, imp |
| 15940 | 7 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
|
8 from distutils import text_file |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
9 from distutils.errors import * |
| 15940 | 10 from distutils.core import Extension, setup |
| 11 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
|
12 from distutils.command.install import install |
| 15940 | 13 |
| 14 # This global variable is used to hold the list of modules to be disabled. | |
| 15 disabled_module_list = [] | |
| 16 | |
|
21742
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
17 def add_dir_to_list(dirlist, dir): |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
18 """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
|
19 1) 'dir' is not already in 'dirlist' |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
20 2) 'dir' actually exists, and is a directory.""" |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
21 if os.path.isdir(dir) and dir not in dirlist: |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
22 dirlist.insert(0, dir) |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
23 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
24 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
|
25 """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
|
26 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
|
27 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
|
28 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
29 '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
|
30 '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
|
31 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
|
32 '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
|
33 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
|
34 """ |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
35 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
36 # 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
|
37 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
|
38 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
|
39 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
|
40 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
41 # Check the additional directories |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
42 for dir in paths: |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
43 f = os.path.join(dir, filename) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
44 if os.path.exists(f): |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
45 return [dir] |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
46 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
47 # Not found anywhere |
| 15940 | 48 return None |
| 49 | |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
50 def find_library_file(compiler, libname, std_dirs, paths): |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
51 filename = compiler.library_filename(libname, lib_type='shared') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
52 result = 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
|
53 if result is not None: return result |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
54 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
55 filename = compiler.library_filename(libname, lib_type='static') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
56 result = 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
|
57 return result |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
58 |
| 15940 | 59 def module_enabled(extlist, modname): |
| 60 """Returns whether the module 'modname' is present in the list | |
| 61 of extensions 'extlist'.""" | |
| 62 extlist = [ext for ext in extlist if ext.name == modname] | |
| 63 return len(extlist) | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
64 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
65 def find_module_file(module, dirlist): |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
66 """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
|
67 return the unadorned filename""" |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
68 list = find_file(module, [], dirlist) |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
69 if not list: |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
70 return module |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
71 if len(list) > 1: |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
72 self.announce("WARNING: multiple copies of %s found"%module) |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
73 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
|
74 |
| 15940 | 75 class PyBuildExt(build_ext): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
76 |
| 15940 | 77 def build_extensions(self): |
| 78 | |
| 79 # Detect which modules should be compiled | |
| 80 self.detect_modules() | |
| 81 | |
| 82 # Remove modules that are present on the disabled list | |
| 83 self.extensions = [ext for ext in self.extensions | |
| 84 if ext.name not in disabled_module_list] | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
85 |
| 15940 | 86 # Fix up the autodetected modules, prefixing all the source files |
| 87 # with Modules/ and adding Python's include directory to the path. | |
| 88 (srcdir,) = sysconfig.get_config_vars('srcdir') | |
| 89 | |
|
16225
e56dd2dd9960
Patch from Andrew to properly set module source directory.
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
16201
diff
changeset
|
90 # 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
|
91 moddir = os.path.join(os.getcwd(), srcdir, 'Modules') |
| 15940 | 92 moddir = os.path.normpath(moddir) |
| 93 srcdir, tail = os.path.split(moddir) | |
| 94 srcdir = os.path.normpath(srcdir) | |
| 95 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
|
96 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
97 moddirlist = [moddir] |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
98 incdirlist = ['./Include'] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
99 |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
100 # Platform-dependent module source and include directories |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
101 platform = self.get_platform() |
|
21233
803ccbe3ee7c
As of OS X 10.1.1 the version numbering scheme has changed. Convert all "darwin*" to "darwin" and use that for testing.
Jack Jansen <jack.jansen@cwi.nl>
parents:
21039
diff
changeset
|
102 if platform == 'darwin': |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
103 # 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
|
104 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
|
105 moddirlist.append(macmoddir) |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
106 incdirlist.append('./Mac/Include') |
| 15940 | 107 |
|
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
|
108 # 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
|
109 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
|
110 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
|
111 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
112 for ext in self.extensions[:]: |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
113 ext.sources = [ find_module_file(filename, moddirlist) |
| 15940 | 114 for filename in ext.sources ] |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
115 ext.include_dirs.append( '.' ) # to get config.h |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
116 for incdir in incdirlist: |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
117 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
|
118 |
|
16038
b6863ba88989
GvR pointed out the correct way to check for statically built modules;
Andrew M. Kuchling <amk@amk.ca>
parents:
16013
diff
changeset
|
119 # 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
|
120 # 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
|
121 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
|
122 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
|
123 |
|
16750
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
124 # Parse Modules/Setup to figure out which modules are turned |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
125 # on in the file. |
|
16750
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
126 input = text_file.TextFile('Modules/Setup', join_lines=1) |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
127 remove_modules = [] |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
128 while 1: |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
129 line = input.readline() |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
130 if not line: break |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
131 line = line.split() |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
132 remove_modules.append( line[0] ) |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
133 input.close() |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
134 |
|
16750
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
135 for ext in self.extensions[:]: |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
136 if ext.name in remove_modules: |
|
90e90c92198b
Patch #103899: Don't compile modules configured in Setup. This seems much
Andrew M. Kuchling <amk@amk.ca>
parents:
16749
diff
changeset
|
137 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
|
138 |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
139 # 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
|
140 # 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
|
141 # 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
|
142 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
|
143 linker_so = os.environ.get('LDSHARED') |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
144 args = {} |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
145 # 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
|
146 # compilers |
|
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
147 if compiler is not None: |
|
19122
6729bf30d3ae
Get OPT from the environment to build the CCSHARED command.
Martin v. Löwis <martin@v.loewis.de>
parents:
19049
diff
changeset
|
148 (ccshared,opt) = sysconfig.get_config_vars('CCSHARED','OPT') |
|
6729bf30d3ae
Get OPT from the environment to build the CCSHARED command.
Martin v. Löwis <martin@v.loewis.de>
parents:
19049
diff
changeset
|
149 args['compiler_so'] = compiler + ' ' + opt + ' ' + ccshared |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
150 if linker_so is not None: |
|
20313
ea1910d2c781
Do not add -shared to linker_so. Any necessary options should already be
Martin v. Löwis <martin@v.loewis.de>
parents:
20234
diff
changeset
|
151 args['linker_so'] = linker_so |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
152 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
|
153 |
| 15940 | 154 build_ext.build_extensions(self) |
| 155 | |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
156 def build_extension(self, ext): |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
157 |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
158 try: |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
159 build_ext.build_extension(self, ext) |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
160 except (CCompilerError, DistutilsError), why: |
|
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
161 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
|
162 (ext.name, sys.exc_info()[1])) |
|
17890
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
163 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
|
164 # 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
|
165 # 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
|
166 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
|
167 self.announce( |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
168 '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
|
169 ext.name) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
170 return |
|
23513
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
171 # 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
|
172 # modules have been imported |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
173 if self.get_platform() == 'cygwin': |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
174 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
|
175 % ext.name) |
|
35f01bf34d60
Patch #491107: Cygwin setup.py import workaround patch
Jason Tishler <jason@tishler.net>
parents:
22805
diff
changeset
|
176 return |
| 21788 | 177 ext_filename = os.path.join( |
| 178 self.build_lib, | |
| 179 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
|
180 try: |
| 21788 | 181 imp.load_dynamic(ext.name, ext_filename) |
|
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
|
182 except ImportError, why: |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
183 |
|
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
|
184 if 1: |
|
22104
cd0ce470c153
Changes to what we do to modules that don't import, as
Michael W. Hudson <mwh@python.net>
parents:
21959
diff
changeset
|
185 self.announce('*** WARNING: renaming "%s" since importing it' |
|
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
|
186 ' failed: %s' % (ext.name, why)) |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
187 assert not self.inplace |
|
22104
cd0ce470c153
Changes to what we do to modules that don't import, as
Michael W. Hudson <mwh@python.net>
parents:
21959
diff
changeset
|
188 basename, tail = os.path.splitext(ext_filename) |
|
cd0ce470c153
Changes to what we do to modules that don't import, as
Michael W. Hudson <mwh@python.net>
parents:
21959
diff
changeset
|
189 newname = basename + "_failed" + tail |
|
cd0ce470c153
Changes to what we do to modules that don't import, as
Michael W. Hudson <mwh@python.net>
parents:
21959
diff
changeset
|
190 if os.path.exists(newname): os.remove(newname) |
|
cd0ce470c153
Changes to what we do to modules that don't import, as
Michael W. Hudson <mwh@python.net>
parents:
21959
diff
changeset
|
191 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
|
192 |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
193 # XXX -- This relies on a Vile HACK in |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
194 # distutils.command.build_ext.build_extension(). The |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
195 # _built_objects attribute is stored there strictly for |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
196 # use here. |
|
22545
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
197 # If there is a failure, _built_objects may not be there, |
|
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
198 # so catch the AttributeError and move on. |
|
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
199 try: |
|
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
200 for filename in self._built_objects: |
|
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
201 os.remove(filename) |
|
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
202 except AttributeError: |
|
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
203 self.announce('unable to remove files (ignored)') |
|
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
|
204 else: |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
205 self.announce('*** WARNING: importing extension "%s" ' |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
206 'failed: %s' % (ext.name, why)) |
|
21277
f702ff390e4d
Visious hackery to solve a build-control problem related to our use of
Fred Drake <fdrake@acm.org>
parents:
21274
diff
changeset
|
207 |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
208 def get_platform (self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
209 # Get value of sys.platform |
|
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
210 platform = sys.platform |
|
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
211 if platform[:6] =='cygwin': |
|
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
212 platform = 'cygwin' |
|
16471
ab02bc6a5ab2
BeOS doesn't have a libm.a, either; noted by Donn Cave
Andrew M. Kuchling <amk@amk.ca>
parents:
16468
diff
changeset
|
213 elif platform[:4] =='beos': |
|
ab02bc6a5ab2
BeOS doesn't have a libm.a, either; noted by Donn Cave
Andrew M. Kuchling <amk@amk.ca>
parents:
16468
diff
changeset
|
214 platform = 'beos' |
|
21233
803ccbe3ee7c
As of OS X 10.1.1 the version numbering scheme has changed. Convert all "darwin*" to "darwin" and use that for testing.
Jack Jansen <jack.jansen@cwi.nl>
parents:
21039
diff
changeset
|
215 elif platform[:6] == 'darwin': |
|
803ccbe3ee7c
As of OS X 10.1.1 the version numbering scheme has changed. Convert all "darwin*" to "darwin" and use that for testing.
Jack Jansen <jack.jansen@cwi.nl>
parents:
21039
diff
changeset
|
216 platform = 'darwin' |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
217 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
218 return platform |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
219 |
| 15940 | 220 def detect_modules(self): |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
221 # Ensure that /usr/local is always used |
|
21742
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
222 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
|
223 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
|
224 |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
225 add_dir_to_list(self.compiler.library_dirs, |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
226 sysconfig.get_config_var("LIBDIR")) |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
227 add_dir_to_list(self.compiler.include_dirs, |
|
9d5adff87f30
Apply a variant of patch
Michael W. Hudson <mwh@python.net>
parents:
21610
diff
changeset
|
228 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
|
229 |
|
19343
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
230 try: |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
231 have_unicode = unicode |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
232 except NameError: |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
233 have_unicode = 0 |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
234 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
235 # 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
|
236 # 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
|
237 # be assumed that no additional -I,-L directives are needed. |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
238 lib_dirs = self.compiler.library_dirs + ['/lib', '/usr/lib'] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
239 inc_dirs = self.compiler.include_dirs + ['/usr/include'] |
| 15940 | 240 exts = [] |
| 241 | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
242 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
|
243 (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
|
244 |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
245 # 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
|
246 math_libs = ['m'] |
|
21233
803ccbe3ee7c
As of OS X 10.1.1 the version numbering scheme has changed. Convert all "darwin*" to "darwin" and use that for testing.
Jack Jansen <jack.jansen@cwi.nl>
parents:
21039
diff
changeset
|
247 if platform in ['darwin', 'beos']: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
248 math_libs = [] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
249 |
| 15940 | 250 # XXX Omitted modules: gl, pure, dl, SGI-specific modules |
| 251 | |
| 252 # | |
| 253 # The following modules are all pretty straightforward, and compile | |
| 254 # on pretty much any POSIXish platform. | |
| 255 # | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
256 |
| 15940 | 257 # Some modules that are normally always on: |
| 258 exts.append( Extension('regex', ['regexmodule.c', 'regexpr.c']) ) | |
| 259 exts.append( Extension('pcre', ['pcremodule.c', 'pypcre.c']) ) | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
260 |
| 20397 | 261 exts.append( Extension('_hotshot', ['_hotshot.c']) ) |
|
16384
c898ceba2261
Add entries for the weakref module to the build control.
Fred Drake <fdrake@acm.org>
parents:
16287
diff
changeset
|
262 exts.append( Extension('_weakref', ['_weakref.c']) ) |
| 15951 | 263 exts.append( Extension('xreadlines', ['xreadlinesmodule.c']) ) |
| 15940 | 264 |
| 265 # array objects | |
| 266 exts.append( Extension('array', ['arraymodule.c']) ) | |
| 267 # 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
|
268 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
|
269 libraries=math_libs) ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
270 |
| 15940 | 271 # 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
|
272 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
|
273 libraries=math_libs) ) |
| 15940 | 274 # fast string operations implemented in C |
| 275 exts.append( Extension('strop', ['stropmodule.c']) ) | |
| 276 # 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
|
277 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
|
278 libraries=math_libs) ) |
| 15940 | 279 # operator.add() and similar goodies |
| 280 exts.append( Extension('operator', ['operator.c']) ) | |
| 281 # access to the builtin codecs and codec registry | |
| 282 exts.append( Extension('_codecs', ['_codecsmodule.c']) ) | |
|
16416
7d39d9dcf2d6
Whitespace correction...
Marc-André Lemburg <mal@egenix.com>
parents:
16415
diff
changeset
|
283 # 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
|
284 exts.append( Extension('_testcapi', ['_testcapimodule.c']) ) |
| 15940 | 285 # static Unicode character database |
|
19343
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
286 if have_unicode: |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19319
diff
changeset
|
287 exts.append( Extension('unicodedata', ['unicodedata.c']) ) |
| 15940 | 288 # access to ISO C locale support |
| 289 exts.append( Extension('_locale', ['_localemodule.c']) ) | |
| 290 | |
| 291 # Modules with some UNIX dependencies -- on by default: | |
| 292 # (If you have a really backward UNIX, select and socket may not be | |
| 293 # supported...) | |
| 294 | |
| 295 # fcntl(2) and ioctl(2) | |
| 296 exts.append( Extension('fcntl', ['fcntlmodule.c']) ) | |
| 297 # pwd(3) | |
| 298 exts.append( Extension('pwd', ['pwdmodule.c']) ) | |
| 299 # grp(3) | |
| 300 exts.append( Extension('grp', ['grpmodule.c']) ) | |
| 301 # posix (UNIX) errno values | |
| 302 exts.append( Extension('errno', ['errnomodule.c']) ) | |
| 303 # select(2); not on ancient System V | |
| 304 exts.append( Extension('select', ['selectmodule.c']) ) | |
| 305 | |
| 306 # The md5 module implements the RSA Data Security, Inc. MD5 | |
| 21274 | 307 # Message-Digest Algorithm, described in RFC 1321. The |
| 308 # necessary files md5c.c and md5.h are included here. | |
| 15940 | 309 exts.append( Extension('md5', ['md5module.c', 'md5c.c']) ) |
| 310 | |
| 311 # The sha module implements the SHA checksum algorithm. | |
| 312 # (NIST's Secure Hash Algorithm.) | |
| 313 exts.append( Extension('sha', ['shamodule.c']) ) | |
| 314 | |
| 315 # Helper module for various ascii-encoders | |
| 316 exts.append( Extension('binascii', ['binascii.c']) ) | |
| 317 | |
| 318 # Fred Drake's interface to the Python parser | |
| 319 exts.append( Extension('parser', ['parsermodule.c']) ) | |
| 320 | |
|
22805
f1af8ad11000
Removed old Digital Creations copyright/license notices (with
Guido van Rossum <guido@python.org>
parents:
22545
diff
changeset
|
321 # cStringIO and cPickle |
| 15940 | 322 exts.append( Extension('cStringIO', ['cStringIO.c']) ) |
| 323 exts.append( Extension('cPickle', ['cPickle.c']) ) | |
| 324 | |
| 325 # Memory-mapped files (also works on Win32). | |
| 326 exts.append( Extension('mmap', ['mmapmodule.c']) ) | |
| 327 | |
| 328 # Lance Ellinghaus's modules: | |
| 329 # enigma-inspired encryption | |
| 330 exts.append( Extension('rotor', ['rotormodule.c']) ) | |
| 331 # syslog daemon interface | |
| 332 exts.append( Extension('syslog', ['syslogmodule.c']) ) | |
| 333 | |
| 334 # George Neville-Neil's timing module: | |
| 335 exts.append( Extension('timing', ['timingmodule.c']) ) | |
| 336 | |
| 337 # | |
|
15998
f390f43ac4b6
Patch from Barry: gets rid of two unused imports,
Andrew M. Kuchling <amk@amk.ca>
parents:
15996
diff
changeset
|
338 # 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
|
339 # libraries, are platform-specific, or present other surprises. |
| 15940 | 340 # |
| 341 | |
| 342 # Multimedia modules | |
| 343 # These don't work for 64-bit platforms!!! | |
| 344 # These represent audio samples or images as strings: | |
| 345 | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
346 # Disabled on 64-bit platforms |
| 15940 | 347 if sys.maxint != 9223372036854775807L: |
| 348 # Operations on audio samples | |
| 349 exts.append( Extension('audioop', ['audioop.c']) ) | |
| 350 # Operations on images | |
| 351 exts.append( Extension('imageop', ['imageop.c']) ) | |
| 352 # Read SGI RGB image files (but coded portably) | |
| 353 exts.append( Extension('rgbimg', ['rgbimgmodule.c']) ) | |
| 354 | |
| 355 # readline | |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
356 if self.compiler.find_library_file(lib_dirs, 'readline'): |
|
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
357 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
|
358 if self.compiler.find_library_file(lib_dirs, |
|
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
359 'ncurses'): |
|
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
360 readline_libs.append('ncurses') |
|
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
361 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
|
362 ['/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
|
363 'termcap'): |
|
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
364 readline_libs.append('termcap') |
| 15940 | 365 exts.append( Extension('readline', ['readline.c'], |
|
16282
ea4a2f3b266e
Fixed setup.py to allow:
Marc-André Lemburg <mal@egenix.com>
parents:
16225
diff
changeset
|
366 library_dirs=['/usr/lib/termcap'], |
|
16283
65c6a2998b1b
Be extra careful with linking against libtermcap. This is now only done
Marc-André Lemburg <mal@egenix.com>
parents:
16282
diff
changeset
|
367 libraries=readline_libs) ) |
| 15940 | 368 |
|
19319
d370a58fb7fd
Link readline module with ncurses in preference to termcap. [Bug ##441580]
Andrew M. Kuchling <amk@amk.ca>
parents:
19269
diff
changeset
|
369 # crypt module. |
| 15940 | 370 |
| 371 if self.compiler.find_library_file(lib_dirs, 'crypt'): | |
| 372 libs = ['crypt'] | |
| 373 else: | |
| 374 libs = [] | |
| 375 exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) | |
| 376 | |
| 377 # socket(2) | |
|
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
|
378 exts.append( Extension('_socket', ['socketmodule.c']) ) |
|
3957d155f8c5
Break SSL support out of _socket module and place it into a new
Marc-André Lemburg <mal@egenix.com>
parents:
21942
diff
changeset
|
379 # Detect SSL support for the socket module (via _ssl) |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
380 ssl_incs = find_file('openssl/ssl.h', inc_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
|
381 ['/usr/local/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
|
382 '/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
|
383 ] |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
384 ) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
385 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
|
386 ['/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
|
387 '/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
|
388 ] ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
389 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
390 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
|
391 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
|
392 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
|
393 include_dirs = ssl_incs, |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
394 library_dirs = ssl_libs, |
|
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
|
395 libraries = ['ssl', 'crypto']) ) |
| 15940 | 396 |
| 397 # Modules that provide persistent dictionary-like semantics. You will | |
| 398 # probably want to arrange for at least one of them to be available on | |
| 399 # your machine, though none are defined by default because of library | |
| 400 # dependencies. The Python module anydbm.py provides an | |
| 401 # implementation independent wrapper for these; dumbdbm.py provides | |
| 402 # similar functionality (but slower of course) implemented in Python. | |
| 403 | |
| 404 # The standard Unix dbm module: | |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
405 if platform not in ['cygwin']: |
|
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
406 if (self.compiler.find_library_file(lib_dirs, 'ndbm')): |
|
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
407 exts.append( Extension('dbm', ['dbmmodule.c'], |
|
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
408 libraries = ['ndbm'] ) ) |
|
20593
25d764d88149
- Build dbm module using libdb1 if it's available. This fixes SF bug "[
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
20498
diff
changeset
|
409 elif self.compiler.find_library_file(lib_dirs, 'db1'): |
|
25d764d88149
- Build dbm module using libdb1 if it's available. This fixes SF bug "[
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
20498
diff
changeset
|
410 exts.append( Extension('dbm', ['dbmmodule.c'], |
|
25d764d88149
- Build dbm module using libdb1 if it's available. This fixes SF bug "[
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
20498
diff
changeset
|
411 libraries = ['db1'] ) ) |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
412 else: |
|
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
413 exts.append( Extension('dbm', ['dbmmodule.c']) ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
414 |
| 15940 | 415 # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: |
| 416 if (self.compiler.find_library_file(lib_dirs, 'gdbm')): | |
| 417 exts.append( Extension('gdbm', ['gdbmmodule.c'], | |
| 418 libraries = ['gdbm'] ) ) | |
| 419 | |
| 420 # Berkeley DB interface. | |
| 421 # | |
| 422 # This requires the Berkeley DB code, see | |
| 423 # ftp://ftp.cs.berkeley.edu/pub/4bsd/db.1.85.tar.gz | |
| 424 # | |
| 425 # Edit the variables DB and DBPORT to point to the db top directory | |
| 426 # and the subdirectory of PORT where you built it. | |
| 427 # | |
|
19895
1c41fbd09d93
Comment tweak: point to Robin Dunn's pybsddb project on SourceForge.
Greg Ward <gward@python.net>
parents:
19704
diff
changeset
|
428 # (See http://pybsddb.sourceforge.net/ for an interface to |
|
1c41fbd09d93
Comment tweak: point to Robin Dunn's pybsddb project on SourceForge.
Greg Ward <gward@python.net>
parents:
19704
diff
changeset
|
429 # Berkeley DB 3.x.) |
| 15940 | 430 |
|
16749
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
431 dblib = [] |
|
21039
778e6a80fcee
Support bsddb 3.2. Fixes #483653.
Martin v. Löwis <martin@v.loewis.de>
parents:
20815
diff
changeset
|
432 if self.compiler.find_library_file(lib_dirs, 'db-3.2'): |
|
778e6a80fcee
Support bsddb 3.2. Fixes #483653.
Martin v. Löwis <martin@v.loewis.de>
parents:
20815
diff
changeset
|
433 dblib = ['db-3.2'] |
|
778e6a80fcee
Support bsddb 3.2. Fixes #483653.
Martin v. Löwis <martin@v.loewis.de>
parents:
20815
diff
changeset
|
434 elif self.compiler.find_library_file(lib_dirs, 'db-3.1'): |
|
19420
f52fa2b703d7
This is supposed to help configure better sort out the various libdb
Skip Montanaro <skip@pobox.com>
parents:
19343
diff
changeset
|
435 dblib = ['db-3.1'] |
|
20593
25d764d88149
- Build dbm module using libdb1 if it's available. This fixes SF bug "[
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
20498
diff
changeset
|
436 elif self.compiler.find_library_file(lib_dirs, 'db3'): |
|
25d764d88149
- Build dbm module using libdb1 if it's available. This fixes SF bug "[
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
20498
diff
changeset
|
437 dblib = ['db3'] |
|
19420
f52fa2b703d7
This is supposed to help configure better sort out the various libdb
Skip Montanaro <skip@pobox.com>
parents:
19343
diff
changeset
|
438 elif self.compiler.find_library_file(lib_dirs, 'db2'): |
|
f52fa2b703d7
This is supposed to help configure better sort out the various libdb
Skip Montanaro <skip@pobox.com>
parents:
19343
diff
changeset
|
439 dblib = ['db2'] |
|
f52fa2b703d7
This is supposed to help configure better sort out the various libdb
Skip Montanaro <skip@pobox.com>
parents:
19343
diff
changeset
|
440 elif self.compiler.find_library_file(lib_dirs, 'db1'): |
|
f52fa2b703d7
This is supposed to help configure better sort out the various libdb
Skip Montanaro <skip@pobox.com>
parents:
19343
diff
changeset
|
441 dblib = ['db1'] |
|
f52fa2b703d7
This is supposed to help configure better sort out the various libdb
Skip Montanaro <skip@pobox.com>
parents:
19343
diff
changeset
|
442 elif self.compiler.find_library_file(lib_dirs, 'db'): |
|
16749
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
443 dblib = ['db'] |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
444 |
|
16749
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
445 db185_incs = find_file('db_185.h', inc_dirs, |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
446 ['/usr/include/db3', '/usr/include/db2']) |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
447 db_inc = find_file('db.h', inc_dirs, ['/usr/include/db1']) |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
448 if db185_incs is not None: |
| 15940 | 449 exts.append( Extension('bsddb', ['bsddbmodule.c'], |
|
16749
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
450 include_dirs = db185_incs, |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
451 define_macros=[('HAVE_DB_185_H',1)], |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
452 libraries = dblib ) ) |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
453 elif db_inc is not None: |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
454 exts.append( Extension('bsddb', ['bsddbmodule.c'], |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
455 include_dirs = db_inc, |
|
7815919e2af8
Patch #103937: Attempt to get the BSDDB autodetection right (or at least
Andrew M. Kuchling <amk@amk.ca>
parents:
16721
diff
changeset
|
456 libraries = dblib) ) |
| 15940 | 457 |
| 458 # The mpz module interfaces to the GNU Multiple Precision library. | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
459 # You need to ftp the GNU MP library. |
| 15940 | 460 # This was originally written and tested against GMP 1.2 and 1.3.2. |
| 461 # It has been modified by Rob Hooft to work with 2.0.2 as well, but I | |
|
21452
fb6b3fc4e0c1
Update comments about mpz, pointing to gmpy and mxNumber rather than
Guido van Rossum <guido@python.org>
parents:
21391
diff
changeset
|
462 # haven't tested it recently, and it definitely doesn't work with |
|
fb6b3fc4e0c1
Update comments about mpz, pointing to gmpy and mxNumber rather than
Guido van Rossum <guido@python.org>
parents:
21391
diff
changeset
|
463 # GMP 4.0. For more complete modules, refer to |
|
fb6b3fc4e0c1
Update comments about mpz, pointing to gmpy and mxNumber rather than
Guido van Rossum <guido@python.org>
parents:
21391
diff
changeset
|
464 # http://gmpy.sourceforge.net and |
|
fb6b3fc4e0c1
Update comments about mpz, pointing to gmpy and mxNumber rather than
Guido van Rossum <guido@python.org>
parents:
21391
diff
changeset
|
465 # http://www.egenix.com/files/python/mxNumber.html |
| 15940 | 466 |
|
20234
7ea61da878af
Fix a spelling error that has been bugging me for longer than I care to admit.
Greg Ward <gward@python.net>
parents:
19968
diff
changeset
|
467 # A compatible MP library unencumbered by the GPL also exists. It was |
| 15940 | 468 # posted to comp.sources.misc in volume 40 and is widely available from |
| 469 # FTP archive sites. One URL for it is: | |
| 470 # ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume40/fgmp/part01.Z | |
| 471 | |
| 472 if (self.compiler.find_library_file(lib_dirs, 'gmp')): | |
| 473 exts.append( Extension('mpz', ['mpzmodule.c'], | |
| 474 libraries = ['gmp'] ) ) | |
| 475 | |
| 476 | |
| 477 # Unix-only modules | |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
478 if platform not in ['mac', 'win32']: |
| 15940 | 479 # Steen Lumholt's termios module |
| 480 exts.append( Extension('termios', ['termios.c']) ) | |
| 481 # Jeremy Hylton's rlimit interface | |
|
19935
619a2d6b5ea9
[Patch #462255, from Jason Tishler] Re-enables building the resouce
Andrew M. Kuchling <amk@amk.ca>
parents:
19895
diff
changeset
|
482 exts.append( Extension('resource', ['resource.c']) ) |
| 15940 | 483 |
|
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
|
484 # Sun yellow pages. Some systems have the functions in libc. |
|
16804
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
485 if platform not in ['cygwin']: |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
486 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
|
487 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
|
488 else: |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
489 libs = [] |
|
8156879fe60d
Patch #404680: disables the nis module and enables the dl module when
Andrew M. Kuchling <amk@amk.ca>
parents:
16750
diff
changeset
|
490 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
|
491 libraries = libs) ) |
| 15940 | 492 |
| 493 # Curses support, requring 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
|
494 # provided by the ncurses library. |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
495 if platform == 'sunos4': |
|
16842
76a684fe3f7f
Fix for bug #404875: fix typo in setup.py
Andrew M. Kuchling <amk@amk.ca>
parents:
16804
diff
changeset
|
496 inc_dirs += ['/usr/5include'] |
| 15940 | 497 lib_dirs += ['/usr/5lib'] |
| 498 | |
| 499 if (self.compiler.find_library_file(lib_dirs, 'ncurses')): | |
| 500 curses_libs = ['ncurses'] | |
| 501 exts.append( Extension('_curses', ['_cursesmodule.c'], | |
| 502 libraries = curses_libs) ) | |
| 21274 | 503 elif (self.compiler.find_library_file(lib_dirs, 'curses') |
| 504 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
|
505 # 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
|
506 # the _curses module. |
| 15940 | 507 if (self.compiler.find_library_file(lib_dirs, 'terminfo')): |
| 508 curses_libs = ['curses', 'terminfo'] | |
| 509 else: | |
| 510 curses_libs = ['curses', 'termcap'] | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
511 |
| 15940 | 512 exts.append( Extension('_curses', ['_cursesmodule.c'], |
| 513 libraries = curses_libs) ) | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
514 |
| 15940 | 515 # 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
|
516 if (module_enabled(exts, '_curses') and |
| 15940 | 517 self.compiler.find_library_file(lib_dirs, 'panel')): |
| 518 exts.append( Extension('_curses_panel', ['_curses_panel.c'], | |
| 519 libraries = ['panel'] + curses_libs) ) | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
520 |
|
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
521 |
| 15940 | 522 |
| 523 # Lee Busby's SIGFPE modules. | |
| 524 # The library to link fpectl with is platform specific. | |
| 525 # Choose *one* of the options below for fpectl: | |
| 526 | |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
527 if platform == 'irix5': |
| 15940 | 528 # For SGI IRIX (tested on 5.3): |
| 529 exts.append( Extension('fpectl', ['fpectlmodule.c'], | |
| 530 libraries=['fpe']) ) | |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
531 elif 0: # XXX how to detect SunPro? |
| 21274 | 532 # For Solaris with SunPro compiler (tested on Solaris 2.5 |
| 533 # with SunPro C 4.2): (Without the compiler you don't have | |
| 534 # -lsunmath.) | |
| 15940 | 535 #fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm |
| 536 pass | |
| 537 else: | |
| 538 # For other systems: see instructions in fpectlmodule.c. | |
| 539 #fpectl fpectlmodule.c ... | |
| 540 exts.append( Extension('fpectl', ['fpectlmodule.c']) ) | |
| 541 | |
| 542 | |
| 543 # Andrew Kuchling's zlib module. | |
| 544 # This require zlib 1.1.3 (or later). | |
| 545 # See http://www.cdrom.com/pub/infozip/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
|
546 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
|
547 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
|
548 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
|
549 version = '"0.0.0"' |
|
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
|
550 version_req = '"1.1.3"' |
|
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
|
551 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
|
552 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
|
553 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
|
554 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
|
555 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
|
556 if line.find('#define ZLIB_VERSION', 0) == 0: |
|
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
|
557 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
|
558 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
|
559 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
|
560 if (self.compiler.find_library_file(lib_dirs, 'z')): |
|
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
|
561 exts.append( Extension('zlib', ['zlibmodule.c'], |
|
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
|
562 libraries = ['z']) ) |
| 15940 | 563 |
| 564 # Interface to the Expat XML parser | |
| 565 # | |
| 566 # Expat is written by James Clark and must be downloaded separately | |
| 567 # (see below). The pyexpat module was written by Paul Prescod after a | |
|
21932
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
568 # prototype by Jack Jansen. Source of Expat 1.95.2 is included |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
569 # in Modules/expat. Usage of a system shared libexpat.so/expat.dll |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
570 # is only advised if that has the same or newer version and was |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
571 # build using the same defines. |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
572 if sys.byteorder == "little": |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
573 xmlbo = "12" |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
574 else: |
|
21932
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
575 xmlbo = "21" |
|
21942
9d44e752d617
Compute expat -I directives from srcdir. Fixes #517214.
Martin v. Löwis <martin@v.loewis.de>
parents:
21939
diff
changeset
|
576 expatinc = os.path.join(os.getcwd(), srcdir, 'Modules', 'expat') |
|
21932
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
577 exts.append(Extension('pyexpat', |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
578 sources = [ |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
579 'pyexpat.c', |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
580 'expat/xmlparse.c', |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
581 'expat/xmlrole.c', |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
582 'expat/xmltok.c', |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
583 ], |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
584 define_macros = [ |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
585 ('HAVE_EXPAT_H',None), |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
586 ('XML_NS', '1'), |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
587 ('XML_DTD', '1'), |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
588 ('XML_BYTE_ORDER', xmlbo), |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
589 ('XML_CONTEXT_BYTES','1024'), |
|
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
590 ], |
|
21942
9d44e752d617
Compute expat -I directives from srcdir. Fixes #517214.
Martin v. Löwis <martin@v.loewis.de>
parents:
21939
diff
changeset
|
591 include_dirs = [expatinc] |
|
21932
ab68ad43d514
Use included Expat library. Drop support for older expat versions.
Martin v. Löwis <martin@v.loewis.de>
parents:
21788
diff
changeset
|
592 )) |
| 15940 | 593 |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
594 # Dynamic loading module |
|
21610
a9e06ffaf7fb
Patch #497126: Always compile dl.
Martin v. Löwis <martin@v.loewis.de>
parents:
21452
diff
changeset
|
595 dl_inc = find_file('dlfcn.h', [], inc_dirs) |
|
a9e06ffaf7fb
Patch #497126: Always compile dl.
Martin v. Löwis <martin@v.loewis.de>
parents:
21452
diff
changeset
|
596 if dl_inc is not None: |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
597 exts.append( Extension('dl', ['dlmodule.c']) ) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
598 |
| 15940 | 599 # Platform-specific libraries |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
600 if platform == 'linux2': |
| 15940 | 601 # Linux-specific modules |
| 602 exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) | |
| 603 | |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
604 if platform == 'sunos5': |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
605 # SunOS specific modules |
| 15940 | 606 exts.append( Extension('sunaudiodev', ['sunaudiodev.c']) ) |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
607 |
|
21233
803ccbe3ee7c
As of OS X 10.1.1 the version numbering scheme has changed. Convert all "darwin*" to "darwin" and use that for testing.
Jack Jansen <jack.jansen@cwi.nl>
parents:
21039
diff
changeset
|
608 if platform == 'darwin': |
|
19007
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
609 # Mac OS X specific modules. These are ported over from MacPython |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
610 # and still experimental. Some (such as gestalt or icglue) are |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
611 # already generally useful, some (the GUI ones) really need to |
|
cefdcd60a8b2
Replace moddir and incdir by
Jack Jansen <jack.jansen@cwi.nl>
parents:
18845
diff
changeset
|
612 # be used from a framework. |
|
19704
1901f875b7d3
On MacOSX built the toolbox extension modules iff we're building with
Jack Jansen <jack.jansen@cwi.nl>
parents:
19680
diff
changeset
|
613 # |
|
1901f875b7d3
On MacOSX built the toolbox extension modules iff we're building with
Jack Jansen <jack.jansen@cwi.nl>
parents:
19680
diff
changeset
|
614 # I would like to trigger on WITH_NEXT_FRAMEWORK but that isn't |
|
1901f875b7d3
On MacOSX built the toolbox extension modules iff we're building with
Jack Jansen <jack.jansen@cwi.nl>
parents:
19680
diff
changeset
|
615 # available here. This Makefile variable is also what the install |
|
1901f875b7d3
On MacOSX built the toolbox extension modules iff we're building with
Jack Jansen <jack.jansen@cwi.nl>
parents:
19680
diff
changeset
|
616 # procedure triggers on. |
|
1901f875b7d3
On MacOSX built the toolbox extension modules iff we're building with
Jack Jansen <jack.jansen@cwi.nl>
parents:
19680
diff
changeset
|
617 frameworkdir = sysconfig.get_config_var('PYTHONFRAMEWORKDIR') |
|
22159
71902e1cfbef
Apply Jack's patch attached to
Michael W. Hudson <mwh@python.net>
parents:
22104
diff
changeset
|
618 exts.append( Extension('gestalt', ['gestaltmodule.c'], |
|
22545
142fd3e1073d
Fix SF # 532618 517704, install problems when building modules fail.
Neal Norwitz <nnorwitz@gmail.com>
parents:
22159
diff
changeset
|
619 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
620 exts.append( Extension('MacOS', ['macosmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
621 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
622 exts.append( Extension('icglue', ['icgluemodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
623 extra_link_args=['-framework', 'Carbon']) ) |
| 21274 | 624 exts.append( Extension('macfs', |
| 625 ['macfsmodule.c', | |
| 626 '../Python/getapplbycreator.c'], | |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
627 extra_link_args=['-framework', 'Carbon']) ) |
|
22159
71902e1cfbef
Apply Jack's patch attached to
Michael W. Hudson <mwh@python.net>
parents:
22104
diff
changeset
|
628 exts.append( Extension('_CF', ['cf/_CFmodule.c'], |
|
71902e1cfbef
Apply Jack's patch attached to
Michael W. Hudson <mwh@python.net>
parents:
22104
diff
changeset
|
629 extra_link_args=['-framework', 'CoreFoundation']) ) |
|
71902e1cfbef
Apply Jack's patch attached to
Michael W. Hudson <mwh@python.net>
parents:
22104
diff
changeset
|
630 exts.append( Extension('_Res', ['res/_Resmodule.c'], |
|
71902e1cfbef
Apply Jack's patch attached to
Michael W. Hudson <mwh@python.net>
parents:
22104
diff
changeset
|
631 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
632 exts.append( Extension('_Snd', ['snd/_Sndmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
633 extra_link_args=['-framework', 'Carbon']) ) |
|
19704
1901f875b7d3
On MacOSX built the toolbox extension modules iff we're building with
Jack Jansen <jack.jansen@cwi.nl>
parents:
19680
diff
changeset
|
634 if frameworkdir: |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
635 exts.append( Extension('Nav', ['Nav.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
636 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
637 exts.append( Extension('_AE', ['ae/_AEmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
638 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
639 exts.append( Extension('_App', ['app/_Appmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
640 extra_link_args=['-framework', 'Carbon']) ) |
|
21379
743f67befb57
Build _CarbonEvt module on Mac OS X. Still gives a couple of warnings
Jack Jansen <jack.jansen@cwi.nl>
parents:
21321
diff
changeset
|
641 exts.append( Extension('_CarbonEvt', ['carbonevt/_CarbonEvtmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
642 extra_link_args=['-framework', 'Carbon']) ) |
|
21391
2c32fc5f23c0
build CoreGraphics under darwin
Just van Rossum <just@letterror.com>
parents:
21379
diff
changeset
|
643 exts.append( Extension('_CG', ['cg/_CGmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
644 extra_link_args=['-framework', 'ApplicationServices', |
|
21391
2c32fc5f23c0
build CoreGraphics under darwin
Just van Rossum <just@letterror.com>
parents:
21379
diff
changeset
|
645 '-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
646 exts.append( Extension('_Cm', ['cm/_Cmmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
647 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
648 exts.append( Extension('_Ctl', ['ctl/_Ctlmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
649 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
650 exts.append( Extension('_Dlg', ['dlg/_Dlgmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
651 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
652 exts.append( Extension('_Drag', ['drag/_Dragmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
653 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
654 exts.append( Extension('_Evt', ['evt/_Evtmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
655 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
656 exts.append( Extension('_Fm', ['fm/_Fmmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
657 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
658 exts.append( Extension('_Icn', ['icn/_Icnmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
659 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
660 exts.append( Extension('_List', ['list/_Listmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
661 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
662 exts.append( Extension('_Menu', ['menu/_Menumodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
663 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
664 exts.append( Extension('_Mlte', ['mlte/_Mltemodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
665 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
666 exts.append( Extension('_Qd', ['qd/_Qdmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
667 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
668 exts.append( Extension('_Qdoffs', ['qdoffs/_Qdoffsmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
669 extra_link_args=['-framework', 'Carbon']) ) |
|
19704
1901f875b7d3
On MacOSX built the toolbox extension modules iff we're building with
Jack Jansen <jack.jansen@cwi.nl>
parents:
19680
diff
changeset
|
670 exts.append( Extension('_Qt', ['qt/_Qtmodule.c'], |
| 21274 | 671 extra_link_args=['-framework', 'QuickTime', |
| 672 '-framework', 'Carbon']) ) | |
|
21775
16cc538401b3
Mac _Scrap module is now carbon-compliant, so build it on OSX.
Jack Jansen <jack.jansen@cwi.nl>
parents:
21742
diff
changeset
|
673 exts.append( Extension('_Scrap', ['scrap/_Scrapmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
674 extra_link_args=['-framework', 'Carbon']) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
675 exts.append( Extension('_TE', ['te/_TEmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
676 extra_link_args=['-framework', 'Carbon']) ) |
|
21321
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
677 # As there is no standardized place (yet) to put user-installed |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
678 # Mac libraries on OSX you should put a symlink to your Waste |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
679 # installation in the same folder as your python source tree. |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
680 # Or modify the next two lines:-) |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
681 waste_incs = find_file("WASTE.h", [], ["../waste/C_C++ Headers"]) |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
682 waste_libs = find_library_file(self.compiler, "WASTE", [], |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
683 ["../waste/Static Libraries"]) |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
684 if waste_incs != None and waste_libs != None: |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
685 exts.append( Extension('waste', |
|
21321
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
686 ['waste/wastemodule.c', |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
687 'Mac/Wastemods/WEObjectHandlers.c', |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
688 'Mac/Wastemods/WETabHooks.c', |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
689 'Mac/Wastemods/WETabs.c' |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
690 ], |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
691 include_dirs = waste_incs + ['Mac/Wastemods'], |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
692 library_dirs = waste_libs, |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
693 libraries = ['WASTE'], |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
694 extra_link_args = ['-framework', 'Carbon'], |
|
3a2cf5e45656
Mods to make WASTE module compile and link for MachoPython. Not tested
Jack Jansen <jack.jansen@cwi.nl>
parents:
21277
diff
changeset
|
695 ) ) |
|
20789
961b24f8e1d8
Link the core with CoreServices, not with Carbon, and don't use any Carbon
Jack Jansen <jack.jansen@cwi.nl>
parents:
20593
diff
changeset
|
696 exts.append( Extension('_Win', ['win/_Winmodule.c'], |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
697 extra_link_args=['-framework', 'Carbon']) ) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
698 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
699 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
|
700 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
701 # 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
|
702 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
|
703 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
704 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
705 def detect_tkinter(self, inc_dirs, lib_dirs): |
| 15940 | 706 # 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
|
707 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
708 # 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
|
709 # 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
|
710 # 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
|
711 tcllib = tklib = tcl_includes = tk_includes = None |
|
18819
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
712 for version in ['8.4', '84', '8.3', '83', '8.2', |
|
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
713 '82', '8.1', '81', '8.0', '80']: |
|
21787
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
714 tklib = self.compiler.find_library_file(lib_dirs, |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
715 'tk' + version ) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
716 tcllib = self.compiler.find_library_file(lib_dirs, |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
717 'tcl' + version ) |
|
3ef7bed007f6
Sjoerd Mullender pointed out that setup.py contained some tabs,
Michael W. Hudson <mwh@python.net>
parents:
21775
diff
changeset
|
718 if tklib and tcllib: |
| 15940 | 719 # Exit the loop when we've found the Tcl/Tk libraries |
| 720 break | |
| 721 | |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
722 # 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
|
723 if tklib and tcllib: |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
724 # Check for the include files on Debian, where |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
725 # they're put in /usr/include/{tcl,tk}X.Y |
|
16467
1c71aa7d5513
Patch #103578 ] _tkinter build fix for he current Debian unstable tcl/tk 8.3
Andrew M. Kuchling <amk@amk.ca>
parents:
16447
diff
changeset
|
726 debian_tcl_include = [ '/usr/include/tcl' + version ] |
| 21274 | 727 debian_tk_include = [ '/usr/include/tk' + version ] + \ |
| 728 debian_tcl_include | |
|
16467
1c71aa7d5513
Patch #103578 ] _tkinter build fix for he current Debian unstable tcl/tk 8.3
Andrew M. Kuchling <amk@amk.ca>
parents:
16447
diff
changeset
|
729 tcl_includes = find_file('tcl.h', inc_dirs, debian_tcl_include) |
|
1c71aa7d5513
Patch #103578 ] _tkinter build fix for he current Debian unstable tcl/tk 8.3
Andrew M. Kuchling <amk@amk.ca>
parents:
16447
diff
changeset
|
730 tk_includes = find_file('tk.h', inc_dirs, debian_tk_include) |
| 15940 | 731 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
732 if (tcllib is None or tklib is None and |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
733 tcl_includes is None or tk_includes is None): |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
734 # Something's missing, so give up |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
735 return |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
736 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
737 # OK... everything seems to be present for Tcl/Tk. |
| 15940 | 738 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
739 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
|
740 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
|
741 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
|
742 include_dirs.append(dir) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
743 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
744 # 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
|
745 platform = self.get_platform() |
|
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
746 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
|
747 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
|
748 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
|
749 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
|
750 include_dirs.append('/usr/X11R6/include') |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
751 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
|
752 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
|
753 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
|
754 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
|
755 else: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
756 # 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
|
757 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
|
758 added_lib_dirs.append('/usr/X11/lib') |
| 15940 | 759 |
|
19968
e9128ea45cda
[Patch #462258] On Cygwin, don't build Tkinter unless the X header files
Andrew M. Kuchling <amk@amk.ca>
parents:
19935
diff
changeset
|
760 # If Cygwin, then verify that X is installed before proceeding |
|
e9128ea45cda
[Patch #462258] On Cygwin, don't build Tkinter unless the X header files
Andrew M. Kuchling <amk@amk.ca>
parents:
19935
diff
changeset
|
761 if platform == 'cygwin': |
|
e9128ea45cda
[Patch #462258] On Cygwin, don't build Tkinter unless the X header files
Andrew M. Kuchling <amk@amk.ca>
parents:
19935
diff
changeset
|
762 x11_inc = find_file('X11/Xlib.h', [], inc_dirs) |
|
e9128ea45cda
[Patch #462258] On Cygwin, don't build Tkinter unless the X header files
Andrew M. Kuchling <amk@amk.ca>
parents:
19935
diff
changeset
|
763 if x11_inc is None: |
|
e9128ea45cda
[Patch #462258] On Cygwin, don't build Tkinter unless the X header files
Andrew M. Kuchling <amk@amk.ca>
parents:
19935
diff
changeset
|
764 # X header files missing, so give up |
|
e9128ea45cda
[Patch #462258] On Cygwin, don't build Tkinter unless the X header files
Andrew M. Kuchling <amk@amk.ca>
parents:
19935
diff
changeset
|
765 return |
|
e9128ea45cda
[Patch #462258] On Cygwin, don't build Tkinter unless the X header files
Andrew M. Kuchling <amk@amk.ca>
parents:
19935
diff
changeset
|
766 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
767 # Check for BLT extension |
| 21274 | 768 if self.compiler.find_library_file(lib_dirs + added_lib_dirs, |
| 769 'BLT8.0'): | |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
770 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
|
771 libs.append('BLT8.0') |
| 15940 | 772 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
773 # Add the Tcl/Tk libraries |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
774 libs.append('tk'+version) |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
775 libs.append('tcl'+version) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
776 |
|
16192
4fe69a9f8b30
Modified version of part of patch #102409 for Cygwin:
Andrew M. Kuchling <amk@amk.ca>
parents:
16176
diff
changeset
|
777 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
|
778 libs.append('ld') |
| 15940 | 779 |
|
18819
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
780 # 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
|
781 if platform != "cygwin": |
|
dc9baf80c45a
Patch #443669: Permit _tkinter to build on cygwin32.
Martin v. Löwis <martin@v.loewis.de>
parents:
18601
diff
changeset
|
782 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
|
783 |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
784 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
|
785 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
|
786 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
|
787 libraries = libs, |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
788 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
|
789 ) |
|
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
790 self.extensions.append(ext) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
791 |
|
15996
c503fa9b265e
Sizable reorganization of how header and library files are found
Andrew M. Kuchling <amk@amk.ca>
parents:
15970
diff
changeset
|
792 # XXX handle these, but how to detect? |
| 15940 | 793 # *** 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
|
794 # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ |
| 15940 | 795 # *** 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
|
796 # -DWITH_TOGL togl.c \ |
| 15940 | 797 # *** Uncomment these for TOGL extension only: |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
798 # -lGL -lGLU -lXext -lXmu \ |
| 15940 | 799 |
|
17886
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
800 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
|
801 # 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
|
802 # 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
|
803 # installation: |
|
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
804 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
|
805 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
|
806 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
|
807 |
| 15940 | 808 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
|
809 # 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
|
810 import warnings |
|
a1ddc4080cc5
Patch #411055 from MvL: import each extension after building it, and
Andrew M. Kuchling <amk@amk.ca>
parents:
17889
diff
changeset
|
811 warnings.filterwarnings("ignore",category=DeprecationWarning) |
| 15940 | 812 setup(name = 'Python standard library', |
|
15967
dcae3e08d848
- compile struct module
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
15961
diff
changeset
|
813 version = '%d.%d' % sys.version_info[:2], |
|
17886
0af824c88203
Fix bug #232619: fix misleading warning on installing to lib-dynload
Andrew M. Kuchling <amk@amk.ca>
parents:
17531
diff
changeset
|
814 cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall}, |
| 15940 | 815 # The struct module is defined here, because build_ext won't be |
| 816 # called unless there's at least one extension module defined. | |
| 16844 | 817 ext_modules=[Extension('struct', ['structmodule.c'])], |
| 818 | |
| 819 # Scripts to install | |
| 820 scripts = ['Tools/scripts/pydoc'] | |
| 15940 | 821 ) |
|
16201
38678cb0b3cd
the ucnhash module is no longer used
Fredrik Lundh <fredrik@pythonware.com>
parents:
16192
diff
changeset
|
822 |
| 15940 | 823 # --install-platlib |
| 824 if __name__ == '__main__': | |
| 825 sysconfig.set_python_build() | |
| 826 main() |
