summaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2008-06-11 02:40:25 (GMT)
committerBenjamin Peterson <benjamin@python.org>2008-06-11 02:40:25 (GMT)
commit190d56e00990eadce8ad1b7d1785016cc109db7b (patch)
treeef143cf28648baf9fe708640f67586f14273a0ff /setup.py
parentd5299866f95f1e74255312444176280494d2782a (diff)
downloadcpython-190d56e00990eadce8ad1b7d1785016cc109db7b.zip
cpython-190d56e00990eadce8ad1b7d1785016cc109db7b.tar.gz
cpython-190d56e00990eadce8ad1b7d1785016cc109db7b.tar.bz2
add the multiprocessing package to fulfill PEP 371
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index 44bebab..87a5594 100644
--- a/setup.py
+++ b/setup.py
@@ -1236,6 +1236,58 @@ class PyBuildExt(build_ext):
# Thomas Heller's _ctypes module
self.detect_ctypes(inc_dirs, lib_dirs)
+ # Richard Oudkerk's multiprocessing module
+ if platform == 'win32': # Windows
+ macros = dict()
+ libraries = ['ws2_32']
+
+ elif platform == 'darwin': # Mac OSX
+ macros = dict(
+ HAVE_SEM_OPEN=1,
+ HAVE_SEM_TIMEDWAIT=0,
+ HAVE_FD_TRANSFER=1,
+ HAVE_BROKEN_SEM_GETVALUE=1
+ )
+ libraries = []
+
+ elif platform == 'cygwin': # Cygwin
+ macros = dict(
+ HAVE_SEM_OPEN=1,
+ HAVE_SEM_TIMEDWAIT=1,
+ HAVE_FD_TRANSFER=0,
+ HAVE_BROKEN_SEM_UNLINK=1
+ )
+ libraries = []
+ else: # Linux and other unices
+ macros = dict(
+ HAVE_SEM_OPEN=1,
+ HAVE_SEM_TIMEDWAIT=1,
+ HAVE_FD_TRANSFER=1
+ )
+ libraries = ['rt']
+
+ if platform == 'win32':
+ multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c',
+ '_multiprocessing/semaphore.c',
+ '_multiprocessing/pipe_connection.c',
+ '_multiprocessing/socket_connection.c',
+ '_multiprocessing/win32_functions.c'
+ ]
+
+ else:
+ multiprocessing_srcs = [ '_multiprocessing/multiprocessing.c',
+ '_multiprocessing/socket_connection.c'
+ ]
+
+ if macros.get('HAVE_SEM_OPEN', False):
+ multiprocessing_srcs.append('_multiprocessing/semaphore.c')
+
+ exts.append ( Extension('_multiprocessing', multiprocessing_srcs,
+ define_macros=macros.items(),
+ include_dirs=["Modules/_multiprocessing"]))
+ # End multiprocessing
+
+
# Platform-specific libraries
if platform == 'linux2':
# Linux-specific modules