[Zope-Checkins] CVS: Zope - setup.py:1.2

Shane Hathaway shane@cvs.zope.org
Tue, 7 May 2002 17:24:58 -0400


Update of /cvs-repository/Zope
In directory cvs.zope.org:/tmp/cvs-serv4380

Added Files:
	setup.py 
Log Message:
Merged distutils-config-branch.


=== Zope/setup.py 1.1 => 1.2 ===
+##############################################################################
+#
+# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE
+#
+##############################################################################
+'''Distutils setup file for Zope
+
+Common usage: python setup.py build_ext --build-lib `pwd`/lib/python
+'''
+
+import os
+import sys
+
+from distutils.core import setup, run_setup
+from distutils.extension import Extension
+
+
+SETUP_BERKELEY = 0
+SETUP_ZEO = 0
+SETUP_OLD_BTREE = 1
+SETUP_CACCESSCONTROL = 1
+SETUP_DCPYEXPAT = 1
+SETUP_SPLITTERS = 1
+
+
+# a few constants
+zope_corp = "Zope Corporation"
+zodb_email = "zodb-dev@zope.org"
+zodb_wiki = "http://www.zope.org/Wikis/ZODB/FrontPage"
+
+top_dir = os.path.abspath(os.getcwd())
+ec_root = os.path.join(top_dir, 'lib', 'Components', 'ExtensionClass')
+ec_src = os.path.join(ec_root, 'src')
+py_root = os.path.join(top_dir, 'lib', 'python')
+ec_include = [ec_src]
+
+# ExtensionClass
+os.chdir(ec_root)
+dist = run_setup('setup.py', script_args=sys.argv[1:], stop_after="run")
+os.chdir(py_root)
+
+# ZODB
+cPersistence = Extension(name = 'ZODB.cPersistence',
+                         include_dirs = ec_include,
+                         sources= ['ZODB/cPersistence.c']
+                         )
+
+cPickleCache = Extension(name = 'ZODB.cPickleCache',
+                         include_dirs = ec_include,
+                         sources= ['ZODB/cPickleCache.c']
+                         )
+
+TimeStamp = Extension(name = 'ZODB.TimeStamp',
+                      define_macros = [('USE_EXTENSION_CLASS', 1)],
+                      include_dirs = ec_include,
+                      sources= ['ZODB/TimeStamp.c']
+                      )
+
+coptimizations = Extension(name = 'ZODB.coptimizations',
+                           include_dirs = ec_include,
+                           sources= ['ZODB/coptimizations.c']
+                           )
+
+winlock = Extension(name = 'ZODB.winlock',
+                    include_dirs = ec_include,
+                    sources = ['ZODB/winlock.c']
+                    )
+
+setup(name="ZODB",
+      version="3.1",
+      description = "Z Object Database persistence system",
+      author = zope_corp,
+      author_email = zodb_email,
+      url = zodb_wiki,
+
+      packages=['ZODB', 'ZODB.tests'],
+      
+      ext_modules = [cPersistence, cPickleCache, TimeStamp,
+                     coptimizations, winlock],
+      headers = ["ZODB/cPersistence.h"]
+      )
+
+
+if SETUP_ZEO:
+    setup(name = "ZEO", 
+      version = "0.4.1",
+      description = "Zope Enterprise Objects",
+      author = zope_corp,
+      author_email = zodb_email,
+      url = zodb_wiki,
+
+      packages = ['ZEO', 'ZEO.tests'],
+      )
+
+
+if SETUP_BERKELEY:
+    # Berkeley storages
+    setup(name="bsddb3Storage",
+      description="ZODB storages based on Berkeley DB",
+      author = zope_corp,
+      author_email = zodb_email,
+      url = zodb_wiki,
+      package_dir = {'bsddb3Storage': 'bsddb3Storage/bsddb3Storage'},
+      packages = ["bsddb3Storage", "bsddb3Storage.tests"],
+      )
+
+
+if SETUP_OLD_BTREE:
+    old_btree_root = os.path.join(top_dir, 'lib', 'Components', 'BTree')
+    old_btree_include = ec_include + ['ZODB']
+
+    old_btree_modules = []
+    for name in 'BTree', 'IIBTree', 'IOBTree', 'OIBTree', 'intSet':
+        ext = Extension(name=name,
+                        include_dirs=old_btree_include,
+                        sources=[os.path.join(old_btree_root, '%s.c' % name)])
+        old_btree_modules.append(ext)
+
+    setup(name = "BTree",
+          version = "?",
+          description = "BTree package (for backward compatibility)",
+          maintainer = "Zope Corporation",
+          maintainer_email = "zope@zope.org",
+          url = "http://www.zope.org",
+
+          ext_modules = old_btree_modules,
+          headers = [os.path.join(old_btree_root, "intSet.h")],
+          )
+
+
+# BTrees
+
+btree_include = ec_include + ['ZODB']
+
+oob = Extension(name = "BTrees._OOBTree",
+                include_dirs = btree_include,
+                sources = ['BTrees/_OOBTree.c'],
+                )
+
+oib = Extension(name = "BTrees._OIBTree",
+                include_dirs = btree_include,
+                sources = ['BTrees/_OIBTree.c'],
+                )
+
+iib = Extension(name = "BTrees._IIBTree",
+                include_dirs = btree_include,
+                sources = ['BTrees/_IIBTree.c'],
+                define_macros = [('EXCLUDE_INTSET_SUPPORT', None)],
+                )
+
+iob = Extension(name = "BTrees._IOBTree",
+                include_dirs = btree_include,
+                sources = ['BTrees/_IOBTree.c'],
+                define_macros = [('EXCLUDE_INTSET_SUPPORT', None)],
+                )
+
+fsb = Extension(name = "BTrees._fsBTree",
+                include_dirs = btree_include,
+                sources = ['BTrees/_fsBTree.c'],
+                define_macros = [('EXCLUDE_INTSET_SUPPORT', None)],
+                )
+
+setup(name="BTrees",
+      version="?",
+      packages=["BTrees", "BTrees.tests"],
+      ext_modules=[oob, oib, iib, iob, fsb],
+      author=zope_corp,
+      )
+
+
+# DocumentTemplate
+
+cdoctemp_ext = Extension(name = "DocumentTemplate.cDocumentTemplate",
+                         include_dirs = ec_include,
+                         sources = ['DocumentTemplate/cDocumentTemplate.c'],
+                         )
+
+setup(name="DocumentTemplate",
+      version="?",
+      packages=["DocumentTemplate", "DocumentTemplate.tests"],
+      ext_modules=[cdoctemp_ext],
+      author=zope_corp,
+      )
+
+
+# cAccessControl
+
+if SETUP_CACCESSCONTROL:
+    cactl_ext = Extension(name="AccessControl.cAccessControl",
+                          include_dirs=ec_include,
+                          sources=['AccessControl/cAccessControl.c'],
+                          )
+
+    setup(name="AccessControl",
+          version="?",
+          packages=["AccessControl", "AccessControl.tests"],
+          ext_modules=[cactl_ext],
+          author=zope_corp,
+          )
+
+# dcpyexpat
+
+if SETUP_DCPYEXPAT:
+    pyexpat_root = os.path.join(py_root, 'Shared', 'DC', 'xml', 'pyexpat')
+    dcpyexpat_incl = [os.path.join(pyexpat_root, 'expat', 'xmlparse'),
+                      os.path.join(pyexpat_root, 'expat', 'xmltok')]
+    pfx = pyexpat_root + '/'
+
+    dcpyexpat_ext = Extension(name='Shared.DC.xml.dcpyexpat',
+                              include_dirs=dcpyexpat_incl,
+                              define_macros = [('XML_NS',1)],
+                              sources=[pfx + 'expat/xmlparse/xmlparse.c',
+                                       pfx + 'expat/xmlparse/hashtable.c',
+                                       pfx + 'expat/xmltok/xmlrole.c',
+                                       pfx + 'expat/xmltok/xmltok.c',
+                                       pfx + 'dcpyexpat.c',
+                                       ]
+                              )
+
+    setup(name="dcpyexpat",
+          version="?",
+          packages=["Shared.DC.xml"],
+          ext_modules=[dcpyexpat_ext],
+          author=zope_corp,
+          headers=[pfx + 'expat/xmlparse/xmlparse.h',
+                   pfx + 'expat/xmlparse/hashtable.h',
+                   pfx + 'expat/xmltok/nametab.h',
+                   pfx + 'expat/xmltok/iasciitab.h',
+                   pfx + 'expat/xmltok/xmltok.h',
+                   pfx + 'expat/xmltok/asciitab.h',
+                   pfx + 'expat/xmltok/xmldef.h',
+                   pfx + 'expat/xmltok/xmltok_impl.h',
+                   pfx + 'expat/xmltok/xmlrole.h',
+                   pfx + 'expat/xmltok/utf8tab.h',
+                   pfx + 'expat/xmltok/latin1tab.h',
+                   ],
+          )
+
+
+# Splitter for ZCatalog
+if SETUP_SPLITTERS:
+    prefix1 = 'Products/PluginIndexes/TextIndex/Splitter/'
+    prefix2 = prefix1.replace('/', '.')
+    ext_modules = [
+        Extension(prefix2 + "ZopeSplitter.ZopeSplitter",
+                  [prefix1 + 'ZopeSplitter/src/ZopeSplitter.c']),
+        Extension(prefix2 + "ISO_8859_1_Splitter.ISO_8859_1_Splitter",
+                  [prefix1 + 'ISO_8859_1_Splitter/src/ISO_8859_1_Splitter.c']),
+        Extension(prefix2 + "UnicodeSplitter.UnicodeSplitter",
+                  [prefix1 + 'UnicodeSplitter/src/UnicodeSplitter.c']),
+        ]
+
+    setup(name="Splitter",
+          version="1.0",
+          description="Splitters for Zope 2.5",
+          author="Andreas Jung",
+          author_email="andreas@zope.com",
+          url="http://www.zope.org/...",
+          ext_modules=ext_modules,
+          packages=['Products.PluginIndexes.TextIndex.Splitter']
+          )
+
+
+# Lib -- misc. support files
+# This might be expanded with other Zope packages.
+setup(name = "Other libraries",
+      packages = ["Persistence",
+                  "ThreadedAsync",
+                  "zLOG", "zLOG.tests",
+                  "zdaemon",
+                  ]
+      )
+
+os.chdir(top_dir)
+