From 7b9a386ef9bb306f39fbe55dc252c52a52001e81 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Thu, 19 Jun 2003 22:44:57 +0000 Subject: [PATCH] MacPython-2.3 has progressed so far that building a set of Mac 2.3 extensions on top of Python 2.2 no longer seems feasible. --- Mac/OSX/Makefile.jaguar | 105 ---------------------------------------- Mac/OSX/README.JAGUAR | 62 ------------------------ Mac/OSX/setup.jaguar.py | 85 -------------------------------- 3 files changed, 252 deletions(-) delete mode 100644 Mac/OSX/Makefile.jaguar delete mode 100644 Mac/OSX/README.JAGUAR delete mode 100644 Mac/OSX/setup.jaguar.py diff --git a/Mac/OSX/Makefile.jaguar b/Mac/OSX/Makefile.jaguar deleted file mode 100644 index 3510b727249..00000000000 --- a/Mac/OSX/Makefile.jaguar +++ /dev/null @@ -1,105 +0,0 @@ -# This Makefile, which should be run from the current directory, will build -# a MacPython based on the /usr/bin/python installed by Apple as of 10.2. - -VERSION=2.2 - -builddir = ../.. -srcdir = ../.. -dstroot=/. -PYTHONAPPSPATH=/Applications/MacPython-OSX-$(VERSION) -PYTHONAPPSDIR=$(dstroot)$(PYTHONAPPSPATH) -prefix=/usr - -# These are normally computed form the previous ones -osxdir=$(srcdir)/Mac/OSX -PYTHON=$(prefix)/bin/python -pythonw=$(prefix)/bin/pythonw -LIBDEST=$(prefix)/lib/python$(VERSION) -datadir=$(PYTHONAPPSDIR)/python-additions -MACLIBDEST=$(datadir)/Lib -MACDYNLIBDEST=$(datadir)/lib-dynload -MACTOOLSDEST=$(datadir)/Tools -APPNAME=Python -APPBUNDLENAME=$(APPNAME).app -INSTALLED_PYTHONW=$(datadir)/$(APPBUNDLENAME)/Contents/MacOS/$(APPNAME) - -# The usual stuff -DIRMODE=755 -INSTALL=/usr/bin/install -c -INSTALL_SYMLINK=ln -fs -INSTALL_PROGRAM=${INSTALL} -INSTALL_SCRIPT= ${INSTALL_PROGRAM} -INSTALL_DATA= ${INSTALL} -m 644 - -# These can be done as a normal user -install: preflight install_dirs install_dynlib install_lib \ - install_Python install_IDE install_IDLE install_BuildApplet \ - install_PythonLauncher install_pythonw - -preflight: - @if test ! -w $(LIBDEST)/site-packages; then \ - echo Please make directory $(LIBDEST)/site-packages writeable; \ - exit 1; \ - fi - @if grep "arch i386" $(LIBDEST)/config/Makefile >/dev/null; then \ - echo Please edit $(LIBDEST)/config/Makefile, see README.JAGUAR; \ - exit 1; \ - fi - -install_dirs: - $(INSTALL) -d -m $(DIRMODE) $(PYTHONAPPSDIR) - $(INSTALL) -d -m $(DIRMODE) $(datadir) - $(INSTALL) -d -m $(DIRMODE) $(MACDYNLIBDEST) - -install_lib: Mac.jaguar.pth - $(MAKE) -f $(osxdir)/Makefile installmacsubtree \ - LIBDEST=$(LIBDEST) MACLIBDEST=$(MACLIBDEST) MACTOOLSDEST=$(MACTOOLSDEST) \ - builddir=$(builddir) srcdir=$(srcdir) PTHFILE=Mac.jaguar.pth \ - PYTHON=$(PYTHON) compileall=$(LIBDEST)/compileall.py - -Mac.jaguar.pth: - echo $(MACLIBDEST) > Mac.jaguar.pth - echo $(MACDYNLIBDEST) >> Mac.jaguar.pth -## echo "import macresource; macresource.open_error_resource()" >> Mac.jaguar.pth - -install_dynlib: - $(PYTHON) $(osxdir)/setup.jaguar.py install --install-lib=$(MACDYNLIBDEST) - touch $(MACDYNLIBDEST)/OverrideFrom23/__init__.py - -install_Python: - $(PYTHON) $(srcdir)/Mac/Lib/bundlebuilder.py -q --link-exec \ - -b $(datadir) \ - -n $(APPBUNDLENAME) \ - -r $(srcdir)/Mac/OSXResources/app/Resources/Applet-Info.plist \ - -r $(srcdir)/Mac/OSXResources/app/Resources/PythonApplet.icns \ - -e $(PYTHON) \ - build - -install_IDE: - $(MAKE) -f $(osxdir)/Makefile install_IDE \ - srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \ - PYTHONAPPSDIR=$(PYTHONAPPSDIR) - -install_IDLE: - $(MAKE) -f $(osxdir)/Makefile install_IDLE \ - srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \ - PYTHONAPPSDIR=$(PYTHONAPPSDIR) - -install_BuildApplet: - $(MAKE) -f $(osxdir)/Makefile install_BuildApplet \ - srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \ - PYTHONAPPSDIR=$(PYTHONAPPSDIR) - -install_PythonLauncher: - $(MAKE) -f $(osxdir)/Makefile install_PythonLauncher \ - srcdir=$(srcdir) dstroot=$(dstroot) \ - PYTHONAPPSPATH=$(PYTHONAPPSPATH) - -install_pythonw: - @if test ! -w $(prefix)/bin; then \ - echo Cannot write to $(prefix)/bin, use \"sudo make -f Makefile.jaguar install_pythonw\"; \ - exit 1; \ - fi - echo "#!/bin/sh" > pythonw.sh - echo "exec \"$(INSTALLED_PYTHONW)\" \"\$$@\"" >> pythonw.sh - $(INSTALL) pythonw.sh $(prefix)/bin/pythonw diff --git a/Mac/OSX/README.JAGUAR b/Mac/OSX/README.JAGUAR deleted file mode 100644 index f92326f0f1d..00000000000 --- a/Mac/OSX/README.JAGUAR +++ /dev/null @@ -1,62 +0,0 @@ -Building a MacPython-OSX on top of Jaguar's /usr/bin/python ------------------------------------------------------------ - -One way of getting MacPython functionality is to use the Python that Apple -supplies since MacOSX 10.2, and extend this with the missing bits. - -(Another way is building a framework python, see Mac/OSX/README for -details on that). - -Preparation ------------ - -First of all you have to fix two things in the python distributed -by Apple. This paragraph is valid for 10.2 through 10.2.2, so if you -have a later version of Jaguar your mileage may vary. - -1. /usr/lib/python2.2/config/Makefile has an erronuous reference to - building for intel processors. Edit the file with sudo, and change - the line - LDFLAGS= -arch i386 -arch ppc - to - LDFLAGS= -arch ppc -2. /usr/lib/python2.2/site-packages is not writeable except by root. - Make it writeable by administrators by doing - sudo chgrp admin /usr/lib/python2.2/site-packages - sudo chmod g+w /usr/lib/python2.2/site-packages - Alternatively you can do the make's below as superuser, but I - would advise against this. - -Building --------- - -Typing "make -f Makefile.jaguar" will build and install almost everything you need. -If you also want the "pythonw" unix program, which allows you to run GUI scripts from -a Terminal window, you should also do "sudo make -f Makefile.jaguar install_pythonw". - -What do you get ---------------- - -After the make you will have a folder /Applications/MacPython-OSX that contains the -IDE and BuildApplet applications. Also, you will find a folder "python-additions" there -that contains the MacPython-specific additions to your installed Python. The only thing -that is installed outside the /Applications/MacPython-OSX folder is -/usr/lib/python2.2/site-packages/MacPython.pth, which is the magic file that will make -python find the new modules. - -Uninstalling ------------- -1. Remove /Applications/MacPython-OSX -2. Remove /usr/lib/python2.2/site-packages/MacPython.pth - -How does it work? ------------------ - -Makefile.jaguar does most of the work by calling on Makefile (which is normally used -to build the Mac extensions for a framework-based python) after setting various -variables such that everything is built for /usr/bin/python. Some extension modules -(that are included in framework python 2.3a0, but missing from static python 2.2) -are built with setup.py. And some Carbon modules are built to replace their 2.2 -versions, which lack required functionality. The stubs in Mac/Lib/Carbon know about -this overriding. - diff --git a/Mac/OSX/setup.jaguar.py b/Mac/OSX/setup.jaguar.py deleted file mode 100644 index 2178899c4af..00000000000 --- a/Mac/OSX/setup.jaguar.py +++ /dev/null @@ -1,85 +0,0 @@ -from distutils.core import Extension, setup -from distutils import sysconfig -import os - -SRCDIR="../.." - -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.2", - ext_modules=[ - Extension("OverrideFrom23._AE", - [SRCDIR + "/Mac/Modules/ae/_AEmodule.c"], - include_dirs=[SRCDIR+"/Mac/Include"], - extra_link_args=['-framework', 'Carbon']), - Extension("OverrideFrom23._Res", - [SRCDIR + "/Mac/Modules/res/_Resmodule.c"], - include_dirs=[SRCDIR+"/Mac/Include"], - extra_link_args=['-framework', 'Carbon']), - Extension('_Help', - [SRCDIR + '/Mac/Modules/help/_Helpmodule.c'], - include_dirs=[SRCDIR+"/Mac/Include"], - extra_link_args=['-framework', 'Carbon']), - Extension('_Scrap', - [SRCDIR + '/Mac/Modules/scrap/_Scrapmodule.c'], - include_dirs=[SRCDIR+"/Mac/Include"], - extra_link_args=['-framework', 'Carbon']), - ] + - waste_Extension() - ) \ No newline at end of file