1 # This file can be invoked from the various frameworkinstall... targets in the
2 # main Makefile. The next couple of variables are overridden on the
3 # commandline in that case.
9 LIBDEST
=$(prefix)/lib
/python
$(VERSION
)
11 BUILDEXE
=@BUILDEXEEXT@
12 BUILDPYTHON
=$(builddir
)/python
$(BUILDEXE
)
15 FRAMEWORKUNIXTOOLSPREFIX
=@FRAMEWORKUNIXTOOLSPREFIX@
16 PYTHONFRAMEWORK
=@PYTHONFRAMEWORK@
19 # These are normally glimpsed from the previous set
21 PYTHONAPPSDIR
=/Applications
/$(PYTHONFRAMEWORK
) $(VERSION
)
22 APPINSTALLDIR
=$(prefix)/Resources
/Python.app
24 # Variables for installing the "normal" unix binaries
25 INSTALLED_PYTHONAPP
=$(APPINSTALLDIR
)/Contents
/MacOS
/$(PYTHONFRAMEWORK
)
27 # Items more-or-less copied from the main Makefile
31 INSTALL_SYMLINK
=ln
-fsn
32 INSTALL_PROGRAM
=@INSTALL_PROGRAM@
33 INSTALL_SCRIPT
= @INSTALL_SCRIPT@
34 INSTALL_DATA
=@INSTALL_DATA@
37 CPMAC
=/Developer
/Tools
/CpMac
39 APPTEMPLATE
=$(srcdir)/Resources
/app
40 APPSUBDIRS
=MacOS Resources Resources
/English.lproj \
41 Resources
/English.lproj
/Documentation \
42 Resources
/English.lproj
/Documentation
/doc \
43 Resources
/English.lproj
/Documentation
/ide
44 DOCDIR
=$(srcdir)/Resources
/app
/Resources
/English.lproj
/Documentation
45 DOCINDEX
=$(DOCDIR
)/"Documentation idx"
46 CACHERSRC
=$(srcdir)/scripts
/cachersrc.py
47 compileall
=$(srcdir)/..
/Lib
/compileall.py
49 installapps
: install_Python install_BuildApplet install_PythonLauncher \
50 install_IDLE checkapplepython install_pythonw install_versionedtools
52 installapps4way
: install_Python4way install_BuildApplet install_PythonLauncher install_IDLE install_pythonw4way install_versionedtools
55 install_pythonw
: pythonw
56 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw
"$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)"
57 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw
"$(DESTDIR)$(prefix)/bin/python$(VERSION)"
58 ln
-sf python
$(VERSION
) "$(DESTDIR)$(prefix)/bin/python"
59 ln
-sf pythonw
$(VERSION
) "$(DESTDIR)$(prefix)/bin/pythonw"
62 # Install 3 variants of python/pythonw:
63 # - 32-bit (i386 and ppc)
64 # - 64-bit (x86_64 and ppc64)
65 # - all (all four architectures)
66 # - Make 'python' and 'pythonw' aliases for the 32-bit variant
67 install_pythonw4way
: pythonw-32 pythonw-64 pythonw
68 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw-64
"$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)-64"
69 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw-64
"$(DESTDIR)$(prefix)/bin/python$(VERSION)-64"
70 ln
-sf python
$(VERSION
)-64 "$(DESTDIR)$(prefix)/bin/python-64"
71 ln
-sf pythonw
$(VERSION
)-64 "$(DESTDIR)$(prefix)/bin/pythonw-64"
73 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw-32
"$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)-32"
74 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw-32
"$(DESTDIR)$(prefix)/bin/python$(VERSION)-32"
75 ln
-sf python
$(VERSION
)-32 "$(DESTDIR)$(prefix)/bin/python-32"
76 ln
-sf pythonw
$(VERSION
)-32 "$(DESTDIR)$(prefix)/bin/pythonw-32"
78 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw
"$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)-all"
79 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw
"$(DESTDIR)$(prefix)/bin/python$(VERSION)-all"
80 ln
-sf python
$(VERSION
)-all "$(DESTDIR)$(prefix)/bin/python-all"
81 ln
-sf pythonw
$(VERSION
)-all "$(DESTDIR)$(prefix)/bin/pythonw-all"
83 ln
-sf pythonw
$(VERSION
)-32 "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)"
84 ln
-sf python
$(VERSION
)-32 "$(DESTDIR)$(prefix)/bin/python$(VERSION)"
85 ln
-sf pythonw
$(VERSION
)-32 "$(DESTDIR)$(prefix)/bin/pythonw"
86 ln
-sf python
$(VERSION
)-32 "$(DESTDIR)$(prefix)/bin/python"
89 # Install unix tools in /usr/local/bin. These are just aliases for the
90 # actual installation inside the framework.
93 if
[ ! -d
"$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ]; then \
94 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\
96 for fn in python pythonw idle pydoc python-config smtpd.py \
97 python
$(VERSION
) pythonw
$(VERSION
) idle
$(VERSION
) \
98 pydoc
$(VERSION
) python
$(VERSION
)-config smtpd
$(VERSION
).py
;\
100 ln
-fs
"$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
104 # TODO: install symlinks for -32, -64 and -all as well
105 installunixtools4way
: installunixtools
109 # Like installunixtools, but only install links to the versioned binaries.
112 if
[ ! -d
"$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ]; then \
113 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\
115 for fn in python
$(VERSION
) pythonw
$(VERSION
) idle
$(VERSION
) \
116 pydoc
$(VERSION
) python
$(VERSION
)-config smtpd
$(VERSION
).py
;\
118 ln
-fs
"$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
121 # TODO: -32, -64 and -all variants
122 altinstallunixtools4way
: altinstallunixtools
124 # By default most tools are installed without a version in their basename, to
125 # make it easier to install (and use) several python versions side-by-side move
126 # the tools to a version-specific name and add the non-versioned name as an
128 install_versionedtools
:
129 for fn in idle pydoc
;\
131 if
[ -h
"$(DESTDIR)$(prefix)/bin/$${fn}" ]; then \
134 mv
"$(DESTDIR)$(prefix)/bin/$${fn}" "$(DESTDIR)$(prefix)/bin/$${fn}$(VERSION)" ;\
135 ln
-sf
"$${fn}$(VERSION)" "$(DESTDIR)$(prefix)/bin/$${fn}" ;\
137 if
[ ! -h
"$(DESTDIR)$(prefix)/bin/python-config" ]; then \
138 mv
"$(DESTDIR)$(prefix)/bin/python-config" "$(DESTDIR)$(prefix)/bin/python$(VERSION)-config" ;\
139 ln
-sf
"python$(VERSION)-config" "$(DESTDIR)$(prefix)/bin/python-config" ; \
141 if
[ ! -h
"$(DESTDIR)$(prefix)/bin/smtpd.py" ]; then \
142 mv
"$(DESTDIR)$(prefix)/bin/smtpd.py" "$(DESTDIR)$(prefix)/bin/smtpd$(VERSION).py" ;\
143 ln
-sf
"smtpd$(VERSION).py" "$(DESTDIR)$(prefix)/bin/smtpd.py" ;\
147 pythonw
: $(srcdir)/Tools
/pythonw.c Makefile
148 $(CC
) $(LDFLAGS
) -o
$@
$(srcdir)/Tools
/pythonw.c \
149 -DPYTHONWEXECUTABLE
='"$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"'
151 pythonw-32
: $(srcdir)/Tools
/pythonw.c Makefile
152 $(CC
) $(LDFLAGS
) -o
$@
-arch i386
-arch ppc
$(srcdir)/Tools
/pythonw.c \
153 -DPYTHONWEXECUTABLE
='"$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-32"'
155 pythonw-64
: $(srcdir)/Tools
/pythonw.c Makefile
156 $(CC
) $(LDFLAGS
) -o
$@
-arch x86_64
-arch ppc64
$(srcdir)/Tools
/pythonw.c \
157 -DPYTHONWEXECUTABLE
='"$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-64"'
159 install_PythonLauncher
:
160 cd PythonLauncher
&& make
install DESTDIR
=$(DESTDIR
)
163 @if
test ! -f
$(DOCINDEX
); then \
164 echo WARNING
: you should run Apple Help Indexing Tool on
$(DOCDIR
); \
166 @for i in
"$(PYTHONAPPSDIR)" "$(APPINSTALLDIR)" "$(APPINSTALLDIR)/Contents"; do \
167 if
test ! -d
"$(DESTDIR)$$i"; then \
168 echo
"Creating directory $(DESTDIR)$$i"; \
169 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$$i"; \
172 @for i in
$(APPSUBDIRS
); do \
173 if
test ! -d
"$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; then \
174 echo
"Creating directory $(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \
175 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \
179 @for d in .
$(APPSUBDIRS
); \
181 a
=$(APPTEMPLATE
)/$$d; \
182 if
test ! -d
$$a; then continue
; else true
; fi
; \
183 b
="$(DESTDIR)$(APPINSTALLDIR)/Contents/$$d"; \
193 echo
$(CPMAC
) "$$i" $$b; \
194 $(CPMAC
) "$$i" "$$b"; \
197 if
test -d
$$i; then continue
; fi
; \
198 if
test -x
$$i; then \
199 echo
$(INSTALL_SCRIPT
) "$$i" "$$b"; \
200 $(INSTALL_SCRIPT
) "$$i" "$$b"; \
202 echo
$(INSTALL_DATA
) "$$i" "$$b"; \
203 $(INSTALL_DATA
) "$$i" "$$b"; \
208 $(INSTALL_PROGRAM
) $(STRIPFLAG
) $(BUILDPYTHON
) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
210 install_Python4way
: install_Python
211 lipo
-extract i386
-extract ppc7400
-output
"$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-32" "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
212 lipo
-extract x86_64
-extract ppc64
-output
"$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)-64" "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)"
217 cd IDLE
&& make
install
220 $(RUNSHARED
) @ARCH_RUN_32BIT@
$(BUILDPYTHON
) $(srcdir)/scripts
/BuildApplet.py \
221 --destroot
"$(DESTDIR)" \
222 --python
=$(prefix)/Resources
/Python.app
/Contents
/MacOS
/$(PYTHONFRAMEWORK
)`test -f "$(DESTDIR)$(prefix)/Resources/Python.app/Contents/MacOS/$(PYTHONFRAMEWORK)-32" && echo "-32"` \
223 --output
"$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app" \
224 $(srcdir)/scripts
/BuildApplet.py
226 MACLIBDEST
=$(LIBDEST
)/plat-mac
227 MACTOOLSDEST
=$(prefix)/Mac
/Tools
228 MACTOOLSSRC
=$(srcdir)/Mac
/Tools
232 @for i in
$(MACTOOLSDEST
); \
234 if
test ! -d
$(DESTDIR
)$$i; then \
235 echo
"Creating directory $(DESTDIR)$$i"; \
236 $(INSTALL
) -d
-m
$(DIRMODE
) $(DESTDIR
)$$i; \
240 @for d in
$(MACTOOLSSUBDIRS
); \
242 a
=$(MACTOOLSSRC
)/$$d; \
243 if
test ! -d
$$a; then continue
; else true
; fi
; \
244 b
=$(DESTDIR
)$(MACTOOLSDEST
)/$$d; \
245 if
test ! -d
$$b; then \
246 echo
"Creating directory $$b"; \
247 $(INSTALL
) -d
-m
$(DIRMODE
) $$b; \
251 @for d in
$(MACTOOLSSUBDIRS
); \
253 a
=$(MACTOOLSSRC
)/$$d; \
254 if
test ! -d
$$a; then continue
; else true
; fi
; \
255 b
=$(DESTDIR
)$(MACTOOLSDEST
)/$$d; \
265 echo
$(CPMAC
) $$i $$b ; \
269 if
test -d
$$i; then continue
; fi
; \
270 if
test -x
$$i; then \
271 echo
$(INSTALL_SCRIPT
) $$i $$b; \
272 $(INSTALL_SCRIPT
) $$i $$b; \
274 echo
$(INSTALL_DATA
) $$i $$b; \
275 $(INSTALL_DATA
) $$i $$b; \
282 $(RUNSHARED
) @ARCH_RUN_32BIT@
$(BUILDPYTHON
) $(CACHERSRC
) -v
$(DESTDIR
)$(MACLIBDEST
) $(DESTDIR
)$(MACTOOLSDEST
)
283 $(RUNSHARED
) $(BUILDPYTHON
) -Wi
-tt
$(compileall
) -d
$(MACTOOLSDEST
) -x badsyntax
$(DESTDIR
)$(MACTOOLSDEST
)
284 $(RUNSHARED
) $(BUILDPYTHON
) -O
-Wi
-tt
$(compileall
) -d
$(MACTOOLSDEST
) -x badsyntax
$(DESTDIR
)$(MACTOOLSDEST
)
286 $(INSTALLED_PYTHONAPP
): install_Python
288 installextras
: $(srcdir)/Extras.ReadMe.txt
$(srcdir)/Extras.
install.py
289 $(INSTALL
) -d
"$(DESTDIR)$(PYTHONAPPSDIR)/Extras"
290 $(INSTALL
) $(srcdir)/Extras.ReadMe.txt
"$(DESTDIR)$(PYTHONAPPSDIR)/Extras/ReadMe.txt"
291 $(RUNSHARED
) $(BUILDPYTHON
) $(srcdir)/Extras.
install.py
$(srcdir)/..
/Demo \
292 "$(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo"
293 $(RUNSHARED
) $(BUILDPYTHON
) $(srcdir)/Extras.
install.py
$(srcdir)/Demo \
294 "$(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo.Mac"
297 checkapplepython
: $(srcdir)/Tools
/fixapplepython23.py
298 @if
! $(RUNSHARED
) $(BUILDPYTHON
) $(srcdir)/Tools
/fixapplepython23.py
-n
; then \
299 echo
"* WARNING: Apple-installed Python 2.3 will have trouble building extensions from now on."; \
300 echo
"* WARNING: Run $(srcdir)/Tools/fixapplepython23.py with \"sudo\" to fix this."; \
306 cd PythonLauncher
&& make
clean
307 cd IDLE
&& make
clean
309 Makefile
: $(srcdir)/Makefile.in ..
/config.status
310 cd ..
&& CONFIG_FILES
=Mac
/Makefile CONFIG_HEADERS
= $(SHELL
) .
/config.status