]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
A makefile and setup script to create the bits that are part of
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 29 Aug 2003 22:46:25 +0000 (22:46 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 29 Aug 2003 22:46:25 +0000 (22:46 +0000)
MacPython but not of Apple's Panther distribution: the waste module,
the IDE and BuildApplet applets.

Mac/OSX/Makefile.panther [new file with mode: 0644]
Mac/OSX/setup.panther.py [new file with mode: 0644]

diff --git a/Mac/OSX/Makefile.panther b/Mac/OSX/Makefile.panther
new file mode 100644 (file)
index 0000000..985a88d
--- /dev/null
@@ -0,0 +1,49 @@
+# This Makefile is to be used *only* on Panther.
+# It installs the things that are available in MacPython but that are
+# ommitted from Apple's installation of Python 2.3.
+#
+all: install_waste install_IDE install_PackageManager install_IDLE \
+       install_BuildApplet installextras install_PythonLauncher
+
+VERSION=2.3
+DESTDIR=
+PYTHONAPPSDIR=/Applications/MacPython-$(VERSION)
+
+APPLE_prefix=/System/Library/Frameworks/Python.framework/Versions/$(VERSION)
+APPLE_PYTHON=/usr/bin/python$(VERSION)
+APPLE_LIBDEST=$(APPLE_prefix)/lib/python$(VERSION)
+APPLE_PYTHONW=$(APPLE_prefix)/Resources/Python.app/Contents/MacOS/Python
+APPLE_PYTHONLAUNCHER=$(APPLE_prefix)/Resources/PythonLauncher.app
+
+install_waste:
+       $(APPLE_PYTHON) setup.panther.py install \
+               --prefix=$(APPLE_prefix) --root=/$(DESTDIR)
+       
+install_IDE:
+       $(MAKE) -f Makefile install_IDE \
+               BUILDPYTHON=$(APPLE_PYTHON) INSTALLED_PYTHONW=$(APPLE_PYTHONW) \
+               DESTDIR=$(DESTDIR) PYTHONAPPSDIR=$(PYTHONAPPSDIR)
+
+install_PackageManager:
+       $(MAKE) -f Makefile install_PackageManager \
+               BUILDPYTHON=$(APPLE_PYTHON) INSTALLED_PYTHONW=$(APPLE_PYTHONW) \
+               DESTDIR=$(DESTDIR) PYTHONAPPSDIR=$(PYTHONAPPSDIR)
+
+install_IDLE:
+       $(MAKE) -f Makefile install_IDLE \
+               BUILDPYTHON=$(APPLE_PYTHON) INSTALLED_PYTHONW=$(APPLE_PYTHONW) \
+               DESTDIR=$(DESTDIR) PYTHONAPPSDIR=$(PYTHONAPPSDIR)
+
+install_BuildApplet:
+       $(MAKE) -f Makefile install_BuildApplet \
+               BUILDPYTHON=$(APPLE_PYTHON) INSTALLED_PYTHONW=$(APPLE_PYTHONW) \
+               DESTDIR=$(DESTDIR) PYTHONAPPSDIR=$(PYTHONAPPSDIR)
+
+installextras:
+       $(MAKE) -f Makefile installextras \
+               BUILDPYTHON=$(APPLE_PYTHON) INSTALLED_PYTHONW=$(APPLE_PYTHONW) \
+               DESTDIR=$(DESTDIR) PYTHONAPPSDIR=$(PYTHONAPPSDIR)
+
+install_PythonLauncher:
+       ln -fsn $(APPLE_PYTHONLAUNCHER) $(DESTDIR)$(PYTHONAPPSDIR)/PythonLauncher
+       
\ No newline at end of file
diff --git a/Mac/OSX/setup.panther.py b/Mac/OSX/setup.panther.py
new file mode 100644 (file)
index 0000000..6d494b6
--- /dev/null
@@ -0,0 +1,67 @@
+from distutils.core import Extension, setup
+from distutils import sysconfig
+import os
+
+SRCDIR=os.path.realpath(os.path.join(os.getcwd(), "../.."))
+
+def find_file(filename, std_dirs, paths):
+    """Searches for the directory where a given file is located,
+    and returns a possibly-empty list of additional directories, or None
+    if the file couldn't be found at all.
+
+    'filename' is the name of a file, such as readline.h or libcrypto.a.
+    'std_dirs' is the list of standard system directories; if the
+        file is found in one of them, no additional directives are needed.
+    'paths' is a list of additional locations to check; if the file is
+        found in one of them, the resulting list will contain the directory.
+    """
+
+    # Check the standard locations
+    for dir in std_dirs:
+        f = os.path.join(dir, filename)
+        if os.path.exists(f): return []
+
+    # Check the additional directories
+    for dir in paths:
+        f = os.path.join(dir, filename)
+        if os.path.exists(f):
+            return [dir]
+
+    # Not found anywhere
+    return None
+
+def find_library_file(compiler, libname, std_dirs, paths):
+    filename = compiler.library_filename(libname, lib_type='shared')
+    result = find_file(filename, std_dirs, paths)
+    if result is not None: return result
+
+    filename = compiler.library_filename(libname, lib_type='static')
+    result = find_file(filename, std_dirs, paths)
+    return result
+    
+def waste_Extension():
+    waste_incs = find_file("WASTE.h", [], 
+            ['../'*n + 'waste/C_C++ Headers' for n in (0,1,2,3,4)])
+    if waste_incs != None:
+        waste_libs = [os.path.join(os.path.split(waste_incs[0])[0], "Static Libraries")]
+        srcdir = SRCDIR
+        return [ Extension('waste',
+                       [os.path.join(srcdir, d) for d in 
+                        'Mac/Modules/waste/wastemodule.c',
+                        'Mac/Wastemods/WEObjectHandlers.c',
+                        'Mac/Wastemods/WETabHooks.c',
+                        'Mac/Wastemods/WETabs.c'
+                       ],
+                       include_dirs = waste_incs + [
+                        os.path.join(srcdir, 'Mac/Include'),
+                        os.path.join(srcdir, 'Mac/Wastemods')
+                       ],
+                       library_dirs = waste_libs,
+                       libraries = ['WASTE'],
+                       extra_link_args = ['-framework', 'Carbon'],
+        ) ]
+    return []
+
+setup(name="MacPython for Jaguar extensions", version="2.3",
+    ext_modules=waste_Extension()
+    )
\ No newline at end of file