blob: a1cd257eae772a79d590b36be53e03d6ef64e785 [file] [log] [blame]
Jack Jansencb4321e2002-08-09 00:18:21 +00001# This file can be invoked from the various frameworkinstall... targets in the
2# main Makefile. The next couple of variables are overridden on the
Jack Jansen0b06be72002-06-21 14:48:38 +00003# commandline in that case.
4
Jack Jansencb4321e2002-08-09 00:18:21 +00005VERSION=2.3
Jack Jansenbe3e1f72002-08-01 21:14:06 +00006builddir = ../..
7srcdir = ../..
Jack Jansencb4321e2002-08-09 00:18:21 +00008LIBDEST=$(prefix)/lib/python$(VERSION)
Jack Jansenbe3e1f72002-08-01 21:14:06 +00009prefix=/Library/Frameworks/Python.framework/Versions/$(VERSION)
Jack Jansencb4321e2002-08-09 00:18:21 +000010dstroot=/.
11
12# These are normally glimpsed from the previous set
13bindir=$(dstroot)/usr/local/bin
14PYTHONAPPSDIR=$(dstroot)/Applications/Python
Jack Jansenbe3e1f72002-08-01 21:14:06 +000015APPINSTALLDIR=$(prefix)/Resources/Python.app
Jack Jansen75ed1672001-09-05 22:09:50 +000016
Jack Jansen0cd0e652002-03-29 14:18:18 +000017# Variables for installing the "normal" unix binaries
Jack Jansenbe3e1f72002-08-01 21:14:06 +000018INSTALLED_PYTHON=$(prefix)/bin/python
Jack Jansen0cd0e652002-03-29 14:18:18 +000019INSTALLED_PYTHONW=$(APPINSTALLDIR)/Contents/MacOS/python
20
Jack Jansen638e5e32001-09-06 16:33:57 +000021# Items more-or-less copied from the main Makefile
22DIRMODE=755
23INSTALL=/usr/bin/install -c
Jack Jansen0cd0e652002-03-29 14:18:18 +000024INSTALL_SYMLINK=/usr/bin/install -l as
Jack Jansen638e5e32001-09-06 16:33:57 +000025INSTALL_PROGRAM=${INSTALL}
26INSTALL_SCRIPT= ${INSTALL_PROGRAM}
27INSTALL_DATA= ${INSTALL} -m 644
Jack Jansen0cd0e652002-03-29 14:18:18 +000028STRIPFLAG=-s
Jack Jansen2cce33f2002-03-29 21:17:14 +000029OPT=-g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp \
30 -fno-common -dynamic
Jack Jansenbe3e1f72002-08-01 21:14:06 +000031INCLUDES=-I$(builddir) -I$(srcdir)/Include -I$(srcdir)/Mac/Include
Jack Jansencb4321e2002-08-09 00:18:21 +000032DEFINES=
Jack Jansen75ed1672001-09-05 22:09:50 +000033
34CFLAGS=$(OPT) $(DEFINES) $(INCLUDES)
Jack Jansenbe3e1f72002-08-01 21:14:06 +000035LDFLAGS=-F$(builddir) -framework System -framework Python -framework Carbon \
Jack Jansen75ed1672001-09-05 22:09:50 +000036 -framework Foundation
37CC=cc
38LD=cc
Jack Jansenfea15532002-01-27 20:05:20 +000039REZ=/Developer/Tools/Rez
40DEREZ=/Developer/Tools/DeRez
Jack Jansen75ed1672001-09-05 22:09:50 +000041
Jack Jansenbe3e1f72002-08-01 21:14:06 +000042PYTHON=$(builddir)/python.exe
43APPTEMPLATE=$(srcdir)/Mac/OSXResources/app
Jack Jansen638e5e32001-09-06 16:33:57 +000044APPSUBDIRS=MacOS Resources Resources/English.lproj
Jack Jansenbe3e1f72002-08-01 21:14:06 +000045RESOURCEDIR=$(srcdir)/Mac/Resources
Jack Jansenc432cba2001-09-09 00:36:52 +000046RESOURCEFILE=python.rsrc
Jack Jansenbe3e1f72002-08-01 21:14:06 +000047RFCONVERTER=$(srcdir)/Mac/Lib/applesingle.py
Jack Jansencce7e342002-07-31 14:46:04 +000048
Jack Jansencb4321e2002-08-09 00:18:21 +000049installapps: install_PythonLauncher install_Python install_BuildApplet install_IDE
Jack Jansencce7e342002-07-31 14:46:04 +000050
51install_PythonLauncher:
Jack Jansenbe3e1f72002-08-01 21:14:06 +000052 cd $(srcdir)/Mac/OSX/PythonLauncher/PythonLauncher.pbproj ; \
Jack Jansencb4321e2002-08-09 00:18:21 +000053 pbxbuild -target PythonLauncher -buildstyle Deployment DSTROOT=$(dstroot) install
Jack Jansencce7e342002-07-31 14:46:04 +000054
Jack Jansen21ed16a2002-08-02 14:11:24 +000055install_Python: $(PYTHON)
Jack Jansencce7e342002-07-31 14:46:04 +000056 @for i in $(PYTHONAPPSDIR) $(APPINSTALLDIR) $(APPINSTALLDIR)/Contents; do \
Jack Jansen638e5e32001-09-06 16:33:57 +000057 if test ! -d $$i; then \
58 echo "Creating directory $$i"; \
59 $(INSTALL) -d -m $(DIRMODE) $$i; \
60 fi;\
61 done
62 @for i in $(APPSUBDIRS); do \
63 if test ! -d $(APPINSTALLDIR)/Contents/$$i; then \
64 echo "Creating directory $(APPINSTALLDIR)/Contents/$$i"; \
65 $(INSTALL) -d -m $(DIRMODE) $(APPINSTALLDIR)/Contents/$$i; \
66 else true; \
67 fi; \
68 done
69 @for d in . $(APPSUBDIRS); \
70 do \
71 a=$(APPTEMPLATE)/$$d; \
72 if test ! -d $$a; then continue; else true; fi; \
73 b=$(APPINSTALLDIR)/Contents/$$d; \
74 for i in $$a/*; \
75 do \
Jack Jansen638e5e32001-09-06 16:33:57 +000076 case $$i in \
77 *CVS) ;; \
78 *.py[co]) ;; \
79 *.orig) ;; \
80 *~) ;; \
81 *) \
82 if test -d $$i; then continue; fi; \
83 if test -x $$i; then \
84 echo $(INSTALL_SCRIPT) $$i $$b; \
85 $(INSTALL_SCRIPT) $$i $$b; \
86 else \
87 echo $(INSTALL_DATA) $$i $$b; \
88 $(INSTALL_DATA) $$i $$b; \
89 fi;; \
90 esac; \
91 done; \
92 done
Jack Jansen21ed16a2002-08-02 14:11:24 +000093 $(INSTALL_PROGRAM) $(STRIPFLAG) $(PYTHON) $(APPINSTALLDIR)/Contents/MacOS/python
Jack Jansenc432cba2001-09-09 00:36:52 +000094 # Create a temporary version of the resources here
Jack Jansenfdc8d752002-01-15 23:20:40 +000095 $(PYTHON) $(RFCONVERTER) -r $(RESOURCEDIR)/dialogs.rsrc dialogs.rsrc
96 $(PYTHON) $(RFCONVERTER) -r $(RESOURCEDIR)/errors.rsrc errors.rsrc
Jack Jansenfea15532002-01-27 20:05:20 +000097 $(DEREZ) -useDF -skip ckid dialogs.rsrc > dialogs.r
98 $(DEREZ) -useDF -skip ckid errors.rsrc > errors.r
99 $(REZ) -useDF -o $(RESOURCEFILE) dialogs.r errors.r
Jack Jansenc432cba2001-09-09 00:36:52 +0000100 $(INSTALL_DATA) $(RESOURCEFILE) $(APPINSTALLDIR)/Contents/Resources/$(RESOURCEFILE)
Jack Jansencce7e342002-07-31 14:46:04 +0000101
102install_IDE: $(INSTALLED_PYTHONW)
Jack Jansenf80798b2002-08-02 21:04:46 +0000103 @if $(INSTALLED_PYTHONW) -c "import waste"; then ; else \
104 echo PythonIDE needs the \"waste\" extension module; \
105 echo See Mac/OSX/README for details; \
106 exit 1; \
107 fi
Jack Jansenbe3e1f72002-08-01 21:14:06 +0000108 $(INSTALLED_PYTHONW) $(srcdir)/Mac/scripts/BuildApplet.py \
Jack Jansencce7e342002-07-31 14:46:04 +0000109 --output $(PYTHONAPPSDIR)/PythonIDE.app --noargv \
Jack Jansenbe3e1f72002-08-01 21:14:06 +0000110 $(srcdir)/Mac/Tools/IDE/PythonIDE.py
Jack Jansen638e5e32001-09-06 16:33:57 +0000111
Jack Jansen940e9702002-08-02 15:32:12 +0000112install_BuildApplet: $(INSTALLED_PYTHONW)
113 $(INSTALLED_PYTHONW) $(srcdir)/Mac/scripts/BuildApplet.py \
114 --output $(PYTHONAPPSDIR)/BuildApplet.app \
115 $(srcdir)/Mac/scripts/BuildApplet.py
116
Jack Jansenbe3e1f72002-08-01 21:14:06 +0000117LIBDEST=$(prefix)/Mac/Lib
118LIBSRC=$(srcdir)/Mac/Lib
Jack Jansendc745682002-05-23 22:18:13 +0000119LIBSUBDIRS= \
120 Carbon \
121 lib-scriptpackages \
122 lib-scriptpackages/_builtinSuites \
123 lib-scriptpackages/CodeWarrior \
124 lib-scriptpackages/Explorer \
125 lib-scriptpackages/Finder \
126 lib-scriptpackages/Netscape \
127 lib-scriptpackages/StdSuites \
128 lib-scriptpackages/Terminal \
129 mkcwproject \
130 mkcwproject/template \
131 mkcwproject/template-carbon \
132 mkcwproject/template-ppc
Jack Jansenbe3e1f72002-08-01 21:14:06 +0000133TOOLSDEST=$(prefix)/Mac/Tools
134TOOLSSRC=$(srcdir)/Mac/Tools
Jack Jansenc71efe02002-01-21 22:51:55 +0000135TOOLSSUBDIRS=IDE
Jack Jansen638e5e32001-09-06 16:33:57 +0000136installmacsubtree:
Jack Jansenc71efe02002-01-21 22:51:55 +0000137 @for i in $(LIBDEST) $(TOOLSDEST); \
Jack Jansen638e5e32001-09-06 16:33:57 +0000138 do \
139 if test ! -d $$i; then \
140 echo "Creating directory $$i"; \
141 $(INSTALL) -d -m $(DIRMODE) $$i; \
142 else true; \
143 fi; \
144 done
145 @for d in $(LIBSUBDIRS); \
146 do \
147 a=$(LIBSRC)/$$d; \
148 if test ! -d $$a; then continue; else true; fi; \
149 b=$(LIBDEST)/$$d; \
150 if test ! -d $$b; then \
151 echo "Creating directory $$b"; \
152 $(INSTALL) -d -m $(DIRMODE) $$b; \
153 else true; \
154 fi; \
155 done
156 @for i in $(LIBSRC)/*.py $(LIBSRC)/*.rsrc; \
157 do \
158 if test -x $$i; then \
159 $(INSTALL_SCRIPT) $$i $(LIBDEST); \
160 echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
161 else \
162 $(INSTALL_DATA) $$i $(LIBDEST); \
163 echo $(INSTALL_DATA) $$i $(LIBDEST); \
164 fi; \
165 done
166 @for d in $(LIBSUBDIRS); \
167 do \
168 a=$(LIBSRC)/$$d; \
169 if test ! -d $$a; then continue; else true; fi; \
170 b=$(LIBDEST)/$$d; \
171 for i in $$a/*; \
172 do \
173 case $$i in \
174 *CVS) ;; \
175 *.py[co]) ;; \
176 *.orig) ;; \
177 *~) ;; \
178 *) \
179 if test -d $$i; then continue; fi; \
180 if test -x $$i; then \
181 echo $(INSTALL_SCRIPT) $$i $$b; \
182 $(INSTALL_SCRIPT) $$i $$b; \
183 else \
184 echo $(INSTALL_DATA) $$i $$b; \
185 $(INSTALL_DATA) $$i $$b; \
186 fi;; \
187 esac; \
188 done; \
189 done
Jack Jansenc71efe02002-01-21 22:51:55 +0000190 @for d in $(TOOLSSUBDIRS); \
191 do \
192 a=$(TOOLSSRC)/$$d; \
193 if test ! -d $$a; then continue; else true; fi; \
194 b=$(TOOLSDEST)/$$d; \
195 if test ! -d $$b; then \
196 echo "Creating directory $$b"; \
197 $(INSTALL) -d -m $(DIRMODE) $$b; \
198 else true; \
199 fi; \
200 done
201 @for d in $(TOOLSSUBDIRS); \
202 do \
203 a=$(TOOLSSRC)/$$d; \
204 if test ! -d $$a; then continue; else true; fi; \
205 b=$(TOOLSDEST)/$$d; \
206 for i in $$a/*; \
207 do \
208 case $$i in \
209 *CVS) ;; \
210 *.py[co]) ;; \
211 *.orig) ;; \
212 *~) ;; \
213 *) \
214 if test -d $$i; then continue; fi; \
215 if test -x $$i; then \
216 echo $(INSTALL_SCRIPT) $$i $$b; \
217 $(INSTALL_SCRIPT) $$i $$b; \
218 else \
219 echo $(INSTALL_DATA) $$i $$b; \
220 $(INSTALL_DATA) $$i $$b; \
221 fi;; \
222 esac; \
223 done; \
224 done
225
Jack Jansencb4321e2002-08-09 00:18:21 +0000226 $(INSTALL_DATA) $(srcdir)/Mac/OSX/Mac.pth $(LIBDEST)/site-packages/
Jack Jansen109f0942002-01-18 16:12:27 +0000227
Jack Jansen0cd0e652002-03-29 14:18:18 +0000228# Put symlinks "python" and "pythonw" in the standard place
Jack Jansencce7e342002-07-31 14:46:04 +0000229$(INSTALLED_PYTHONW): install_Python
Jack Jansencce7e342002-07-31 14:46:04 +0000230
Jack Jansencb4321e2002-08-09 00:18:21 +0000231# $(INSTALLED_PYTHON) has to be done by the main Makefile, we cannot do that here.
232# At least this rule will give an error if it doesn't exist.
233
234installunixtools: $(INSTALLED_PYTHON) $(INSTALLED_PYTHONW) $(srcdir)/Mac/OSX/pythonw.sh
235 $(INSTALL) -d $(bindir)
236 $(INSTALL_SYMLINK) $(INSTALLED_PYTHON) $(bindir)/python
237 $(INSTALL) $(srcdir)/Mac/OSX/pythonw.sh $(bindir)/pythonw
Jack Jansen0cd0e652002-03-29 14:18:18 +0000238
Jack Jansenc361f942002-07-08 13:34:23 +0000239# This is for development purposes: create a Mac.pth that refers to the source
240# directories
241dontinstallmacsubtree:
Jack Jansenbe3e1f72002-08-01 21:14:06 +0000242 l=`cd $(srcdir)/Mac/Lib; pwd`; \
Jack Jansencb4321e2002-08-09 00:18:21 +0000243 echo $$l > $(LIBDEST)/site-packages/Mac.pth ; \
244 echo $$l/lib-scriptpackages >> $(LIBDEST)/site-packages/Mac.pth