| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 1 | # This file can be invoked from the "python.app" target in the  | 
 | 2 | # main Makefile. The next two variables are overridden on the  | 
 | 3 | # commandline in that case. | 
 | 4 |  | 
 | 5 | # assume user was invoking from Mac/OSX directory and building in source tree | 
 | 6 | PYTHONBUILDDIR = ../.. | 
 | 7 | PYTHONSRCDIR = ../.. | 
 | 8 |  | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 9 | INSTALLDIR=/Library/Frameworks/Python.framework/Versions/Current | 
 | 10 | APPINSTALLDIR=/Applications/Python.app | 
| Jack Jansen | 75ed167 | 2001-09-05 22:09:50 +0000 | [diff] [blame] | 11 |  | 
| Jack Jansen | 0cd0e65 | 2002-03-29 14:18:18 +0000 | [diff] [blame] | 12 | # Variables for installing the "normal" unix binaries | 
 | 13 | UNIXBINDIR=/usr/local/bin | 
 | 14 | INSTALLED_PYTHON=$(INSTALLDIR)/bin/python | 
 | 15 | INSTALLED_PYTHONW=$(APPINSTALLDIR)/Contents/MacOS/python | 
 | 16 |  | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 17 | # Items more-or-less copied from the main Makefile | 
| Jack Jansen | c361f94 | 2002-07-08 13:34:23 +0000 | [diff] [blame] | 18 | VERSION=2.3 | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 19 | DIRMODE=755 | 
 | 20 | INSTALL=/usr/bin/install -c | 
| Jack Jansen | 0cd0e65 | 2002-03-29 14:18:18 +0000 | [diff] [blame] | 21 | INSTALL_SYMLINK=/usr/bin/install -l as | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 22 | INSTALL_PROGRAM=${INSTALL} | 
 | 23 | INSTALL_SCRIPT= ${INSTALL_PROGRAM} | 
 | 24 | INSTALL_DATA=	${INSTALL} -m 644 | 
| Jack Jansen | 0cd0e65 | 2002-03-29 14:18:18 +0000 | [diff] [blame] | 25 | STRIPFLAG=-s | 
| Jack Jansen | 2cce33f | 2002-03-29 21:17:14 +0000 | [diff] [blame] | 26 | OPT=-g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp \ | 
 | 27 | 	-fno-common -dynamic | 
| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 28 | INCLUDES=-I$(PYTHONBUILDDIR) -I$(PYTHONSRCDIR)/Include \ | 
 | 29 | 	-I$(PYTHONSRCDIR)/Mac/Include | 
| Jack Jansen | 75ed167 | 2001-09-05 22:09:50 +0000 | [diff] [blame] | 30 | DEFINES=-DHAVE_CONFIG_H | 
 | 31 |  | 
 | 32 | CFLAGS=$(OPT) $(DEFINES) $(INCLUDES) | 
 | 33 | LDFLAGS=-framework System -framework Python -framework Carbon \ | 
 | 34 | 	-framework Foundation | 
 | 35 | CC=cc | 
 | 36 | LD=cc | 
| Jack Jansen | fea1553 | 2002-01-27 20:05:20 +0000 | [diff] [blame] | 37 | REZ=/Developer/Tools/Rez | 
 | 38 | DEREZ=/Developer/Tools/DeRez | 
| Jack Jansen | 75ed167 | 2001-09-05 22:09:50 +0000 | [diff] [blame] | 39 |  | 
 | 40 | OBJECTS=$(PYTHONBUILDDIR)/Mac/Python/macmain.o \ | 
 | 41 | 	$(PYTHONBUILDDIR)/Mac/Python/macgetargv.o | 
 | 42 |  | 
 | 43 | pythonforbundle: $(OBJECTS) | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 44 | 	$(LD) $(LDFLAGS) $(OBJECTS) -o pythonforbundle | 
 | 45 |  | 
| Jack Jansen | c432cba | 2001-09-09 00:36:52 +0000 | [diff] [blame] | 46 | PYTHON=$(PYTHONBUILDDIR)/python.exe | 
| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 47 | APPTEMPLATE=$(PYTHONSRCDIR)/Mac/OSXResources/app | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 48 | APPSUBDIRS=MacOS Resources Resources/English.lproj | 
| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 49 | RESOURCEDIR=$(PYTHONSRCDIR)/Mac/Resources | 
| Jack Jansen | c432cba | 2001-09-09 00:36:52 +0000 | [diff] [blame] | 50 | RESOURCEFILE=python.rsrc | 
| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 51 | RFCONVERTER=$(PYTHONSRCDIR)/Mac/Lib/applesingle.py | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 52 | install: pythonforbundle | 
 | 53 | 	@for i in $(APPINSTALLDIR) $(APPINSTALLDIR)/Contents; do \ | 
 | 54 | 		if test ! -d $$i; then \ | 
 | 55 | 			echo "Creating directory $$i"; \ | 
 | 56 | 			$(INSTALL) -d -m $(DIRMODE) $$i; \ | 
 | 57 | 		fi;\ | 
 | 58 | 	done | 
 | 59 | 	@for i in $(APPSUBDIRS); do \ | 
 | 60 | 		if test ! -d $(APPINSTALLDIR)/Contents/$$i; then \ | 
 | 61 | 			echo "Creating directory $(APPINSTALLDIR)/Contents/$$i"; \ | 
 | 62 | 			$(INSTALL) -d -m $(DIRMODE) $(APPINSTALLDIR)/Contents/$$i; \ | 
 | 63 | 		else	true; \ | 
 | 64 | 		fi; \ | 
 | 65 | 	done | 
 | 66 | 	@for d in . $(APPSUBDIRS); \ | 
 | 67 | 	do \ | 
 | 68 | 		a=$(APPTEMPLATE)/$$d; \ | 
 | 69 | 		if test ! -d $$a; then continue; else true; fi; \ | 
 | 70 | 		b=$(APPINSTALLDIR)/Contents/$$d; \ | 
 | 71 | 		for i in $$a/*; \ | 
 | 72 | 		do \ | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 73 | 			case $$i in \ | 
 | 74 | 			*CVS) ;; \ | 
 | 75 | 			*.py[co]) ;; \ | 
 | 76 | 			*.orig) ;; \ | 
 | 77 | 			*~) ;; \ | 
 | 78 | 			*) \ | 
 | 79 | 				if test -d $$i; then continue; fi; \ | 
 | 80 | 				if test -x $$i; then \ | 
 | 81 | 				    echo $(INSTALL_SCRIPT) $$i $$b; \ | 
 | 82 | 				    $(INSTALL_SCRIPT) $$i $$b; \ | 
 | 83 | 				else \ | 
 | 84 | 				    echo $(INSTALL_DATA) $$i $$b; \ | 
 | 85 | 				    $(INSTALL_DATA) $$i $$b; \ | 
 | 86 | 				fi;; \ | 
 | 87 | 			esac; \ | 
 | 88 | 		done; \ | 
 | 89 | 	done | 
| Jack Jansen | 0cd0e65 | 2002-03-29 14:18:18 +0000 | [diff] [blame] | 90 | 	$(INSTALL_PROGRAM) $(STRIPFLAG) pythonforbundle $(APPINSTALLDIR)/Contents/MacOS/python | 
| Jack Jansen | c432cba | 2001-09-09 00:36:52 +0000 | [diff] [blame] | 91 | 	# Create a temporary version of the resources here | 
| Jack Jansen | fdc8d75 | 2002-01-15 23:20:40 +0000 | [diff] [blame] | 92 | 	$(PYTHON) $(RFCONVERTER) -r $(RESOURCEDIR)/dialogs.rsrc dialogs.rsrc | 
 | 93 | 	$(PYTHON) $(RFCONVERTER) -r $(RESOURCEDIR)/errors.rsrc errors.rsrc | 
| Jack Jansen | fea1553 | 2002-01-27 20:05:20 +0000 | [diff] [blame] | 94 | 	$(DEREZ) -useDF -skip ckid dialogs.rsrc > dialogs.r | 
 | 95 | 	$(DEREZ) -useDF -skip ckid errors.rsrc > errors.r | 
 | 96 | 	$(REZ) -useDF -o $(RESOURCEFILE) dialogs.r errors.r  | 
| Jack Jansen | c432cba | 2001-09-09 00:36:52 +0000 | [diff] [blame] | 97 | 	$(INSTALL_DATA) $(RESOURCEFILE) $(APPINSTALLDIR)/Contents/Resources/$(RESOURCEFILE) | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 98 | 		 | 
 | 99 | LIBDEST=$(INSTALLDIR)/Mac/Lib | 
| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 100 | LIBSRC=$(PYTHONSRCDIR)/Mac/Lib | 
| Jack Jansen | dc74568 | 2002-05-23 22:18:13 +0000 | [diff] [blame] | 101 | LIBSUBDIRS= \ | 
 | 102 | 	Carbon \ | 
 | 103 | 	lib-scriptpackages \ | 
 | 104 | 	lib-scriptpackages/_builtinSuites \ | 
 | 105 | 	lib-scriptpackages/CodeWarrior \ | 
 | 106 | 	lib-scriptpackages/Explorer \ | 
 | 107 | 	lib-scriptpackages/Finder \ | 
 | 108 | 	lib-scriptpackages/Netscape \ | 
 | 109 | 	lib-scriptpackages/StdSuites \ | 
 | 110 | 	lib-scriptpackages/Terminal \ | 
 | 111 | 	mkcwproject \ | 
 | 112 | 	mkcwproject/template \ | 
 | 113 | 	mkcwproject/template-carbon \ | 
 | 114 | 	mkcwproject/template-ppc | 
| Jack Jansen | c71efe0 | 2002-01-21 22:51:55 +0000 | [diff] [blame] | 115 | TOOLSDEST=$(INSTALLDIR)/Mac/Tools | 
| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 116 | TOOLSSRC=$(PYTHONSRCDIR)/Mac/Tools | 
| Jack Jansen | c71efe0 | 2002-01-21 22:51:55 +0000 | [diff] [blame] | 117 | TOOLSSUBDIRS=IDE | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 118 | installmacsubtree: | 
| Jack Jansen | c71efe0 | 2002-01-21 22:51:55 +0000 | [diff] [blame] | 119 | 	@for i in $(LIBDEST) $(TOOLSDEST); \ | 
| Jack Jansen | 638e5e3 | 2001-09-06 16:33:57 +0000 | [diff] [blame] | 120 | 	do \ | 
 | 121 | 		if test ! -d $$i; then \ | 
 | 122 | 			echo "Creating directory $$i"; \ | 
 | 123 | 			$(INSTALL) -d -m $(DIRMODE) $$i; \ | 
 | 124 | 		else	true; \ | 
 | 125 | 		fi; \ | 
 | 126 | 	done | 
 | 127 | 	@for d in $(LIBSUBDIRS); \ | 
 | 128 | 	do \ | 
 | 129 | 		a=$(LIBSRC)/$$d; \ | 
 | 130 | 		if test ! -d $$a; then continue; else true; fi; \ | 
 | 131 | 		b=$(LIBDEST)/$$d; \ | 
 | 132 | 		if test ! -d $$b; then \ | 
 | 133 | 			echo "Creating directory $$b"; \ | 
 | 134 | 			$(INSTALL) -d -m $(DIRMODE) $$b; \ | 
 | 135 | 		else	true; \ | 
 | 136 | 		fi; \ | 
 | 137 | 	done | 
 | 138 | 	@for i in $(LIBSRC)/*.py $(LIBSRC)/*.rsrc; \ | 
 | 139 | 	do \ | 
 | 140 | 		if test -x $$i; then \ | 
 | 141 | 			$(INSTALL_SCRIPT) $$i $(LIBDEST); \ | 
 | 142 | 			echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \ | 
 | 143 | 		else \ | 
 | 144 | 			$(INSTALL_DATA) $$i $(LIBDEST); \ | 
 | 145 | 			echo $(INSTALL_DATA) $$i $(LIBDEST); \ | 
 | 146 | 		fi; \ | 
 | 147 | 	done | 
 | 148 | 	@for d in $(LIBSUBDIRS); \ | 
 | 149 | 	do \ | 
 | 150 | 		a=$(LIBSRC)/$$d; \ | 
 | 151 | 		if test ! -d $$a; then continue; else true; fi; \ | 
 | 152 | 		b=$(LIBDEST)/$$d; \ | 
 | 153 | 		for i in $$a/*; \ | 
 | 154 | 		do \ | 
 | 155 | 			case $$i in \ | 
 | 156 | 			*CVS) ;; \ | 
 | 157 | 			*.py[co]) ;; \ | 
 | 158 | 			*.orig) ;; \ | 
 | 159 | 			*~) ;; \ | 
 | 160 | 			*) \ | 
 | 161 | 				if test -d $$i; then continue; fi; \ | 
 | 162 | 				if test -x $$i; then \ | 
 | 163 | 				    echo $(INSTALL_SCRIPT) $$i $$b; \ | 
 | 164 | 				    $(INSTALL_SCRIPT) $$i $$b; \ | 
 | 165 | 				else \ | 
 | 166 | 				    echo $(INSTALL_DATA) $$i $$b; \ | 
 | 167 | 				    $(INSTALL_DATA) $$i $$b; \ | 
 | 168 | 				fi;; \ | 
 | 169 | 			esac; \ | 
 | 170 | 		done; \ | 
 | 171 | 	done | 
| Jack Jansen | c71efe0 | 2002-01-21 22:51:55 +0000 | [diff] [blame] | 172 | 	@for d in $(TOOLSSUBDIRS); \ | 
 | 173 | 	do \ | 
 | 174 | 		a=$(TOOLSSRC)/$$d; \ | 
 | 175 | 		if test ! -d $$a; then continue; else true; fi; \ | 
 | 176 | 		b=$(TOOLSDEST)/$$d; \ | 
 | 177 | 		if test ! -d $$b; then \ | 
 | 178 | 			echo "Creating directory $$b"; \ | 
 | 179 | 			$(INSTALL) -d -m $(DIRMODE) $$b; \ | 
 | 180 | 		else	true; \ | 
 | 181 | 		fi; \ | 
 | 182 | 	done | 
 | 183 | 	@for d in $(TOOLSSUBDIRS); \ | 
 | 184 | 	do \ | 
 | 185 | 		a=$(TOOLSSRC)/$$d; \ | 
 | 186 | 		if test ! -d $$a; then continue; else true; fi; \ | 
 | 187 | 		b=$(TOOLSDEST)/$$d; \ | 
 | 188 | 		for i in $$a/*; \ | 
 | 189 | 		do \ | 
 | 190 | 			case $$i in \ | 
 | 191 | 			*CVS) ;; \ | 
 | 192 | 			*.py[co]) ;; \ | 
 | 193 | 			*.orig) ;; \ | 
 | 194 | 			*~) ;; \ | 
 | 195 | 			*) \ | 
 | 196 | 				if test -d $$i; then continue; fi; \ | 
 | 197 | 				if test -x $$i; then \ | 
 | 198 | 				    echo $(INSTALL_SCRIPT) $$i $$b; \ | 
 | 199 | 				    $(INSTALL_SCRIPT) $$i $$b; \ | 
 | 200 | 				else \ | 
 | 201 | 				    echo $(INSTALL_DATA) $$i $$b; \ | 
 | 202 | 				    $(INSTALL_DATA) $$i $$b; \ | 
 | 203 | 				fi;; \ | 
 | 204 | 			esac; \ | 
 | 205 | 		done; \ | 
 | 206 | 	done | 
 | 207 |  | 
| Jack Jansen | c361f94 | 2002-07-08 13:34:23 +0000 | [diff] [blame] | 208 | 	$(INSTALL_DATA) $(PYTHONSRCDIR)/Mac/OSX/Mac.pth $(INSTALLDIR)/lib/python$(VERSION)/site-packages/ | 
| Jack Jansen | 109f094 | 2002-01-18 16:12:27 +0000 | [diff] [blame] | 209 | 	 | 
| Jack Jansen | 0cd0e65 | 2002-03-29 14:18:18 +0000 | [diff] [blame] | 210 | # Put symlinks "python" and "pythonw" in the standard place | 
 | 211 | installunixprograms: $(INSTALLED_PYTHON) pythonw.sh | 
 | 212 | 	$(INSTALL) -d $(UNIXBINDIR) | 
 | 213 | 	$(INSTALL_SYMLINK) $(INSTALLED_PYTHON) $(UNIXBINDIR)/python | 
 | 214 | 	$(INSTALL) pythonw.sh $(UNIXBINDIR)/pythonw | 
 | 215 | 	 | 
| Jack Jansen | c361f94 | 2002-07-08 13:34:23 +0000 | [diff] [blame] | 216 | # This is for development purposes: create a Mac.pth that refers to the source | 
 | 217 | # directories | 
 | 218 | dontinstallmacsubtree: | 
 | 219 | 	l=`cd $(PYTHONSRCDIR)/Mac/Lib; pwd`; \ | 
 | 220 | 	echo $$l > $(INSTALLDIR)/lib/python$(VERSION)/site-packages/Mac.pth ; \ | 
 | 221 | 	echo $$l/lib-scriptpackages >> $(INSTALLDIR)/lib/python$(VERSION)/site-packages/Mac.pth | 
| Jack Jansen | 0b06be7 | 2002-06-21 14:48:38 +0000 | [diff] [blame] | 222 |  | 
 | 223 |  | 
 | 224 | # Rules to build each file in OBJECTS - is there a better way? | 
 | 225 | $(PYTHONBUILDDIR)/Mac/Python/macmain.o: $(PYTHONSRCDIR)/Mac/Python/macmain.c | 
 | 226 | 	$(CC) $(CFLAGS) -c $(PYTHONSRCDIR)/Mac/Python/macmain.c -o $@ | 
 | 227 |  | 
 | 228 | $(PYTHONBUILDDIR)/Mac/Python/macgetargv.o: $(PYTHONSRCDIR)/Mac/Python/macgetargv.c | 
 | 229 | 	$(CC) $(CFLAGS) -c $(PYTHONSRCDIR)/Mac/Python/macgetargv.c -o $@ | 
 | 230 |  |