Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 1 | # This Makefile, which should be run from the current directory, will build |
| 2 | # a MacPython based on the /usr/bin/python installed by Apple as of 10.2. |
| 3 | |
| 4 | VERSION=2.2 |
| 5 | |
| 6 | builddir = ../.. |
| 7 | srcdir = ../.. |
| 8 | dstroot=/. |
Jack Jansen | cfe2836 | 2002-12-25 22:31:28 +0000 | [diff] [blame] | 9 | PYTHONAPPSPATH=/Applications/MacPython-OSX-$(VERSION) |
Jack Jansen | 1ebcc44 | 2002-11-20 14:06:16 +0000 | [diff] [blame] | 10 | PYTHONAPPSDIR=$(dstroot)$(PYTHONAPPSPATH) |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 11 | prefix=/usr |
| 12 | |
| 13 | # These are normally computed form the previous ones |
| 14 | osxdir=$(srcdir)/Mac/OSX |
| 15 | PYTHON=$(prefix)/bin/python |
| 16 | pythonw=$(prefix)/bin/pythonw |
| 17 | LIBDEST=$(prefix)/lib/python$(VERSION) |
| 18 | datadir=$(PYTHONAPPSDIR)/python-additions |
| 19 | MACLIBDEST=$(datadir)/Lib |
| 20 | MACDYNLIBDEST=$(datadir)/lib-dynload |
| 21 | MACTOOLSDEST=$(datadir)/Tools |
Just van Rossum | db2a0f6 | 2002-11-22 11:52:15 +0000 | [diff] [blame] | 22 | APPNAME=Python |
| 23 | APPBUNDLENAME=$(APPNAME).app |
| 24 | INSTALLED_PYTHONW=$(datadir)/$(APPBUNDLENAME)/Contents/MacOS/$(APPNAME) |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 25 | |
| 26 | # The usual stuff |
| 27 | DIRMODE=755 |
| 28 | INSTALL=/usr/bin/install -c |
| 29 | INSTALL_SYMLINK=ln -fs |
| 30 | INSTALL_PROGRAM=${INSTALL} |
| 31 | INSTALL_SCRIPT= ${INSTALL_PROGRAM} |
| 32 | INSTALL_DATA= ${INSTALL} -m 644 |
| 33 | |
Jack Jansen | 1ebcc44 | 2002-11-20 14:06:16 +0000 | [diff] [blame] | 34 | # These can be done as a normal user |
| 35 | install: preflight install_dirs install_dynlib install_lib \ |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 36 | install_Python install_IDE install_IDLE install_BuildApplet \ |
Jack Jansen | 1ebcc44 | 2002-11-20 14:06:16 +0000 | [diff] [blame] | 37 | install_PythonLauncher install_pythonw |
| 38 | |
| 39 | preflight: |
| 40 | @if test ! -w $(LIBDEST)/site-packages; then \ |
| 41 | echo Please make directory $(LIBDEST)/site-packages writeable; \ |
| 42 | exit 1; \ |
| 43 | fi |
| 44 | @if grep "arch i386" $(LIBDEST)/config/Makefile >/dev/null; then \ |
| 45 | echo Please edit $(LIBDEST)/config/Makefile, see README.JAGUAR; \ |
| 46 | exit 1; \ |
| 47 | fi |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 48 | |
| 49 | install_dirs: |
| 50 | $(INSTALL) -d -m $(DIRMODE) $(PYTHONAPPSDIR) |
| 51 | $(INSTALL) -d -m $(DIRMODE) $(datadir) |
| 52 | $(INSTALL) -d -m $(DIRMODE) $(MACDYNLIBDEST) |
| 53 | |
| 54 | install_lib: Mac.jaguar.pth |
| 55 | $(MAKE) -f $(osxdir)/Makefile installmacsubtree \ |
| 56 | LIBDEST=$(LIBDEST) MACLIBDEST=$(MACLIBDEST) MACTOOLSDEST=$(MACTOOLSDEST) \ |
| 57 | builddir=$(builddir) srcdir=$(srcdir) PTHFILE=Mac.jaguar.pth \ |
| 58 | PYTHON=$(PYTHON) compileall=$(LIBDEST)/compileall.py |
| 59 | |
| 60 | Mac.jaguar.pth: |
| 61 | echo $(MACLIBDEST) > Mac.jaguar.pth |
| 62 | echo $(MACDYNLIBDEST) >> Mac.jaguar.pth |
| 63 | ## echo "import macresource; macresource.open_error_resource()" >> Mac.jaguar.pth |
| 64 | |
| 65 | install_dynlib: |
| 66 | $(PYTHON) $(osxdir)/setup.jaguar.py install --install-lib=$(MACDYNLIBDEST) |
| 67 | touch $(MACDYNLIBDEST)/OverrideFrom23/__init__.py |
| 68 | |
| 69 | install_Python: |
Just van Rossum | db2a0f6 | 2002-11-22 11:52:15 +0000 | [diff] [blame] | 70 | $(PYTHON) $(srcdir)/Mac/Lib/bundlebuilder.py -q --link-exec \ |
| 71 | -b $(datadir) \ |
| 72 | -n $(APPBUNDLENAME) \ |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 73 | -r $(srcdir)/Mac/OSXResources/app/Resources/Applet-Info.plist \ |
| 74 | -r $(srcdir)/Mac/OSXResources/app/Resources/PythonApplet.icns \ |
Just van Rossum | db2a0f6 | 2002-11-22 11:52:15 +0000 | [diff] [blame] | 75 | -e $(PYTHON) \ |
| 76 | build |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 77 | |
| 78 | install_IDE: |
| 79 | $(MAKE) -f $(osxdir)/Makefile install_IDE \ |
| 80 | srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \ |
| 81 | PYTHONAPPSDIR=$(PYTHONAPPSDIR) |
| 82 | |
| 83 | install_IDLE: |
| 84 | $(MAKE) -f $(osxdir)/Makefile install_IDLE \ |
| 85 | srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \ |
| 86 | PYTHONAPPSDIR=$(PYTHONAPPSDIR) |
| 87 | |
| 88 | install_BuildApplet: |
| 89 | $(MAKE) -f $(osxdir)/Makefile install_BuildApplet \ |
| 90 | srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \ |
| 91 | PYTHONAPPSDIR=$(PYTHONAPPSDIR) |
| 92 | |
Jack Jansen | 1ebcc44 | 2002-11-20 14:06:16 +0000 | [diff] [blame] | 93 | install_PythonLauncher: |
| 94 | $(MAKE) -f $(osxdir)/Makefile install_PythonLauncher \ |
| 95 | srcdir=$(srcdir) dstroot=$(dstroot) \ |
| 96 | PYTHONAPPSPATH=$(PYTHONAPPSPATH) |
| 97 | |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 98 | install_pythonw: |
Jack Jansen | 1ebcc44 | 2002-11-20 14:06:16 +0000 | [diff] [blame] | 99 | @if test ! -w $(prefix)/bin; then \ |
| 100 | echo Cannot write to $(prefix)/bin, use \"sudo make -f Makefile.jaguar install_pythonw\"; \ |
| 101 | exit 1; \ |
| 102 | fi |
Jack Jansen | 26e6be3 | 2002-11-15 00:13:33 +0000 | [diff] [blame] | 103 | echo "#!/bin/sh" > pythonw.sh |
| 104 | echo "exec \"$(INSTALLED_PYTHONW)\" \"\$$@\"" >> pythonw.sh |
| 105 | $(INSTALL) pythonw.sh $(prefix)/bin/pythonw |