Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 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. |
| 4 | |
| 5 | VERSION=@VERSION@ |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 6 | builddir = .. |
| 7 | srcdir=@srcdir@ |
Thomas Wouters | 0e3f591 | 2006-08-11 14:57:12 +0000 | [diff] [blame] | 8 | prefix=@prefix@ |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 9 | LIBDEST=$(prefix)/lib/python$(VERSION) |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 10 | RUNSHARED=@RUNSHARED@ |
| 11 | BUILDEXE=@BUILDEXEEXT@ |
| 12 | BUILDPYTHON=$(builddir)/python$(BUILDEXE) |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 13 | DESTDIR= |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 14 | LDFLAGS=@LDFLAGS@ |
| 15 | FRAMEWORKUNIXTOOLSPREFIX=@FRAMEWORKUNIXTOOLSPREFIX@ |
Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 16 | PYTHONFRAMEWORK=@PYTHONFRAMEWORK@ |
Ronald Oussoren | f29b6b4 | 2009-03-30 20:00:00 +0000 | [diff] [blame] | 17 | PYTHONFRAMEWORKIDENTIFIER=@PYTHONFRAMEWORKIDENTIFIER@ |
Ronald Oussoren | 6f6c562 | 2009-12-24 14:03:19 +0000 | [diff] [blame] | 18 | LIPO_32BIT_FLAGS=@LIPO_32BIT_FLAGS@ |
Ronald Oussoren | 755740f | 2010-02-07 19:56:39 +0000 | [diff] [blame] | 19 | CC=@CC@ |
Ronald Oussoren | 712979d | 2010-04-20 19:51:33 +0000 | [diff] [blame] | 20 | MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@ |
| 21 | export MACOSX_DEPLOYMENT_TARGET |
| 22 | |
Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 23 | |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 24 | |
| 25 | # These are normally glimpsed from the previous set |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 26 | bindir=$(prefix)/bin |
Ronald Oussoren | 86b33c8 | 2010-04-30 11:41:56 +0000 | [diff] [blame] | 27 | PYTHONAPPSDIR=@FRAMEWORKINSTALLAPPSPREFIX@/$(PYTHONFRAMEWORK) $(VERSION) |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 28 | APPINSTALLDIR=$(prefix)/Resources/Python.app |
| 29 | |
| 30 | # Variables for installing the "normal" unix binaries |
Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 31 | INSTALLED_PYTHONAPP=$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK) |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 32 | |
| 33 | # Items more-or-less copied from the main Makefile |
| 34 | DIRMODE=755 |
| 35 | FILEMODE=644 |
| 36 | INSTALL=@INSTALL@ |
| 37 | INSTALL_SYMLINK=ln -fsn |
| 38 | INSTALL_PROGRAM=@INSTALL_PROGRAM@ |
| 39 | INSTALL_SCRIPT= @INSTALL_SCRIPT@ |
| 40 | INSTALL_DATA=@INSTALL_DATA@ |
| 41 | LN=@LN@ |
| 42 | STRIPFLAG=-s |
Ned Deily | dfca8c9 | 2012-08-06 06:34:00 -0700 | [diff] [blame] | 43 | CPMAC=CpMac |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 44 | |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 45 | APPTEMPLATE=$(srcdir)/Resources/app |
Ned Deily | 430d7a3 | 2012-06-24 00:19:31 -0700 | [diff] [blame] | 46 | APPSUBDIRS=MacOS Resources |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 47 | compileall=$(srcdir)/../Lib/compileall.py |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 48 | |
Ned Deily | 430d7a3 | 2012-06-24 00:19:31 -0700 | [diff] [blame] | 49 | installapps: install_Python install_pythonw install_PythonLauncher install_IDLE |
Georg Brandl | fcaf910 | 2008-07-16 02:17:56 +0000 | [diff] [blame] | 50 | |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 51 | install_pythonw: pythonw |
| 52 | $(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)" |
| 53 | $(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/python$(VERSION)" |
Ronald Oussoren | 38e2d8e | 2009-05-17 10:45:53 +0000 | [diff] [blame] | 54 | ln -sf python$(VERSION) "$(DESTDIR)$(prefix)/bin/python3" |
| 55 | ln -sf pythonw$(VERSION) "$(DESTDIR)$(prefix)/bin/pythonw3" |
Ronald Oussoren | 6f6c562 | 2009-12-24 14:03:19 +0000 | [diff] [blame] | 56 | ifneq ($(LIPO_32BIT_FLAGS),) |
| 57 | lipo $(LIPO_32BIT_FLAGS) -output $(DESTDIR)$(prefix)/bin/python$(VERSION)-32 pythonw |
| 58 | lipo $(LIPO_32BIT_FLAGS) -output $(DESTDIR)$(prefix)/bin/pythonw$(VERSION)-32 pythonw |
Ronald Oussoren | 01d05ad | 2010-05-05 13:20:31 +0000 | [diff] [blame] | 59 | ln -sf pythonw$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/pythonw3-32" |
| 60 | ln -sf python$(VERSION)-32 "$(DESTDIR)$(prefix)/bin/python3-32" |
Ronald Oussoren | 6f6c562 | 2009-12-24 14:03:19 +0000 | [diff] [blame] | 61 | endif |
Georg Brandl | fcaf910 | 2008-07-16 02:17:56 +0000 | [diff] [blame] | 62 | |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 63 | # |
| 64 | # Install unix tools in /usr/local/bin. These are just aliases for the |
| 65 | # actual installation inside the framework. |
| 66 | # |
| 67 | installunixtools: |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 68 | if [ ! -d "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ]; then \ |
| 69 | $(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\ |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 70 | fi |
Ronald Oussoren | 38e2d8e | 2009-05-17 10:45:53 +0000 | [diff] [blame] | 71 | for fn in python3 pythonw3 idle3 pydoc3 python3-config \ |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 72 | python$(VERSION) pythonw$(VERSION) idle$(VERSION) \ |
Ronald Oussoren | afbca49 | 2009-05-26 21:18:59 +0000 | [diff] [blame] | 73 | pydoc$(VERSION) python$(VERSION)-config 2to3 \ |
Vinay Sajip | 7ded1f0 | 2012-05-26 03:45:29 +0100 | [diff] [blame] | 74 | 2to3-$(VERSION) pyvenv pyvenv-$(VERSION) ;\ |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 75 | do \ |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 76 | ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\ |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 77 | done |
Ned Deily | 6e5fd04 | 2011-05-28 05:59:55 -0700 | [diff] [blame] | 78 | ifneq ($(LIPO_32BIT_FLAGS),) |
| 79 | for fn in python3-32 pythonw3-32 \ |
| 80 | python$(VERSION)-32 pythonw$(VERSION)-32 ;\ |
| 81 | do \ |
| 82 | ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\ |
| 83 | done |
| 84 | endif |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 85 | |
Georg Brandl | fcaf910 | 2008-07-16 02:17:56 +0000 | [diff] [blame] | 86 | |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 87 | # |
| 88 | # Like installunixtools, but only install links to the versioned binaries. |
| 89 | # |
| 90 | altinstallunixtools: |
| 91 | if [ ! -d "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ]; then \ |
| 92 | $(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" ;\ |
| 93 | fi |
| 94 | for fn in python$(VERSION) pythonw$(VERSION) idle$(VERSION) \ |
Vinay Sajip | 7ded1f0 | 2012-05-26 03:45:29 +0100 | [diff] [blame] | 95 | pydoc$(VERSION) python$(VERSION)-config 2to3-$(VERSION) pyvenv-$(VERSION) ;\ |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 96 | do \ |
| 97 | ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\ |
| 98 | done |
Ned Deily | 6e5fd04 | 2011-05-28 05:59:55 -0700 | [diff] [blame] | 99 | ifneq ($(LIPO_32BIT_FLAGS),) |
| 100 | for fn in python$(VERSION)-32 pythonw$(VERSION)-32 ;\ |
| 101 | do \ |
| 102 | ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin/$${fn}" ;\ |
| 103 | done |
| 104 | endif |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 105 | |
Thomas Wouters | 89f507f | 2006-12-13 04:49:30 +0000 | [diff] [blame] | 106 | pythonw: $(srcdir)/Tools/pythonw.c Makefile |
Ronald Oussoren | b366cda | 2010-03-07 09:14:06 +0000 | [diff] [blame] | 107 | $(CC) $(LDFLAGS) -DPYTHONFRAMEWORK='"$(PYTHONFRAMEWORK)"' -o $@ $(srcdir)/Tools/pythonw.c -I.. -I$(srcdir)/../Include ../$(PYTHONFRAMEWORK).framework/Versions/$(VERSION)/$(PYTHONFRAMEWORK) |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 108 | |
| 109 | install_PythonLauncher: |
| 110 | cd PythonLauncher && make install DESTDIR=$(DESTDIR) |
| 111 | |
| 112 | install_Python: |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 113 | @for i in "$(PYTHONAPPSDIR)" "$(APPINSTALLDIR)" "$(APPINSTALLDIR)/Contents"; do \ |
| 114 | if test ! -d "$(DESTDIR)$$i"; then \ |
| 115 | echo "Creating directory $(DESTDIR)$$i"; \ |
| 116 | $(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$$i"; \ |
| 117 | fi;\ |
| 118 | done |
| 119 | @for i in $(APPSUBDIRS); do \ |
| 120 | if test ! -d "$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; then \ |
| 121 | echo "Creating directory $(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \ |
| 122 | $(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \ |
| 123 | else true; \ |
| 124 | fi; \ |
| 125 | done |
| 126 | @for d in . $(APPSUBDIRS); \ |
| 127 | do \ |
| 128 | a=$(APPTEMPLATE)/$$d; \ |
| 129 | if test ! -d $$a; then continue; else true; fi; \ |
| 130 | b="$(DESTDIR)$(APPINSTALLDIR)/Contents/$$d"; \ |
| 131 | for i in $$a/*; \ |
| 132 | do \ |
| 133 | case $$i in \ |
| 134 | *CVS) ;; \ |
| 135 | *.svn) ;; \ |
| 136 | *.py[co]) ;; \ |
| 137 | *.orig) ;; \ |
| 138 | *~) ;; \ |
| 139 | *idx) \ |
| 140 | echo $(CPMAC) "$$i" $$b; \ |
| 141 | $(CPMAC) "$$i" "$$b"; \ |
| 142 | ;; \ |
| 143 | *) \ |
| 144 | if test -d $$i; then continue; fi; \ |
| 145 | if test -x $$i; then \ |
| 146 | echo $(INSTALL_SCRIPT) "$$i" "$$b"; \ |
| 147 | $(INSTALL_SCRIPT) "$$i" "$$b"; \ |
| 148 | else \ |
| 149 | echo $(INSTALL_DATA) "$$i" "$$b"; \ |
| 150 | $(INSTALL_DATA) "$$i" "$$b"; \ |
| 151 | fi;; \ |
| 152 | esac; \ |
| 153 | done; \ |
| 154 | done |
Christian Heimes | 81ee3ef | 2008-05-04 22:42:01 +0000 | [diff] [blame] | 155 | $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/$(PYTHONFRAMEWORK)" |
Ronald Oussoren | f29b6b4 | 2009-03-30 20:00:00 +0000 | [diff] [blame] | 156 | sed -e "s!%bundleid%!$(PYTHONFRAMEWORKIDENTIFIER)!g" \ |
| 157 | -e "s!%version%!`$(RUNSHARED) $(BUILDPYTHON) \ |
| 158 | -c 'import platform; print(platform.python_version())'`!g" \ |
| 159 | < "$(DESTDIR)$(APPINSTALLDIR)/Contents/Info.plist.in" \ |
| 160 | > "$(DESTDIR)$(APPINSTALLDIR)/Contents/Info.plist" |
| 161 | rm "$(DESTDIR)$(APPINSTALLDIR)/Contents/Info.plist.in" |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 162 | |
Georg Brandl | fcaf910 | 2008-07-16 02:17:56 +0000 | [diff] [blame] | 163 | |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 164 | install_IDLE: |
Benjamin Peterson | de9c869 | 2008-07-01 18:23:09 +0000 | [diff] [blame] | 165 | test -d "$(DESTDIR)$(PYTHONAPPSDIR)" || mkdir -p "$(DESTDIR)$(PYTHONAPPSDIR)" |
Ronald Oussoren | 827822e | 2009-02-12 15:01:44 +0000 | [diff] [blame] | 166 | -test -d "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app" && rm -rf "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app" |
Ronald Oussoren | af11860 | 2009-01-02 11:48:29 +0000 | [diff] [blame] | 167 | /bin/cp -PR "$(srcdir)/IDLE/IDLE.app" "$(DESTDIR)$(PYTHONAPPSDIR)" |
Ronald Oussoren | 672f62a | 2009-02-12 15:18:15 +0000 | [diff] [blame] | 168 | ln -sf "$(INSTALLED_PYTHONAPP)" "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app/Contents/MacOS/Python" |
Ronald Oussoren | af11860 | 2009-01-02 11:48:29 +0000 | [diff] [blame] | 169 | sed -e "s!%prefix%!$(prefix)!g" -e 's!%exe%!$(PYTHONFRAMEWORK)!g' < "$(srcdir)/IDLE/IDLE.app/Contents/MacOS/IDLE" > "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app/Contents/MacOS/IDLE" |
Ronald Oussoren | 2160015 | 2008-12-30 12:59:02 +0000 | [diff] [blame] | 170 | sed "s!%version%!`$(RUNSHARED) $(BUILDPYTHON) -c 'import platform; print(platform.python_version())'`!g" < "$(srcdir)/IDLE/IDLE.app/Contents/Info.plist" > "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app/Contents/Info.plist" |
Ronald Oussoren | 711b578 | 2009-02-12 15:12:03 +0000 | [diff] [blame] | 171 | if [ -f "$(DESTDIR)$(LIBDEST)/idlelib/config-main.def" ]; then \ |
| 172 | /bin/cp -p "$(DESTDIR)$(LIBDEST)/idlelib/config-main.def" \ |
| 173 | "$(DESTDIR)$(LIBDEST)/idlelib/config-main.def~" ; \ |
| 174 | sed -e 's!name= IDLE Classic Windows!name= IDLE Classic OSX!g' \ |
| 175 | < "$(DESTDIR)$(LIBDEST)/idlelib/config-main.def~" \ |
| 176 | > "$(DESTDIR)$(LIBDEST)/idlelib/config-main.def" ; \ |
| 177 | rm "$(DESTDIR)$(LIBDEST)/idlelib/config-main.def~" ; \ |
| 178 | fi |
| 179 | if [ -f "$(DESTDIR)$(LIBDEST)/idlelib/config-extensions.def" ]; then \ |
| 180 | /bin/cp -p "$(DESTDIR)$(LIBDEST)/idlelib/config-extensions.def" \ |
| 181 | "$(DESTDIR)$(LIBDEST)/idlelib/config-extensions.def~" ; \ |
| 182 | sed -e 's!zoom-height=<Alt-Key-2>!zoom-height=<Option-Key-0>!g' \ |
| 183 | -e 's!<Alt-Key-!<Option-Key-!g' \ |
| 184 | < "$(DESTDIR)$(LIBDEST)/idlelib/config-extensions.def~" \ |
| 185 | > "$(DESTDIR)$(LIBDEST)/idlelib/config-extensions.def" ; \ |
| 186 | rm "$(DESTDIR)$(LIBDEST)/idlelib/config-extensions.def~" ; \ |
| 187 | fi |
Benjamin Peterson | de9c869 | 2008-07-01 18:23:09 +0000 | [diff] [blame] | 188 | touch "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app" |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 189 | |
Thomas Wouters | 73e5a5b | 2006-06-08 15:35:45 +0000 | [diff] [blame] | 190 | $(INSTALLED_PYTHONAPP): install_Python |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 191 | |
Ned Deily | eb698da | 2011-02-07 16:44:19 +0000 | [diff] [blame] | 192 | installextras: $(srcdir)/Extras.install.py |
| 193 | $(INSTALL) -d "$(DESTDIR)$(prefix)/share/doc/python$(VERSION)/examples" |
Ned Deily | 916f2a8 | 2011-01-15 05:05:53 +0000 | [diff] [blame] | 194 | $(RUNSHARED) $(BUILDPYTHON) $(srcdir)/Extras.install.py $(srcdir)/../Tools \ |
Ned Deily | eb698da | 2011-02-07 16:44:19 +0000 | [diff] [blame] | 195 | "$(DESTDIR)$(prefix)/share/doc/python$(VERSION)/examples/Tools" ; \ |
| 196 | chmod -R ugo+rX,go-w "$(DESTDIR)$(prefix)/share/doc/python$(VERSION)/examples/Tools" |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 197 | |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 198 | clean: |
| 199 | rm pythonw |
| 200 | cd PythonLauncher && make clean |
Thomas Wouters | 89f507f | 2006-12-13 04:49:30 +0000 | [diff] [blame] | 201 | |
| 202 | Makefile: $(srcdir)/Makefile.in ../config.status |
| 203 | cd .. && CONFIG_FILES=Mac/Makefile CONFIG_HEADERS= $(SHELL) ./config.status |