blob: 3510b727249fdafbcb050c56f7c46fe639ca876e [file] [log] [blame]
Jack Jansen26e6be32002-11-15 00:13:33 +00001# 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
4VERSION=2.2
5
6builddir = ../..
7srcdir = ../..
8dstroot=/.
Jack Jansencfe28362002-12-25 22:31:28 +00009PYTHONAPPSPATH=/Applications/MacPython-OSX-$(VERSION)
Jack Jansen1ebcc442002-11-20 14:06:16 +000010PYTHONAPPSDIR=$(dstroot)$(PYTHONAPPSPATH)
Jack Jansen26e6be32002-11-15 00:13:33 +000011prefix=/usr
12
13# These are normally computed form the previous ones
14osxdir=$(srcdir)/Mac/OSX
15PYTHON=$(prefix)/bin/python
16pythonw=$(prefix)/bin/pythonw
17LIBDEST=$(prefix)/lib/python$(VERSION)
18datadir=$(PYTHONAPPSDIR)/python-additions
19MACLIBDEST=$(datadir)/Lib
20MACDYNLIBDEST=$(datadir)/lib-dynload
21MACTOOLSDEST=$(datadir)/Tools
Just van Rossumdb2a0f62002-11-22 11:52:15 +000022APPNAME=Python
23APPBUNDLENAME=$(APPNAME).app
24INSTALLED_PYTHONW=$(datadir)/$(APPBUNDLENAME)/Contents/MacOS/$(APPNAME)
Jack Jansen26e6be32002-11-15 00:13:33 +000025
26# The usual stuff
27DIRMODE=755
28INSTALL=/usr/bin/install -c
29INSTALL_SYMLINK=ln -fs
30INSTALL_PROGRAM=${INSTALL}
31INSTALL_SCRIPT= ${INSTALL_PROGRAM}
32INSTALL_DATA= ${INSTALL} -m 644
33
Jack Jansen1ebcc442002-11-20 14:06:16 +000034# These can be done as a normal user
35install: preflight install_dirs install_dynlib install_lib \
Jack Jansen26e6be32002-11-15 00:13:33 +000036 install_Python install_IDE install_IDLE install_BuildApplet \
Jack Jansen1ebcc442002-11-20 14:06:16 +000037 install_PythonLauncher install_pythonw
38
39preflight:
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 Jansen26e6be32002-11-15 00:13:33 +000048
49install_dirs:
50 $(INSTALL) -d -m $(DIRMODE) $(PYTHONAPPSDIR)
51 $(INSTALL) -d -m $(DIRMODE) $(datadir)
52 $(INSTALL) -d -m $(DIRMODE) $(MACDYNLIBDEST)
53
54install_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
60Mac.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
65install_dynlib:
66 $(PYTHON) $(osxdir)/setup.jaguar.py install --install-lib=$(MACDYNLIBDEST)
67 touch $(MACDYNLIBDEST)/OverrideFrom23/__init__.py
68
69install_Python:
Just van Rossumdb2a0f62002-11-22 11:52:15 +000070 $(PYTHON) $(srcdir)/Mac/Lib/bundlebuilder.py -q --link-exec \
71 -b $(datadir) \
72 -n $(APPBUNDLENAME) \
Jack Jansen26e6be32002-11-15 00:13:33 +000073 -r $(srcdir)/Mac/OSXResources/app/Resources/Applet-Info.plist \
74 -r $(srcdir)/Mac/OSXResources/app/Resources/PythonApplet.icns \
Just van Rossumdb2a0f62002-11-22 11:52:15 +000075 -e $(PYTHON) \
76 build
Jack Jansen26e6be32002-11-15 00:13:33 +000077
78install_IDE:
79 $(MAKE) -f $(osxdir)/Makefile install_IDE \
80 srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \
81 PYTHONAPPSDIR=$(PYTHONAPPSDIR)
82
83install_IDLE:
84 $(MAKE) -f $(osxdir)/Makefile install_IDLE \
85 srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \
86 PYTHONAPPSDIR=$(PYTHONAPPSDIR)
87
88install_BuildApplet:
89 $(MAKE) -f $(osxdir)/Makefile install_BuildApplet \
90 srcdir=$(srcdir) INSTALLED_PYTHONW=$(INSTALLED_PYTHONW) \
91 PYTHONAPPSDIR=$(PYTHONAPPSDIR)
92
Jack Jansen1ebcc442002-11-20 14:06:16 +000093install_PythonLauncher:
94 $(MAKE) -f $(osxdir)/Makefile install_PythonLauncher \
95 srcdir=$(srcdir) dstroot=$(dstroot) \
96 PYTHONAPPSPATH=$(PYTHONAPPSPATH)
97
Jack Jansen26e6be32002-11-15 00:13:33 +000098install_pythonw:
Jack Jansen1ebcc442002-11-20 14:06:16 +000099 @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 Jansen26e6be32002-11-15 00:13:33 +0000103 echo "#!/bin/sh" > pythonw.sh
104 echo "exec \"$(INSTALLED_PYTHONW)\" \"\$$@\"" >> pythonw.sh
105 $(INSTALL) pythonw.sh $(prefix)/bin/pythonw