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@
17 # These are normally glimpsed from the previous set
19 PYTHONAPPSDIR
=/Applications
/MacPython
$(VERSION
)
20 APPINSTALLDIR
=$(prefix)/Resources
/Python.app
22 # Variables for installing the "normal" unix binaries
23 INSTALLED_PYTHONAPP
=$(APPINSTALLDIR
)/Contents
/MacOS
/Python
25 # Items more-or-less copied from the main Makefile
29 INSTALL_SYMLINK
=ln
-fsn
30 INSTALL_PROGRAM
=@INSTALL_PROGRAM@
31 INSTALL_SCRIPT
= @INSTALL_SCRIPT@
32 INSTALL_DATA
=@INSTALL_DATA@
35 CPMAC
=/Developer
/Tools
/CpMac
37 APPTEMPLATE
=$(srcdir)/Resources
/app
38 APPSUBDIRS
=MacOS Resources Resources
/English.lproj \
39 Resources
/English.lproj
/Documentation \
40 Resources
/English.lproj
/Documentation
/doc \
41 Resources
/English.lproj
/Documentation
/ide
42 DOCDIR
=$(srcdir)/Resources
/app
/Resources
/English.lproj
/Documentation
43 DOCINDEX
=$(DOCDIR
)/"Documentation idx"
44 CACHERSRC
=$(srcdir)/scripts
/cachersrc.py
45 compileall
=$(srcdir)/..
/Lib
/compileall.py
47 installapps
: install_Python install_BuildApplet install_PythonLauncher \
48 install_IDLE checkapplepython install_pythonw install_versionedtools
50 install_pythonw
: pythonw
51 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw
"$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)"
52 $(INSTALL_PROGRAM
) $(STRIPFLAG
) pythonw
"$(DESTDIR)$(prefix)/bin/python$(VERSION)"
53 ln
-sf python
$(VERSION
) "$(DESTDIR)$(prefix)/bin/python"
54 ln
-sf pythonw
$(VERSION
) "$(DESTDIR)$(prefix)/bin/pythonw"
57 # Install unix tools in /usr/local/bin. These are just aliases for the
58 # actual installation inside the framework.
61 if
[ ! -d
"$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ]; then \
62 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\
64 for fn in python pythonw idle pydoc python-config smtpd.py \
65 python
$(VERSION
) pythonw
$(VERSION
) idle
$(VERSION
) \
66 pydoc
$(VERSION
) python-config
$(VERSION
) smtpd
$(VERSION
).py
;\
68 ln
-fs
"$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
72 # Like installunixtools, but only install links to the versioned binaries.
75 if
[ ! -d
"$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ]; then \
76 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\
78 for fn in python
$(VERSION
) pythonw
$(VERSION
) idle
$(VERSION
) \
79 pydoc
$(VERSION
) python-config
$(VERSION
) smtpd
$(VERSION
).py
;\
81 ln
-fs
"$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\
85 # By default most tools are installed without a version in their basename, to
86 # make it easier to install (and use) several python versions side-by-side move
87 # the tools to a version-specific name and add the non-versioned name as an
89 install_versionedtools
:
90 for fn in idle pydoc python-config
;\
92 if
[ -h
"$(DESTDIR)$(prefix)/bin/$${fn}" ]; then \
95 mv
"$(DESTDIR)$(prefix)/bin/$${fn}" "$(DESTDIR)$(prefix)/bin/$${fn}$(VERSION)" ;\
96 ln
-sf
"$${fn}$(VERSION)" "$(DESTDIR)$(prefix)/bin/$${fn}" ;\
98 if
[ ! -h
"$(DESTDIR)$(prefix)/bin/smtpd.py" ]; then \
99 mv
"$(DESTDIR)$(prefix)/bin/smtpd.py" "$(DESTDIR)$(prefix)/bin/smtpd$(VERSION).py" ;\
100 ln
-sf
"smtpd$(VERSION).py" "$(DESTDIR)$(prefix)/bin/smtpd.py" ;\
104 pythonw
: $(srcdir)/Tools
/pythonw.c
105 $(CC
) $(LDFLAGS
) -o
$@
$(srcdir)/Tools
/pythonw.c \
106 -DPYTHONWEXECUTABLE
='"$(APPINSTALLDIR)/Contents/MacOS/Python"'
109 install_PythonLauncher
:
110 cd PythonLauncher
&& make
install DESTDIR
=$(DESTDIR
)
113 @if
test ! -f
$(DOCINDEX
); then \
114 echo WARNING
: you should run Apple Help Indexing Tool on
$(DOCDIR
); \
116 @for i in
"$(PYTHONAPPSDIR)" "$(APPINSTALLDIR)" "$(APPINSTALLDIR)/Contents"; do \
117 if
test ! -d
"$(DESTDIR)$$i"; then \
118 echo
"Creating directory $(DESTDIR)$$i"; \
119 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$$i"; \
122 @for i in
$(APPSUBDIRS
); do \
123 if
test ! -d
"$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; then \
124 echo
"Creating directory $(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \
125 $(INSTALL
) -d
-m
$(DIRMODE
) "$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \
129 @for d in .
$(APPSUBDIRS
); \
131 a
=$(APPTEMPLATE
)/$$d; \
132 if
test ! -d
$$a; then continue
; else true
; fi
; \
133 b
="$(DESTDIR)$(APPINSTALLDIR)/Contents/$$d"; \
143 echo
$(CPMAC
) "$$i" $$b; \
144 $(CPMAC
) "$$i" "$$b"; \
147 if
test -d
$$i; then continue
; fi
; \
148 if
test -x
$$i; then \
149 echo
$(INSTALL_SCRIPT
) "$$i" "$$b"; \
150 $(INSTALL_SCRIPT
) "$$i" "$$b"; \
152 echo
$(INSTALL_DATA
) "$$i" "$$b"; \
153 $(INSTALL_DATA
) "$$i" "$$b"; \
158 $(INSTALL_PROGRAM
) $(STRIPFLAG
) $(BUILDPYTHON
) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Python"
161 cd IDLE
&& make
install
164 $(RUNSHARED
) $(BUILDPYTHON
) $(srcdir)/scripts
/BuildApplet.py \
165 --destroot
"$(DESTDIR)" \
166 --python
$(INSTALLED_PYTHONAPP
) \
167 --output
"$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app" \
168 $(srcdir)/scripts
/BuildApplet.py
170 MACLIBDEST
=$(LIBDEST
)/plat-mac
171 MACTOOLSDEST
=$(prefix)/Mac
/Tools
172 MACTOOLSSRC
=$(srcdir)/Mac
/Tools
176 @for i in
$(MACTOOLSDEST
); \
178 if
test ! -d
$(DESTDIR
)$$i; then \
179 echo
"Creating directory $(DESTDIR)$$i"; \
180 $(INSTALL
) -d
-m
$(DIRMODE
) $(DESTDIR
)$$i; \
184 @for d in
$(MACTOOLSSUBDIRS
); \
186 a
=$(MACTOOLSSRC
)/$$d; \
187 if
test ! -d
$$a; then continue
; else true
; fi
; \
188 b
=$(DESTDIR
)$(MACTOOLSDEST
)/$$d; \
189 if
test ! -d
$$b; then \
190 echo
"Creating directory $$b"; \
191 $(INSTALL
) -d
-m
$(DIRMODE
) $$b; \
195 @for d in
$(MACTOOLSSUBDIRS
); \
197 a
=$(MACTOOLSSRC
)/$$d; \
198 if
test ! -d
$$a; then continue
; else true
; fi
; \
199 b
=$(DESTDIR
)$(MACTOOLSDEST
)/$$d; \
209 echo
$(CPMAC
) $$i $$b ; \
213 if
test -d
$$i; then continue
; fi
; \
214 if
test -x
$$i; then \
215 echo
$(INSTALL_SCRIPT
) $$i $$b; \
216 $(INSTALL_SCRIPT
) $$i $$b; \
218 echo
$(INSTALL_DATA
) $$i $$b; \
219 $(INSTALL_DATA
) $$i $$b; \
226 $(RUNSHARED
) $(BUILDPYTHON
) $(CACHERSRC
) -v
$(DESTDIR
)$(MACLIBDEST
) $(DESTDIR
)$(MACTOOLSDEST
)
227 $(RUNSHARED
) $(BUILDPYTHON
) -Wi
-tt
$(compileall
) -d
$(MACTOOLSDEST
) -x badsyntax
$(DESTDIR
)$(MACTOOLSDEST
)
228 $(RUNSHARED
) $(BUILDPYTHON
) -O
-Wi
-tt
$(compileall
) -d
$(MACTOOLSDEST
) -x badsyntax
$(DESTDIR
)$(MACTOOLSDEST
)
230 $(INSTALLED_PYTHONAPP
): install_Python
232 installextras
: $(srcdir)/Extras.ReadMe.txt
$(srcdir)/Extras.
install.py
233 $(INSTALL
) -d
"$(DESTDIR)$(PYTHONAPPSDIR)/Extras"
234 $(INSTALL
) $(srcdir)/Extras.ReadMe.txt
"$(DESTDIR)$(PYTHONAPPSDIR)/Extras/ReadMe.txt"
235 $(RUNSHARED
) $(BUILDPYTHON
) $(srcdir)/Extras.
install.py
$(srcdir)/..
/Demo \
236 "$(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo"
237 $(RUNSHARED
) $(BUILDPYTHON
) $(srcdir)/Extras.
install.py
$(srcdir)/Demo \
238 "$(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo.Mac"
241 checkapplepython
: $(srcdir)/Tools
/fixapplepython23.py
242 @if
! $(RUNSHARED
) $(BUILDPYTHON
) $(srcdir)/Tools
/fixapplepython23.py
-n
; then \
243 echo
"* WARNING: Apple-installed Python 2.3 will have trouble building extensions from now on."; \
244 echo
"* WARNING: Run $(srcdir)/Tools/fixapplepython23.py with \"sudo\" to fix this."; \
250 cd PythonLauncher
&& make
clean
251 cd IDLE
&& make
clean