From: Jack Jansen Date: Fri, 29 Aug 2003 22:46:25 +0000 (+0000) Subject: A makefile and setup script to create the bits that are part of X-Git-Tag: v2.3.1~124 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aa4fef593c29f9ef0c2b2c4690ef9bc3d9dde32d;p=thirdparty%2FPython%2Fcpython.git A makefile and setup script to create the bits that are part of MacPython but not of Apple's Panther distribution: the waste module, the IDE and BuildApplet applets. --- diff --git a/Mac/OSX/Makefile.panther b/Mac/OSX/Makefile.panther new file mode 100644 index 000000000000..985a88d47b5f --- /dev/null +++ b/Mac/OSX/Makefile.panther @@ -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 index 000000000000..6d494b69552a --- /dev/null +++ b/Mac/OSX/setup.panther.py @@ -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