blob: 385e6ed9802a7c849755f5f3d18410ee7ab6c5ce [file] [log] [blame]
Jack Jansen75ed1672001-09-05 22:09:50 +00001PYTHONBUILDDIR=../..
Jack Jansen638e5e32001-09-06 16:33:57 +00002INSTALLDIR=/Library/Frameworks/Python.framework/Versions/Current
3APPINSTALLDIR=/Applications/Python.app
Jack Jansen75ed1672001-09-05 22:09:50 +00004
Jack Jansen0cd0e652002-03-29 14:18:18 +00005# Variables for installing the "normal" unix binaries
6UNIXBINDIR=/usr/local/bin
7INSTALLED_PYTHON=$(INSTALLDIR)/bin/python
8INSTALLED_PYTHONW=$(APPINSTALLDIR)/Contents/MacOS/python
9
Jack Jansen638e5e32001-09-06 16:33:57 +000010# Items more-or-less copied from the main Makefile
11DIRMODE=755
12INSTALL=/usr/bin/install -c
Jack Jansen0cd0e652002-03-29 14:18:18 +000013INSTALL_SYMLINK=/usr/bin/install -l as
Jack Jansen638e5e32001-09-06 16:33:57 +000014INSTALL_PROGRAM=${INSTALL}
15INSTALL_SCRIPT= ${INSTALL_PROGRAM}
16INSTALL_DATA= ${INSTALL} -m 644
Jack Jansen0cd0e652002-03-29 14:18:18 +000017STRIPFLAG=-s
Jack Jansen75ed1672001-09-05 22:09:50 +000018OPT=-g -O3 -Wall -Wstrict-prototypes -no-cpp-precomp -fno-common -dynamic
19INCLUDES=-I$(PYTHONBUILDDIR) -I$(PYTHONBUILDDIR)/Include \
20 -I$(PYTHONBUILDDIR)/Mac/Include
21DEFINES=-DHAVE_CONFIG_H
22
23CFLAGS=$(OPT) $(DEFINES) $(INCLUDES)
24LDFLAGS=-framework System -framework Python -framework Carbon \
25 -framework Foundation
26CC=cc
27LD=cc
Jack Jansenfea15532002-01-27 20:05:20 +000028REZ=/Developer/Tools/Rez
29DEREZ=/Developer/Tools/DeRez
Jack Jansen75ed1672001-09-05 22:09:50 +000030
31OBJECTS=$(PYTHONBUILDDIR)/Mac/Python/macmain.o \
32 $(PYTHONBUILDDIR)/Mac/Python/macgetargv.o
33
34pythonforbundle: $(OBJECTS)
Jack Jansen638e5e32001-09-06 16:33:57 +000035 $(LD) $(LDFLAGS) $(OBJECTS) -o pythonforbundle
36
Jack Jansenc432cba2001-09-09 00:36:52 +000037PYTHON=$(PYTHONBUILDDIR)/python.exe
Jack Jansen638e5e32001-09-06 16:33:57 +000038APPTEMPLATE=$(PYTHONBUILDDIR)/Mac/OSXResources/app
39APPSUBDIRS=MacOS Resources Resources/English.lproj
Jack Jansenfdc8d752002-01-15 23:20:40 +000040RESOURCEDIR=$(PYTHONBUILDDIR)/Mac/Resources
Jack Jansenc432cba2001-09-09 00:36:52 +000041RESOURCEFILE=python.rsrc
42RFCONVERTER=$(PYTHONBUILDDIR)/Mac/Lib/applesingle.py
Jack Jansen638e5e32001-09-06 16:33:57 +000043install: pythonforbundle
44 @for i in $(APPINSTALLDIR) $(APPINSTALLDIR)/Contents; do \
45 if test ! -d $$i; then \
46 echo "Creating directory $$i"; \
47 $(INSTALL) -d -m $(DIRMODE) $$i; \
48 fi;\
49 done
50 @for i in $(APPSUBDIRS); do \
51 if test ! -d $(APPINSTALLDIR)/Contents/$$i; then \
52 echo "Creating directory $(APPINSTALLDIR)/Contents/$$i"; \
53 $(INSTALL) -d -m $(DIRMODE) $(APPINSTALLDIR)/Contents/$$i; \
54 else true; \
55 fi; \
56 done
57 @for d in . $(APPSUBDIRS); \
58 do \
59 a=$(APPTEMPLATE)/$$d; \
60 if test ! -d $$a; then continue; else true; fi; \
61 b=$(APPINSTALLDIR)/Contents/$$d; \
62 for i in $$a/*; \
63 do \
Jack Jansen638e5e32001-09-06 16:33:57 +000064 case $$i in \
65 *CVS) ;; \
66 *.py[co]) ;; \
67 *.orig) ;; \
68 *~) ;; \
69 *) \
70 if test -d $$i; then continue; fi; \
71 if test -x $$i; then \
72 echo $(INSTALL_SCRIPT) $$i $$b; \
73 $(INSTALL_SCRIPT) $$i $$b; \
74 else \
75 echo $(INSTALL_DATA) $$i $$b; \
76 $(INSTALL_DATA) $$i $$b; \
77 fi;; \
78 esac; \
79 done; \
80 done
Jack Jansen0cd0e652002-03-29 14:18:18 +000081 $(INSTALL_PROGRAM) $(STRIPFLAG) pythonforbundle $(APPINSTALLDIR)/Contents/MacOS/python
Jack Jansenc432cba2001-09-09 00:36:52 +000082 # Create a temporary version of the resources here
Jack Jansenfdc8d752002-01-15 23:20:40 +000083 $(PYTHON) $(RFCONVERTER) -r $(RESOURCEDIR)/dialogs.rsrc dialogs.rsrc
84 $(PYTHON) $(RFCONVERTER) -r $(RESOURCEDIR)/errors.rsrc errors.rsrc
Jack Jansenfea15532002-01-27 20:05:20 +000085 $(DEREZ) -useDF -skip ckid dialogs.rsrc > dialogs.r
86 $(DEREZ) -useDF -skip ckid errors.rsrc > errors.r
87 $(REZ) -useDF -o $(RESOURCEFILE) dialogs.r errors.r
Jack Jansenc432cba2001-09-09 00:36:52 +000088 $(INSTALL_DATA) $(RESOURCEFILE) $(APPINSTALLDIR)/Contents/Resources/$(RESOURCEFILE)
Jack Jansen638e5e32001-09-06 16:33:57 +000089
90LIBDEST=$(INSTALLDIR)/Mac/Lib
91LIBSRC=$(PYTHONBUILDDIR)/Mac/Lib
92LIBSUBDIRS=Carbon lib-scriptpackages lib-scriptpackages/CodeWarrior lib-scriptpackages/Explorer \
93 lib-scriptpackages/Finder lib-scriptpackages/Netscape lib-scriptpackages/StdSuites \
94 mkcwproject mkcwproject/template mkcwproject/template-carbon mkcwproject/template-ppc
Jack Jansenc71efe02002-01-21 22:51:55 +000095TOOLSDEST=$(INSTALLDIR)/Mac/Tools
96TOOLSSRC=$(PYTHONBUILDDIR)/Mac/Tools
97TOOLSSUBDIRS=IDE
Jack Jansen638e5e32001-09-06 16:33:57 +000098installmacsubtree:
Jack Jansenc71efe02002-01-21 22:51:55 +000099 @for i in $(LIBDEST) $(TOOLSDEST); \
Jack Jansen638e5e32001-09-06 16:33:57 +0000100 do \
101 if test ! -d $$i; then \
102 echo "Creating directory $$i"; \
103 $(INSTALL) -d -m $(DIRMODE) $$i; \
104 else true; \
105 fi; \
106 done
107 @for d in $(LIBSUBDIRS); \
108 do \
109 a=$(LIBSRC)/$$d; \
110 if test ! -d $$a; then continue; else true; fi; \
111 b=$(LIBDEST)/$$d; \
112 if test ! -d $$b; then \
113 echo "Creating directory $$b"; \
114 $(INSTALL) -d -m $(DIRMODE) $$b; \
115 else true; \
116 fi; \
117 done
118 @for i in $(LIBSRC)/*.py $(LIBSRC)/*.rsrc; \
119 do \
120 if test -x $$i; then \
121 $(INSTALL_SCRIPT) $$i $(LIBDEST); \
122 echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
123 else \
124 $(INSTALL_DATA) $$i $(LIBDEST); \
125 echo $(INSTALL_DATA) $$i $(LIBDEST); \
126 fi; \
127 done
128 @for d in $(LIBSUBDIRS); \
129 do \
130 a=$(LIBSRC)/$$d; \
131 if test ! -d $$a; then continue; else true; fi; \
132 b=$(LIBDEST)/$$d; \
133 for i in $$a/*; \
134 do \
135 case $$i in \
136 *CVS) ;; \
137 *.py[co]) ;; \
138 *.orig) ;; \
139 *~) ;; \
140 *) \
141 if test -d $$i; then continue; fi; \
142 if test -x $$i; then \
143 echo $(INSTALL_SCRIPT) $$i $$b; \
144 $(INSTALL_SCRIPT) $$i $$b; \
145 else \
146 echo $(INSTALL_DATA) $$i $$b; \
147 $(INSTALL_DATA) $$i $$b; \
148 fi;; \
149 esac; \
150 done; \
151 done
Jack Jansenc71efe02002-01-21 22:51:55 +0000152 @for d in $(TOOLSSUBDIRS); \
153 do \
154 a=$(TOOLSSRC)/$$d; \
155 if test ! -d $$a; then continue; else true; fi; \
156 b=$(TOOLSDEST)/$$d; \
157 if test ! -d $$b; then \
158 echo "Creating directory $$b"; \
159 $(INSTALL) -d -m $(DIRMODE) $$b; \
160 else true; \
161 fi; \
162 done
163 @for d in $(TOOLSSUBDIRS); \
164 do \
165 a=$(TOOLSSRC)/$$d; \
166 if test ! -d $$a; then continue; else true; fi; \
167 b=$(TOOLSDEST)/$$d; \
168 for i in $$a/*; \
169 do \
170 case $$i in \
171 *CVS) ;; \
172 *.py[co]) ;; \
173 *.orig) ;; \
174 *~) ;; \
175 *) \
176 if test -d $$i; then continue; fi; \
177 if test -x $$i; then \
178 echo $(INSTALL_SCRIPT) $$i $$b; \
179 $(INSTALL_SCRIPT) $$i $$b; \
180 else \
181 echo $(INSTALL_DATA) $$i $$b; \
182 $(INSTALL_DATA) $$i $$b; \
183 fi;; \
184 esac; \
185 done; \
186 done
187
Jack Jansen109f0942002-01-18 16:12:27 +0000188 @echo '** Copy the contents of sample_sitecustomize.py (or similar code) into'
Jack Jansen0cd0e652002-03-29 14:18:18 +0000189 @echo '**' $(INSTALLDIR)/lib/python2.3/sitecustomize.py
Jack Jansen109f0942002-01-18 16:12:27 +0000190
Jack Jansen0cd0e652002-03-29 14:18:18 +0000191# Put symlinks "python" and "pythonw" in the standard place
192installunixprograms: $(INSTALLED_PYTHON) pythonw.sh
193 $(INSTALL) -d $(UNIXBINDIR)
194 $(INSTALL_SYMLINK) $(INSTALLED_PYTHON) $(UNIXBINDIR)/python
195 $(INSTALL) pythonw.sh $(UNIXBINDIR)/pythonw
196
197# This is for development purposes: put a symlink to the Mac source subtree in the
198# framework
199symlinkmacsubtree:
200 ln -sf `cd $(PYTHONBUILDDIR)/Mac; pwd` $(INSTALLDIR)/Mac
201
202 @echo '** Copy the contents of sample_sitecustomize.py (or similar code) into'
203 @echo '**' $(INSTALLDIR)/lib/python2.3/sitecustomize.py