| # 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 |
| 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 |