From 836b039b7cbcf99dd0864dcdffa30ef66a81d819 Mon Sep 17 00:00:00 2001 From: Ronald Oussoren Date: Sun, 14 May 2006 19:56:34 +0000 Subject: [PATCH] Rework the build system for osx applications: * Don't use xcodebuild for building PythonLauncher, but use a normal unix makefile. This makes it a lot easier to use the same build flags as for the rest of python (e.g. make a universal version of python launcher) * Convert the mac makefile-s to makefile.in-s and use configure to set makefile variables instead of forwarding them as command-line arguments * Add a C version of pythonw, that we you can use '#!/usr/local/bin/pythonw' * Build IDLE.app using bundlebuilder instead of BuildApplet, that will allow easier modification of the bundle contents later on. --- Lib/plat-mac/bundlebuilder.py | 23 +- Mac/OSX/IDLE/Makefile.in | 48 ++ Mac/OSX/IDLE/idlemain.py | 19 + Mac/OSX/Icons/IDLE.icns | Bin 0 -> 36565 bytes .../PythonCompiled.icns | Bin .../PythonLauncher.icns} | Bin .../PythonSource.icns | Bin Mac/OSX/Makefile | 273 ------- Mac/OSX/Makefile.in | 235 ++++++ .../PreferenceWindow.nib/classes.nib | 26 + .../PreferenceWindow.nib/info.nib | 16 + .../PreferenceWindow.nib/objects.nib | Bin 0 -> 5882 bytes Mac/OSX/PythonLauncher/Info.plist | 65 ++ Mac/OSX/PythonLauncher/Makefile.in | 77 ++ .../PythonLauncher.pbproj/project.pbxproj | 681 ------------------ Mac/OSX/PythonLauncher/PythonWSource.icns | Bin 49891 -> 0 bytes Mac/OSX/Tools/pythonw.c | 17 + Mac/OSXResources/framework/Info.plist | 4 +- Makefile.pre.in | 17 +- configure | 14 +- configure.in | 6 + 21 files changed, 547 insertions(+), 974 deletions(-) create mode 100644 Mac/OSX/IDLE/Makefile.in create mode 100644 Mac/OSX/IDLE/idlemain.py create mode 100644 Mac/OSX/Icons/IDLE.icns rename Mac/OSX/{PythonLauncher => Icons}/PythonCompiled.icns (100%) rename Mac/OSX/{PythonLauncher/PythonInterpreter.icns => Icons/PythonLauncher.icns} (100%) rename Mac/OSX/{PythonLauncher => Icons}/PythonSource.icns (100%) delete mode 100644 Mac/OSX/Makefile create mode 100644 Mac/OSX/Makefile.in create mode 100644 Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/classes.nib create mode 100644 Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/info.nib create mode 100644 Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/objects.nib create mode 100644 Mac/OSX/PythonLauncher/Info.plist create mode 100644 Mac/OSX/PythonLauncher/Makefile.in delete mode 100755 Mac/OSX/PythonLauncher/PythonLauncher.pbproj/project.pbxproj delete mode 100644 Mac/OSX/PythonLauncher/PythonWSource.icns create mode 100644 Mac/OSX/Tools/pythonw.c diff --git a/Lib/plat-mac/bundlebuilder.py b/Lib/plat-mac/bundlebuilder.py index 03d8c81776d7..aac92bd636af 100755 --- a/Lib/plat-mac/bundlebuilder.py +++ b/Lib/plat-mac/bundlebuilder.py @@ -145,11 +145,24 @@ class BundleBuilder(Defaults): self.message("Building %s" % repr(self.bundlepath), 1) if os.path.exists(self.bundlepath): shutil.rmtree(self.bundlepath) - os.mkdir(self.bundlepath) - self.preProcess() - self._copyFiles() - self._addMetaFiles() - self.postProcess() + if os.path.exists(self.bundlepath + '~'): + shutil.rmtree(self.bundlepath + '~') + bp = self.bundlepath + + # Create the app bundle in a temporary location and then + # rename the completed bundle. This way the Finder will + # never see an incomplete bundle (where it might pick up + # and cache the wrong meta data) + self.bundlepath = bp + '~' + try: + os.mkdir(self.bundlepath) + self.preProcess() + self._copyFiles() + self._addMetaFiles() + self.postProcess() + os.rename(self.bundlepath, bp) + finally: + self.bundlepath = bp self.message("Done.", 1) def preProcess(self): diff --git a/Mac/OSX/IDLE/Makefile.in b/Mac/OSX/IDLE/Makefile.in new file mode 100644 index 000000000000..26ecad4d41fa --- /dev/null +++ b/Mac/OSX/IDLE/Makefile.in @@ -0,0 +1,48 @@ +CC=@CC@ +LD=@CC@ +BASECFLAGS=@BASECFLAGS@ +OPT=@OPT@ +CFLAGS=$(BASECFLAGS) $(OPT) +LDFLAGS=@LDFLAGS@ +srcdir= @srcdir@ +VERSION= @VERSION@ +UNIVERSALSDK=@UNIVERSALSDK@ +builddir= ../../.. + +RUNSHARED= @RUNSHARED@ +BUILDEXE= @BUILDEXEEXT@ +BUILDPYTHON= ../../../python$(BUILDEXE) + +# Deployment target selected during configure, to be checked +# by distutils +MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@ +@EXPORT_MACOSX_DEPLOYMENT_TARGET@export MACOSX_DEPLOYMENT_TARGET + +BUNDLEBULDER=$(srcdir)/../../../Lib/plat-mac/bundlebuilder.py + +PYTHONAPPSDIR=/Applications/MacPython $(VERSION) + +all: IDLE.app + +install: IDLE.app + test -d "$(DESTDIR)$(PYTHONAPPSDIR)" || mkdir -p "$(DESTDIR)$(PYTHONAPPSDIR)" + -test -d "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app" && rm -r "$(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app" + cp -r IDLE.app "$(DESTDIR)$(PYTHONAPPSDIR)" + +clean: + rm -rf IDLE.app + +IDLE.app: \ + $(srcdir)/../Icons/IDLE.icns $(srcdir)/idlemain.py \ + $(srcdir)/../Icons/PythonSource.icns \ + $(srcdir)/../Icons/PythonCompiled.icns + rm -fr PythonLauncher.app + $(RUNSHARED) $(BUILDPYTHON) $(BUNDLEBULDER) \ + --builddir=. \ + --name=IDLE \ + --mainprogram=$(srcdir)/idlemain.py \ + --iconfile=$(srcdir)/../Icons/IDLE.icns \ + --bundle-id=org.python.IDLE \ + --resource=$(srcdir)/../Icons/PythonSource.icns \ + --resource=$(srcdir)/../Icons/PythonCompiled.icns \ + build diff --git a/Mac/OSX/IDLE/idlemain.py b/Mac/OSX/IDLE/idlemain.py new file mode 100644 index 000000000000..b7a3c0430ea5 --- /dev/null +++ b/Mac/OSX/IDLE/idlemain.py @@ -0,0 +1,19 @@ +import argvemulator +from idlelib.PyShell import main +import sys, os + +# Make sure sys.executable points to the python interpreter inside the +# framework, instead of at the helper executable inside the application +# bundle (the latter works, but doesn't allow access to the window server) +sys.executable = os.path.join(sys.prefix, 'bin', 'python') + +# Look for the -psn argument that the launcher adds and remove it, it will +# only confuse the IDLE startup code. +for idx, value in enumerate(sys.argv): + if value.startswith('-psn_'): + del sys.argv[idx] + break + +argvemulator.ArgvCollector().mainloop() +if __name__ == '__main__': + main() diff --git a/Mac/OSX/Icons/IDLE.icns b/Mac/OSX/Icons/IDLE.icns new file mode 100644 index 0000000000000000000000000000000000000000..ffe7ef0ff12063973438b1dec190060a1b017f6f GIT binary patch literal 36565 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 b+ESr;0shtWNA$mI9|Z6yJxY(#1E>E75oerK literal 0 Hc-jL100001 diff --git a/Mac/OSX/PythonLauncher/PythonCompiled.icns b/Mac/OSX/Icons/PythonCompiled.icns similarity index 100% rename from Mac/OSX/PythonLauncher/PythonCompiled.icns rename to Mac/OSX/Icons/PythonCompiled.icns diff --git a/Mac/OSX/PythonLauncher/PythonInterpreter.icns b/Mac/OSX/Icons/PythonLauncher.icns similarity index 100% rename from Mac/OSX/PythonLauncher/PythonInterpreter.icns rename to Mac/OSX/Icons/PythonLauncher.icns diff --git a/Mac/OSX/PythonLauncher/PythonSource.icns b/Mac/OSX/Icons/PythonSource.icns similarity index 100% rename from Mac/OSX/PythonLauncher/PythonSource.icns rename to Mac/OSX/Icons/PythonSource.icns diff --git a/Mac/OSX/Makefile b/Mac/OSX/Makefile deleted file mode 100644 index 10b0f5d3ccc3..000000000000 --- a/Mac/OSX/Makefile +++ /dev/null @@ -1,273 +0,0 @@ -# This file can be invoked from the various frameworkinstall... targets in the -# main Makefile. The next couple of variables are overridden on the -# commandline in that case. - -VERSION=2.5 -builddir = ../.. -srcdir = ../.. -prefix=/Library/Frameworks/Python.framework/Versions/$(VERSION) -LIBDEST=$(prefix)/lib/python$(VERSION) -BUILDPYTHON=$(builddir)/python.exe -DESTDIR= -# Test whether to use xcodebuild (preferred) or pbxbuild: -ifeq ($(shell ls /usr/bin/xcodebuild),/usr/bin/xcodebuild) -PBXBUILD=xcodebuild -else -PBXBUILD=pbxbuild -endif - -# These are normally glimpsed from the previous set -bindir=/usr/local/bin -PYTHONAPPSPATH=/Applications/MacPython-$(VERSION) -PYTHONAPPSDIR=$(PYTHONAPPSPATH) -APPINSTALLDIR=$(prefix)/Resources/Python.app - -# Variables for installing the "normal" unix binaries -INSTALLED_PYTHON=$(prefix)/bin/python -INSTALLED_PYTHONW=$(APPINSTALLDIR)/Contents/MacOS/Python - -# Items more-or-less copied from the main Makefile -DIRMODE=755 -FILEMODE=644 -INSTALL=/usr/bin/install -c -INSTALL_SYMLINK=ln -fsn -INSTALL_PROGRAM=${INSTALL} -INSTALL_SCRIPT= ${INSTALL_PROGRAM} -INSTALL_DATA= ${INSTALL} -m ${FILEMODE} -LN=ln -STRIPFLAG=-s -##OPT=-g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp \ -## -fno-common -dynamic -##INCLUDES=-I$(builddir) -I$(srcdir)/Include -I$(srcdir)/Mac/Include -##DEFINES= -## -##CFLAGS=$(OPT) $(DEFINES) $(INCLUDES) -##LDFLAGS=-F$(builddir) -framework System -framework Python -framework Carbon \ -## -framework Foundation -##CC=cc -##LD=cc -CPMAC=/Developer/Tools/CpMac - -APPTEMPLATE=$(srcdir)/Mac/OSXResources/app -APPSUBDIRS=MacOS Resources Resources/English.lproj \ - Resources/English.lproj/Documentation \ - Resources/English.lproj/Documentation/doc \ - Resources/English.lproj/Documentation/ide -DOCDIR=$(srcdir)/Mac/OSXResources/app/Resources/English.lproj/Documentation -DOCINDEX=$(DOCDIR)/"Documentation idx" -CACHERSRC=$(srcdir)/Mac/scripts/cachersrc.py -compileall=$(srcdir)/Lib/compileall.py -bundlebuilder=$(srcdir)/Lib/plat-mac/bundlebuilder.py - -installapps: install_PythonLauncher install_Python install_BuildApplet install_IDE \ - install_IDLE install_PackageManager checkapplepython - -install_PythonLauncher: - cd $(srcdir)/Mac/OSX/PythonLauncher/PythonLauncher.pbproj ; \ - $(PBXBUILD) -target PythonLauncher -buildstyle Deployment install \ - DSTROOT=$(DESTDIR)/ INSTALL_PATH=$(PYTHONAPPSPATH) - -install_Python: - @if test ! -f $(DOCINDEX); then \ - echo WARNING: you should run Apple Help Indexing Tool on $(DOCDIR); \ - fi - @for i in $(PYTHONAPPSDIR) $(APPINSTALLDIR) $(APPINSTALLDIR)/Contents; do \ - if test ! -d $(DESTDIR)$$i; then \ - echo "Creating directory $(DESTDIR)$$i"; \ - $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ - fi;\ - done - @for i in $(APPSUBDIRS); do \ - if test ! -d $(DESTDIR)$(APPINSTALLDIR)/Contents/$$i; then \ - echo "Creating directory $(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \ - $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(APPINSTALLDIR)/Contents/$$i; \ - else true; \ - fi; \ - done - @for d in . $(APPSUBDIRS); \ - do \ - a=$(APPTEMPLATE)/$$d; \ - if test ! -d $$a; then continue; else true; fi; \ - b=$(DESTDIR)$(APPINSTALLDIR)/Contents/$$d; \ - for i in $$a/*; \ - do \ - case $$i in \ - *CVS) ;; \ - *.py[co]) ;; \ - *.orig) ;; \ - *~) ;; \ - *idx) \ - echo $(CPMAC) "$$i" $$b; \ - $(CPMAC) "$$i" $$b; \ - ;; \ - *) \ - if test -d $$i; then continue; fi; \ - if test -x $$i; then \ - echo $(INSTALL_SCRIPT) $$i $$b; \ - $(INSTALL_SCRIPT) $$i $$b; \ - else \ - echo $(INSTALL_DATA) $$i $$b; \ - $(INSTALL_DATA) $$i $$b; \ - fi;; \ - esac; \ - done; \ - done - $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) $(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Python - -install_IDE: - @if ! $(BUILDPYTHON) -c "import waste"; then \ - echo PythonIDE needs the \"waste\" extension module; \ - echo See Mac/OSX/README for details; \ - else \ - echo $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ - --destroot "$(DESTDIR)" \ - --python $(INSTALLED_PYTHONW) \ - --output $(DESTDIR)$(PYTHONAPPSDIR)/PythonIDE.app --noargv \ - $(srcdir)/Mac/Tools/IDE/PythonIDE.py ; \ - $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ - --destroot "$(DESTDIR)" \ - --python $(INSTALLED_PYTHONW) \ - --output $(DESTDIR)$(PYTHONAPPSDIR)/PythonIDE.app --noargv \ - $(srcdir)/Mac/Tools/IDE/PythonIDE.py; \ - fi - -install_PackageManager: - @if ! $(BUILDPYTHON) -c "import waste"; then \ - echo PackageManager needs the \"waste\" extension module; \ - echo See Mac/OSX/README for details; \ - else \ - echo $(BUILDPYTHON) $(bundlebuilder) \ - --builddir $(DESTDIR)$(PYTHONAPPSDIR)/ \ - --destroot "$(DESTDIR)" \ - --python $(INSTALLED_PYTHONW) \ - --resource $(srcdir)/Mac/Tools/IDE/PythonIDE.rsrc \ - --mainprogram $(srcdir)/Mac/Tools/IDE/PackageManager.py \ - --iconfile $(srcdir)/Mac/Tools/IDE/PackageManager.icns \ - --creator Pimp build; \ - $(BUILDPYTHON) $(bundlebuilder) \ - --builddir $(DESTDIR)$(PYTHONAPPSDIR)/ \ - --destroot "$(DESTDIR)" \ - --python $(INSTALLED_PYTHONW) \ - --resource $(srcdir)/Mac/Tools/IDE/PythonIDE.rsrc \ - --mainprogram $(srcdir)/Mac/Tools/IDE/PackageManager.py \ - --iconfile $(srcdir)/Mac/Tools/IDE/PackageManager.icns \ - --creator Pimp build; \ - fi - -install_IDLE: - @if ! $(BUILDPYTHON) -c "import _tkinter"; then \ - echo IDLE needs the \"Tkinter\" extension module; \ - echo See Mac/OSX/README for details; \ - else \ - echo $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ - --python $(INSTALLED_PYTHONW) \ - --destroot "$(DESTDIR)" \ - --output $(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app \ - --extra $(srcdir)/Lib/idlelib \ - $(srcdir)/Tools/scripts/idle ; \ - $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ - --python $(INSTALLED_PYTHONW) \ - --destroot "$(DESTDIR)" \ - --output $(DESTDIR)$(PYTHONAPPSDIR)/IDLE.app \ - --extra $(srcdir)/Lib/idlelib:Contents/Resources/idlelib \ - $(srcdir)/Tools/scripts/idle ; \ - fi - - -install_BuildApplet: - $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ - --destroot "$(DESTDIR)" \ - --python $(INSTALLED_PYTHONW) \ - --output $(DESTDIR)$(PYTHONAPPSDIR)/BuildApplet.app \ - $(srcdir)/Mac/scripts/BuildApplet.py - -MACLIBDEST=$(LIBDEST)/plat-mac -MACTOOLSDEST=$(prefix)/Mac/Tools -MACTOOLSSRC=$(srcdir)/Mac/Tools -MACTOOLSSUBDIRS=IDE -installmacsubtree: - @for i in $(MACTOOLSDEST); \ - do \ - if test ! -d $(DESTDIR)$$i; then \ - echo "Creating directory $(DESTDIR)$$i"; \ - $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ - else true; \ - fi; \ - done - @for d in $(MACTOOLSSUBDIRS); \ - do \ - a=$(MACTOOLSSRC)/$$d; \ - if test ! -d $$a; then continue; else true; fi; \ - b=$(DESTDIR)$(MACTOOLSDEST)/$$d; \ - if test ! -d $$b; then \ - echo "Creating directory $$b"; \ - $(INSTALL) -d -m $(DIRMODE) $$b; \ - else true; \ - fi; \ - done - @for d in $(MACTOOLSSUBDIRS); \ - do \ - a=$(MACTOOLSSRC)/$$d; \ - if test ! -d $$a; then continue; else true; fi; \ - b=$(DESTDIR)$(MACTOOLSDEST)/$$d; \ - for i in $$a/*; \ - do \ - case $$i in \ - *CVS) ;; \ - *.py[co]) ;; \ - *.orig) ;; \ - *~) ;; \ - *.rsrc) \ - echo $(CPMAC) $$i $$b ; \ - $(CPMAC) $$i $$b ; \ - ;; \ - *) \ - if test -d $$i; then continue; fi; \ - if test -x $$i; then \ - echo $(INSTALL_SCRIPT) $$i $$b; \ - $(INSTALL_SCRIPT) $$i $$b; \ - else \ - echo $(INSTALL_DATA) $$i $$b; \ - $(INSTALL_DATA) $$i $$b; \ - fi;; \ - esac; \ - done; \ - done - - - $(BUILDPYTHON) $(CACHERSRC) -v $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST) - $(BUILDPYTHON) -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) - $(BUILDPYTHON) -O -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) - -# -# We use the full name here in stead of $(INSTALLED_PYTHONW), because -# the latter may be overridden by Makefile.jaguar when building for a pre-installed -# /usr/bin/python -$(APPINSTALLDIR)/Contents/MacOS/Python: install_Python - -# $(INSTALLED_PYTHON) has to be done by the main Makefile, we cannot do that here. -# At least this rule will give an error if it doesn't exist. - -installunixtools: - $(INSTALL) -d $(DESTDIR)$(bindir) - $(INSTALL_SYMLINK) $(INSTALLED_PYTHON) $(DESTDIR)$(bindir)/python$(VERSION) - $(INSTALL_SYMLINK) python$(VERSION) $(DESTDIR)$(bindir)/python - echo "#!/bin/sh" > pythonw.sh - echo "exec \"$(INSTALLED_PYTHONW)\" \"\$$@\"" >> pythonw.sh - $(INSTALL) pythonw.sh $(DESTDIR)$(bindir)/pythonw$(VERSION) - $(INSTALL_SYMLINK) pythonw$(VERSION) $(DESTDIR)$(bindir)/pythonw - -installextras: - $(INSTALL) -d $(DESTDIR)$(PYTHONAPPSDIR)/Extras - $(INSTALL) $(srcdir)/Mac/OSX/Extras.ReadMe.txt $(DESTDIR)$(PYTHONAPPSDIR)/Extras/ReadMe - $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Demo \ - $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo - $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Tools \ - $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Tools - -checkapplepython: - @if ! $(BUILDPYTHON) $(srcdir)/Mac/OSX/fixapplepython23.py -n; then \ - echo "* WARNING: Apple-installed Python 2.3 will have trouble building extensions from now on."; \ - echo "* WARNING: Run $(srcdir)/Mac/OSX/fixapplepython23.py with \"sudo\" to fix this."; \ - fi - diff --git a/Mac/OSX/Makefile.in b/Mac/OSX/Makefile.in new file mode 100644 index 000000000000..fd430f7c71f8 --- /dev/null +++ b/Mac/OSX/Makefile.in @@ -0,0 +1,235 @@ +# This file can be invoked from the various frameworkinstall... targets in the +# main Makefile. The next couple of variables are overridden on the +# commandline in that case. + +VERSION=@VERSION@ +builddir = ../.. +srcdir = @srcdir@ +prefix=/Library/Frameworks/Python.framework/Versions/$(VERSION) +LIBDEST=$(prefix)/lib/python$(VERSION) +BUILDPYTHON=$(builddir)/python.exe +DESTDIR= + +# These are normally glimpsed from the previous set +bindir=@exec_prefix@/bin +PYTHONAPPSDIR=/Applications/MacPython $(VERSION) +APPINSTALLDIR=$(prefix)/Resources/Python.app + +# Variables for installing the "normal" unix binaries +INSTALLED_PYDOC=$(prefix)/bin/pydoc +INSTALLED_IDLE=$(prefix)/bin/idle +INSTALLED_PYTHON=$(prefix)/bin/python +INSTALLED_PYTHONW=$(prefix)/bin/pythonw +INSTALLED_PYTHONAPP=$(APPINSTALLDIR)/Contents/MacOS/Python + +# Items more-or-less copied from the main Makefile +DIRMODE=755 +FILEMODE=644 +INSTALL=@INSTALL@ +INSTALL_SYMLINK=ln -fsn +INSTALL_PROGRAM=@INSTALL_PROGRAM@ +INSTALL_SCRIPT= @INSTALL_SCRIPT@ +INSTALL_DATA=@INSTALL_DATA@ +LN=@LN@ +STRIPFLAG=-s +CPMAC=/Developer/Tools/CpMac + +APPTEMPLATE=$(srcdir)/OSXResources/app +APPSUBDIRS=MacOS Resources Resources/English.lproj \ + Resources/English.lproj/Documentation \ + Resources/English.lproj/Documentation/doc \ + Resources/English.lproj/Documentation/ide +DOCDIR=$(srcdir)/Mac/OSXResources/app/Resources/English.lproj/Documentation +DOCINDEX=$(DOCDIR)/"Documentation idx" +CACHERSRC=$(srcdir)/../scripts/cachersrc.py +compileall=$(srcdir)/../../Lib/compileall.py + +installapps: install_Python install_BuildApplet install_PythonLauncher \ + install_IDLE checkapplepython install_pythonw install_versionedtools + +install_pythonw: pythonw + $(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/pythonw$(VERSION)" + $(INSTALL_PROGRAM) $(STRIPFLAG) pythonw "$(DESTDIR)$(prefix)/bin/python$(VERSION)" + ln -sf python$(VERSION) "$(DESTDIR)$(prefix)/bin/python" + ln -sf pythonw$(VERSION) "$(DESTDIR)$(prefix)/bin/pythonw" + +# +# Install unix tools in /usr/local/bin. These are just aliases for the +# actual installation inside the framework. +# +installunixtools: + if [ ! -d "$(DESTDIR)/usr/local/bin" ]; then \ + $(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)/usr/local/bin" ;\ + fi + for fn in `ls "$(DESTDIR)$(prefix)/bin/"` ; \ + do \ + ln -fs "$(prefix)/bin/$${fn}" "$(DESTDIR)/usr/local/bin/$${fn}" ;\ + done + +# By default most tools are installed without a version in their basename, to +# make it easier to install (and use) several python versions side-by-side move +# the tools to a version-specific name and add the non-versioned name as an +# alias. +install_versionedtools: + for fn in idle pydoc python-config ;\ + do \ + mv "$(DESTDIR)$(prefix)/bin/$${fn}" "$(DESTDIR)$(prefix)/bin/$${fn}$(VERSION)" ;\ + ln -sf "$${fn}$(VERSION)" "$${fn}" ;\ + done + rm -f "$(DESTDIR)$(prefix)/bin/smtpd.py" + + +pythonw: $(srcdir)/Tools/pythonw.c + $(CC) $(LDFLAGS) -o $@ $(srcdir)/Tools/pythonw.c \ + -DPYTHONWEXECUTABLE='"$(APPINSTALLDIR)/Contents/MacOS/Python"' + + +install_PythonLauncher: + cd PythonLauncher && make install DESTDIR=$(DESTDIR) + +install_Python: + @if test ! -f $(DOCINDEX); then \ + echo WARNING: you should run Apple Help Indexing Tool on $(DOCDIR); \ + fi + @for i in "$(PYTHONAPPSDIR)" "$(APPINSTALLDIR)" "$(APPINSTALLDIR)/Contents"; do \ + if test ! -d "$(DESTDIR)$$i"; then \ + echo "Creating directory $(DESTDIR)$$i"; \ + $(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$$i"; \ + fi;\ + done + @for i in $(APPSUBDIRS); do \ + if test ! -d "$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; then \ + echo "Creating directory $(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \ + $(INSTALL) -d -m $(DIRMODE) "$(DESTDIR)$(APPINSTALLDIR)/Contents/$$i"; \ + else true; \ + fi; \ + done + @for d in . $(APPSUBDIRS); \ + do \ + a=$(APPTEMPLATE)/$$d; \ + if test ! -d $$a; then continue; else true; fi; \ + b="$(DESTDIR)$(APPINSTALLDIR)/Contents/$$d"; \ + for i in $$a/*; \ + do \ + case $$i in \ + *CVS) ;; \ + *.svn) ;; \ + *.py[co]) ;; \ + *.orig) ;; \ + *~) ;; \ + *idx) \ + echo $(CPMAC) "$$i" $$b; \ + $(CPMAC) "$$i" "$$b"; \ + ;; \ + *) \ + if test -d $$i; then continue; fi; \ + if test -x $$i; then \ + echo $(INSTALL_SCRIPT) "$$i" "$$b"; \ + $(INSTALL_SCRIPT) "$$i" "$$b"; \ + else \ + echo $(INSTALL_DATA) "$$i" "$$b"; \ + $(INSTALL_DATA) "$$i" "$$b"; \ + fi;; \ + esac; \ + done; \ + done + $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) "$(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Python" + +install_IDLE: + cd IDLE && make install + +install_BuildApplet: + $(BUILDPYTHON) $(srcdir)/../scripts/BuildApplet.py \ + --destroot "$(DESTDIR)" \ + --python $(INSTALLED_PYTHONAPP) \ + --output "$(DESTDIR)$(PYTHONAPPSDIR)/BuildApplet.app" \ + $(srcdir)/../scripts/BuildApplet.py + +MACLIBDEST=$(LIBDEST)/plat-mac +MACTOOLSDEST=$(prefix)/Mac/Tools +MACTOOLSSRC=$(srcdir)/Mac/Tools +MACTOOLSSUBDIRS=IDE + +installmacsubtree: + @for i in $(MACTOOLSDEST); \ + do \ + if test ! -d $(DESTDIR)$$i; then \ + echo "Creating directory $(DESTDIR)$$i"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \ + else true; \ + fi; \ + done + @for d in $(MACTOOLSSUBDIRS); \ + do \ + a=$(MACTOOLSSRC)/$$d; \ + if test ! -d $$a; then continue; else true; fi; \ + b=$(DESTDIR)$(MACTOOLSDEST)/$$d; \ + if test ! -d $$b; then \ + echo "Creating directory $$b"; \ + $(INSTALL) -d -m $(DIRMODE) $$b; \ + else true; \ + fi; \ + done + @for d in $(MACTOOLSSUBDIRS); \ + do \ + a=$(MACTOOLSSRC)/$$d; \ + if test ! -d $$a; then continue; else true; fi; \ + b=$(DESTDIR)$(MACTOOLSDEST)/$$d; \ + for i in $$a/*; \ + do \ + case $$i in \ + *CVS) ;; \ + *.svn) ;; \ + *.py[co]) ;; \ + *.orig) ;; \ + *~) ;; \ + *.rsrc) \ + echo $(CPMAC) $$i $$b ; \ + $(CPMAC) $$i $$b ; \ + ;; \ + *) \ + if test -d $$i; then continue; fi; \ + if test -x $$i; then \ + echo $(INSTALL_SCRIPT) $$i $$b; \ + $(INSTALL_SCRIPT) $$i $$b; \ + else \ + echo $(INSTALL_DATA) $$i $$b; \ + $(INSTALL_DATA) $$i $$b; \ + fi;; \ + esac; \ + done; \ + done + + + $(BUILDPYTHON) $(CACHERSRC) -v $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST) + $(BUILDPYTHON) -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) + $(BUILDPYTHON) -O -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) + +# +# We use the full name here in stead of $(INSTALLED_PYTHONAPP), because +# the latter may be overridden by Makefile.jaguar when building for a pre-installed +$(INSTALLED_PYTHONAPP)/Contents/MacOS/Python: install_Python + +# $(INSTALLED_PYTHON) has to be done by the main Makefile, we cannot do that here. +# At least this rule will give an error if it doesn't exist. + +installextras: + $(INSTALL) -d "$(DESTDIR)$(PYTHONAPPSDIR)/Extras" + $(INSTALL) $(srcdir)/Mac/OSX/Extras.ReadMe.txt "$(DESTDIR)$(PYTHONAPPSDIR)/Extras/ReadMe.txt" + $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Demo \ + "$(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo" + + +checkapplepython: + @if ! $(BUILDPYTHON) $(srcdir)/Mac/OSX/fixapplepython23.py -n; then \ + echo "* WARNING: Apple-installed Python 2.3 will have trouble building extensions from now on."; \ + echo "* WARNING: Run $(srcdir)/Mac/OSX/fixapplepython23.py with \"sudo\" to fix this."; \ + fi + + +clean: + rm pythonw + cd PythonLauncher && make clean + cd IDLE && make clean + + diff --git a/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/classes.nib b/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/classes.nib new file mode 100644 index 000000000000..467aa8b26121 --- /dev/null +++ b/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/classes.nib @@ -0,0 +1,26 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {"do_apply" = id; "do_filetype" = id; "do_reset" = id; }; + CLASS = PreferencesWindowController; + LANGUAGE = ObjC; + OUTLETS = { + commandline = NSTextField; + debug = NSButton; + filetype = NSPopUpButton; + honourhashbang = NSButton; + inspect = NSButton; + interpreter = NSTextField; + nosite = NSButton; + optimize = NSButton; + others = NSTextField; + tabs = NSButton; + verbose = NSButton; + "with_terminal" = NSButton; + }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/info.nib b/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/info.nib new file mode 100644 index 000000000000..bc558f7e8285 --- /dev/null +++ b/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 565 235 519 534 0 0 1280 1002 + IBFramework Version + 364.0 + IBOpenObjects + + 5 + + IBSystem Version + 7H63 + + diff --git a/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/objects.nib b/Mac/OSX/PythonLauncher/English.lproj/PreferenceWindow.nib/objects.nib new file mode 100644 index 0000000000000000000000000000000000000000..3dfed33cbdb5b263001bd8bc5a1fd7ec268d704c GIT binary patch literal 5882 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 literal 0 Hc-jL100001 diff --git a/Mac/OSX/PythonLauncher/Info.plist b/Mac/OSX/PythonLauncher/Info.plist new file mode 100644 index 000000000000..5e9e45727109 --- /dev/null +++ b/Mac/OSX/PythonLauncher/Info.plist @@ -0,0 +1,65 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + py + pyw + + CFBundleTypeIconFile + PythonSource.icns + CFBundleTypeName + Python Script + CFBundleTypeRole + Viewer + NSDocumentClass + MyDocument + + + CFBundleTypeExtensions + + pyc + pyo + + CFBundleTypeIconFile + PythonCompiled.icns + CFBundleTypeName + Python Bytecode Document + CFBundleTypeRole + Viewer + NSDocumentClass + MyDocument + + + CFBundleExecutable + PythonLauncher + CFBundleGetInfoString + 2.5, © 2001-2006 Python Software Foundation + CFBundleIconFile + PythonLauncher.icns + CFBundleIdentifier + org.python.PythonLauncher + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + PythonLauncher + CFBundlePackageType + APPL + CFBundleShortVersionString + 2.5 + CFBundleSignature + PytL + CFBundleVersion + 2.5 + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/Mac/OSX/PythonLauncher/Makefile.in b/Mac/OSX/PythonLauncher/Makefile.in new file mode 100644 index 000000000000..41ea9d52a04a --- /dev/null +++ b/Mac/OSX/PythonLauncher/Makefile.in @@ -0,0 +1,77 @@ +CC=@CC@ +LD=@CC@ +BASECFLAGS=@BASECFLAGS@ +OPT=@OPT@ +CFLAGS=$(BASECFLAGS) $(OPT) +LDFLAGS=@LDFLAGS@ +srcdir= @srcdir@ +VERSION= @VERSION@ +UNIVERSALSDK=@UNIVERSALSDK@ +builddir= ../../.. + +RUNSHARED= @RUNSHARED@ +BUILDEXE= @BUILDEXEEXT@ +BUILDPYTHON= ../../../python$(BUILDEXE) + +# Deployment target selected during configure, to be checked +# by distutils +MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@ +@EXPORT_MACOSX_DEPLOYMENT_TARGET@export MACOSX_DEPLOYMENT_TARGET + +BUNDLEBULDER=$(srcdir)/../../../Lib/plat-mac/bundlebuilder.py + +PYTHONAPPSDIR=/Applications/MacPython $(VERSION) +OBJECTS=FileSettings.o MyAppDelegate.o MyDocument.o PreferencesWindowController.o doscript.o main.o + +all: Python\ Launcher.app + +install: Python\ Launcher.app + test -d "$(DESTDIR)$(PYTHONAPPSDIR)" || mkdir -p "$(DESTDIR)$(PYTHONAPPSDIR)" + -test -d "$(DESTDIR)$(PYTHONAPPSDIR)/Python Launcher.app" && rm -r "$(DESTDIR)$(PYTHONAPPSDIR)/Python Launcher.app" + cp -r "Python Launcher.app" "$(DESTDIR)$(PYTHONAPPSDIR)" + +clean: + rm -f *.o "Python Launcher" + rm -rf "Python Launcher.app" + +Python\ Launcher.app: \ + Python\ Launcher $(srcdir)/../Icons/PythonLauncher.icns \ + $(srcdir)/../Icons/PythonSource.icns \ + $(srcdir)/../Icons/PythonCompiled.icns \ + $(srcdir)/factorySettings.plist + rm -fr "Python Launcher.app" + $(RUNSHARED) $(BUILDPYTHON) $(BUNDLEBULDER) \ + --builddir=. \ + --name="Python Launcher" \ + --executable="Python Launcher" \ + --iconfile=$(srcdir)/../Icons/PythonLauncher.icns \ + --bundle-id=org.python.PythonLauncher \ + --resource=$(srcdir)/../Icons/PythonSource.icns \ + --resource=$(srcdir)/../Icons/PythonCompiled.icns \ + --resource=$(srcdir)/English.lproj \ + --resource=$(srcdir)/factorySettings.plist \ + --plist=$(srcdir)/Info.plist \ + build + find "Python Launcher.app" -name '.svn' -print0 | xargs -0 rm -r + + +FileSettings.o: $(srcdir)/FileSettings.m + $(CC) $(CFLAGS) -o $@ -c $(srcdir)/FileSettings.m + +MyAppDelegate.o: $(srcdir)/MyAppDelegate.m + $(CC) $(CFLAGS) -o $@ -c $(srcdir)/MyAppDelegate.m + +MyDocument.o: $(srcdir)/MyDocument.m + $(CC) $(CFLAGS) -o $@ -c $(srcdir)/MyDocument.m + +PreferencesWindowController.o: $(srcdir)/PreferencesWindowController.m + $(CC) $(CFLAGS) -o $@ -c $(srcdir)/PreferencesWindowController.m + +doscript.o: $(srcdir)/doscript.m + $(CC) $(CFLAGS) -o $@ -c $(srcdir)/doscript.m + +main.o: $(srcdir)/main.m + $(CC) $(CFLAGS) -o $@ -c $(srcdir)/main.m + +Python\ Launcher: $(OBJECTS) + $(CC) $(LDFLAGS) -o "Python Launcher" $(OBJECTS) -framework AppKit -framework Carbon diff --git a/Mac/OSX/PythonLauncher/PythonLauncher.pbproj/project.pbxproj b/Mac/OSX/PythonLauncher/PythonLauncher.pbproj/project.pbxproj deleted file mode 100755 index 06e45dc4fccb..000000000000 --- a/Mac/OSX/PythonLauncher/PythonLauncher.pbproj/project.pbxproj +++ /dev/null @@ -1,681 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 38; - objects = { - 080E96D9FE201CDB7F000001 = { - fileRef = 2A37F4B9FDCFA73011CA2CEA; - isa = PBXBuildFile; - settings = { - }; - }; - 080E96DAFE201CDB7F000001 = { - fileRef = 2A37F4B6FDCFA73011CA2CEA; - isa = PBXBuildFile; - settings = { - }; - }; - 080E96DBFE201CDB7F000001 = { - fileRef = 2A37F4B4FDCFA73011CA2CEA; - isa = PBXBuildFile; - settings = { - }; - }; - 089C165FFE840EACC02AAC07 = { - children = ( - 089C1660FE840EACC02AAC07, - ); - isa = PBXVariantGroup; - name = InfoPlist.strings; - refType = 4; - }; - 089C1660FE840EACC02AAC07 = { - fileEncoding = 10; - isa = PBXFileReference; - name = English; - path = English.lproj/InfoPlist.strings; - refType = 4; - }; - 089C1661FE840EACC02AAC07 = { - fileRef = 089C165FFE840EACC02AAC07; - isa = PBXBuildFile; - settings = { - }; - }; -//080 -//081 -//082 -//083 -//084 -//100 -//101 -//102 -//103 -//104 - 1058C7A6FEA54F5311CA2CBB = { - children = ( - 1058C7A7FEA54F5311CA2CBB, - F5AA9D0102F807EE0110C447, - ); - isa = PBXGroup; - name = "Linked Frameworks"; - refType = 4; - }; - 1058C7A7FEA54F5311CA2CBB = { - isa = PBXFrameworkReference; - name = Cocoa.framework; - path = /System/Library/Frameworks/Cocoa.framework; - refType = 0; - }; - 1058C7A8FEA54F5311CA2CBB = { - children = ( - 2A37F4C5FDCFA73011CA2CEA, - 2A37F4C4FDCFA73011CA2CEA, - ); - isa = PBXGroup; - name = "Other Frameworks"; - refType = 4; - }; - 1058C7A9FEA54F5311CA2CBB = { - fileRef = 1058C7A7FEA54F5311CA2CBB; - isa = PBXBuildFile; - settings = { - }; - }; -//100 -//101 -//102 -//103 -//104 -//170 -//171 -//172 -//173 -//174 - 1758732AFF379DA111CA2CBB = { - isa = PBXApplicationReference; - path = PythonLauncher.app; - refType = 3; - }; -//170 -//171 -//172 -//173 -//174 -//190 -//191 -//192 -//193 -//194 - 19C28FB0FE9D524F11CA2CBB = { - children = ( - 1758732AFF379DA111CA2CBB, - ); - isa = PBXGroup; - name = Products; - refType = 4; - }; -//190 -//191 -//192 -//193 -//194 -//2A0 -//2A1 -//2A2 -//2A3 -//2A4 - 2A37F4A9FDCFA73011CA2CEA = { - buildStyles = ( - 4A9504D0FFE6A4CB11CA0CBA, - 4A9504D1FFE6A4CB11CA0CBA, - ); - isa = PBXProject; - mainGroup = 2A37F4AAFDCFA73011CA2CEA; - projectDirPath = ""; - targets = ( - 2A37F4C6FDCFA73011CA2CEA, - ); - }; - 2A37F4AAFDCFA73011CA2CEA = { - children = ( - 2A37F4ABFDCFA73011CA2CEA, - 2A37F4AFFDCFA73011CA2CEA, - 2A37F4B8FDCFA73011CA2CEA, - 2A37F4C3FDCFA73011CA2CEA, - 19C28FB0FE9D524F11CA2CBB, - ); - isa = PBXGroup; - name = PythonLauncher; - path = ""; - refType = 4; - }; - 2A37F4ABFDCFA73011CA2CEA = { - children = ( - 2A37F4AEFDCFA73011CA2CEA, - 2A37F4ACFDCFA73011CA2CEA, - F52A90CD02EB5C6A01000102, - F52A90CE02EB5C6A01000102, - F5A4C14002F2055C01000102, - F5A4C14102F2055C01000102, - F5A4C14402F2070D01000102, - F5A4C14502F2070D01000102, - ); - isa = PBXGroup; - name = Classes; - path = ""; - refType = 4; - }; - 2A37F4ACFDCFA73011CA2CEA = { - fileEncoding = 30; - isa = PBXFileReference; - path = MyDocument.m; - refType = 4; - }; - 2A37F4AEFDCFA73011CA2CEA = { - fileEncoding = 30; - isa = PBXFileReference; - path = MyDocument.h; - refType = 4; - }; - 2A37F4AFFDCFA73011CA2CEA = { - children = ( - F5AA9C6A02F8042D0110C447, - 2A37F4B0FDCFA73011CA2CEA, - F5AAA21D02F8115D0110C447, - ); - isa = PBXGroup; - name = "Other Sources"; - path = ""; - refType = 4; - }; - 2A37F4B0FDCFA73011CA2CEA = { - fileEncoding = 30; - isa = PBXFileReference; - path = main.m; - refType = 4; - }; - 2A37F4B4FDCFA73011CA2CEA = { - children = ( - 2A37F4B5FDCFA73011CA2CEA, - ); - isa = PBXVariantGroup; - name = MyDocument.nib; - path = ""; - refType = 4; - }; - 2A37F4B5FDCFA73011CA2CEA = { - isa = PBXFileReference; - name = English; - path = English.lproj/MyDocument.nib; - refType = 4; - }; - 2A37F4B6FDCFA73011CA2CEA = { - children = ( - 2A37F4B7FDCFA73011CA2CEA, - ); - isa = PBXVariantGroup; - name = MainMenu.nib; - path = ""; - refType = 4; - }; - 2A37F4B7FDCFA73011CA2CEA = { - isa = PBXFileReference; - name = English; - path = English.lproj/MainMenu.nib; - refType = 4; - }; - 2A37F4B8FDCFA73011CA2CEA = { - children = ( - F58D4A3A02F1F94B01000102, - F58D4A3B02F1F94B01000102, - F58D4A3C02F1F94B01000102, - F5449B4B02FB3F7E01000102, - 2A37F4B9FDCFA73011CA2CEA, - 2A37F4B6FDCFA73011CA2CEA, - 2A37F4B4FDCFA73011CA2CEA, - F5A4C13E02F203F601000102, - 089C165FFE840EACC02AAC07, - F5A42167038BDD8E0110C447, - ); - isa = PBXGroup; - name = Resources; - path = ""; - refType = 4; - }; - 2A37F4B9FDCFA73011CA2CEA = { - children = ( - 2A37F4BAFDCFA73011CA2CEA, - ); - isa = PBXVariantGroup; - name = Credits.rtf; - path = ""; - refType = 4; - }; - 2A37F4BAFDCFA73011CA2CEA = { - isa = PBXFileReference; - name = English; - path = English.lproj/Credits.rtf; - refType = 4; - }; - 2A37F4C3FDCFA73011CA2CEA = { - children = ( - 1058C7A6FEA54F5311CA2CBB, - 1058C7A8FEA54F5311CA2CBB, - ); - isa = PBXGroup; - name = Frameworks; - path = ""; - refType = 4; - }; - 2A37F4C4FDCFA73011CA2CEA = { - isa = PBXFrameworkReference; - name = AppKit.framework; - path = /System/Library/Frameworks/AppKit.framework; - refType = 0; - }; - 2A37F4C5FDCFA73011CA2CEA = { - isa = PBXFrameworkReference; - name = Foundation.framework; - path = /System/Library/Frameworks/Foundation.framework; - refType = 0; - }; - 2A37F4C6FDCFA73011CA2CEA = { - buildPhases = ( - 2A37F4C7FDCFA73011CA2CEA, - 2A37F4C9FDCFA73011CA2CEA, - 2A37F4CEFDCFA73011CA2CEA, - 2A37F4D1FDCFA73011CA2CEA, - ); - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ""; - HEADER_SEARCH_PATHS = ""; - INSTALL_MODE_FLAG = "a+rX"; - INSTALL_PATH = /Applications/Python; - LIBRARY_SEARCH_PATHS = ""; - OPTIMIZATION_CFLAGS = "-O0"; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = PythonLauncher; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; - WRAPPER_EXTENSION = app; - }; - dependencies = ( - ); - isa = PBXApplicationTarget; - name = PythonLauncher; - productInstallPath = /Applications/Python; - productName = PythonLauncher; - productReference = 1758732AFF379DA111CA2CBB; - productSettingsXML = " - - - - CFBundleDevelopmentRegion - English - CFBundleDocumentTypes - - - CFBundleTypeExtensions - - py - - CFBundleTypeIconFile - PythonSource.icns - CFBundleTypeName - Python Script - CFBundleTypeRole - Viewer - NSDocumentClass - MyDocument - - - CFBundleTypeExtensions - - pyw - - CFBundleTypeIconFile - PythonWSource.icns - CFBundleTypeName - Python GUI Script - CFBundleTypeRole - Viewer - NSDocumentClass - MyDocument - - - CFBundleTypeExtensions - - pyc - - CFBundleTypeIconFile - PythonCompiled.icns - CFBundleTypeName - Python Bytecode Document - CFBundleTypeRole - Viewer - NSDocumentClass - MyDocument - - - CFBundleExecutable - PythonLauncher - CFBundleGetInfoString - 2.3, © 2001-2003 Python Software Foundation - CFBundleIconFile - PythonInterpreter.icns - CFBundleIdentifier - org.python.PythonLauncher - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - PythonLauncher - CFBundlePackageType - APPL - CFBundleShortVersionString - 2.3 - CFBundleSignature - PytL - CFBundleVersion - 2.3 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - -"; - shouldUseHeadermap = 0; - }; - 2A37F4C7FDCFA73011CA2CEA = { - buildActionMask = 2147483647; - files = ( - 2A37F4C8FDCFA73011CA2CEA, - F52A90D002EB5C6A01000102, - F5A4C14202F2055D01000102, - F5A4C14702F2070D01000102, - F5AA9C6C02F8042D0110C447, - ); - isa = PBXHeadersBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 2A37F4C8FDCFA73011CA2CEA = { - fileRef = 2A37F4AEFDCFA73011CA2CEA; - isa = PBXBuildFile; - settings = { - }; - }; - 2A37F4C9FDCFA73011CA2CEA = { - buildActionMask = 2147483647; - files = ( - 080E96D9FE201CDB7F000001, - 080E96DAFE201CDB7F000001, - 080E96DBFE201CDB7F000001, - 089C1661FE840EACC02AAC07, - F58D4A3D02F1F94B01000102, - F58D4A3E02F1F94B01000102, - F58D4A3F02F1F94B01000102, - F5A4C13F02F203F701000102, - F5449B4C02FB3F7E01000102, - F5A42168038BDD8E0110C447, - ); - isa = PBXResourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 2A37F4CEFDCFA73011CA2CEA = { - buildActionMask = 2147483647; - files = ( - 2A37F4CFFDCFA73011CA2CEA, - 2A37F4D0FDCFA73011CA2CEA, - F52A90CF02EB5C6A01000102, - F5A4C14302F2055D01000102, - F5A4C14602F2070D01000102, - F5AAA21E02F8115D0110C447, - ); - isa = PBXSourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 2A37F4CFFDCFA73011CA2CEA = { - fileRef = 2A37F4ACFDCFA73011CA2CEA; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - ); - }; - }; - 2A37F4D0FDCFA73011CA2CEA = { - fileRef = 2A37F4B0FDCFA73011CA2CEA; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - ); - }; - }; - 2A37F4D1FDCFA73011CA2CEA = { - buildActionMask = 2147483647; - files = ( - 1058C7A9FEA54F5311CA2CBB, - F5AA9D9B02F807EF0110C447, - ); - isa = PBXFrameworksBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; -//2A0 -//2A1 -//2A2 -//2A3 -//2A4 -//4A0 -//4A1 -//4A2 -//4A3 -//4A4 - 4A9504D0FFE6A4CB11CA0CBA = { - buildRules = ( - ); - buildSettings = { - COPY_PHASE_STRIP = NO; - OPTIMIZATION_CFLAGS = "-O0"; - }; - isa = PBXBuildStyle; - name = Development; - }; - 4A9504D1FFE6A4CB11CA0CBA = { - buildRules = ( - ); - buildSettings = { - COPY_PHASE_STRIP = YES; - }; - isa = PBXBuildStyle; - name = Deployment; - }; -//4A0 -//4A1 -//4A2 -//4A3 -//4A4 -//F50 -//F51 -//F52 -//F53 -//F54 - F52A90CD02EB5C6A01000102 = { - fileEncoding = 30; - isa = PBXFileReference; - path = FileSettings.m; - refType = 4; - }; - F52A90CE02EB5C6A01000102 = { - fileEncoding = 30; - isa = PBXFileReference; - path = FileSettings.h; - refType = 4; - }; - F52A90CF02EB5C6A01000102 = { - fileRef = F52A90CD02EB5C6A01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F52A90D002EB5C6A01000102 = { - fileRef = F52A90CE02EB5C6A01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F5449B4B02FB3F7E01000102 = { - isa = PBXFileReference; - path = PythonWSource.icns; - refType = 4; - }; - F5449B4C02FB3F7E01000102 = { - fileRef = F5449B4B02FB3F7E01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F58D4A3A02F1F94B01000102 = { - isa = PBXFileReference; - path = PythonCompiled.icns; - refType = 4; - }; - F58D4A3B02F1F94B01000102 = { - isa = PBXFileReference; - path = PythonInterpreter.icns; - refType = 4; - }; - F58D4A3C02F1F94B01000102 = { - isa = PBXFileReference; - path = PythonSource.icns; - refType = 4; - }; - F58D4A3D02F1F94B01000102 = { - fileRef = F58D4A3A02F1F94B01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F58D4A3E02F1F94B01000102 = { - fileRef = F58D4A3B02F1F94B01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F58D4A3F02F1F94B01000102 = { - fileRef = F58D4A3C02F1F94B01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F5A42167038BDD8E0110C447 = { - fileEncoding = 30; - isa = PBXFileReference; - path = factorySettings.plist; - refType = 4; - }; - F5A42168038BDD8E0110C447 = { - fileRef = F5A42167038BDD8E0110C447; - isa = PBXBuildFile; - settings = { - }; - }; - F5A4C13E02F203F601000102 = { - isa = PBXFileReference; - path = PreferenceWindow.nib; - refType = 4; - }; - F5A4C13F02F203F701000102 = { - fileRef = F5A4C13E02F203F601000102; - isa = PBXBuildFile; - settings = { - }; - }; - F5A4C14002F2055C01000102 = { - fileEncoding = 30; - isa = PBXFileReference; - path = PreferencesWindowController.h; - refType = 4; - }; - F5A4C14102F2055C01000102 = { - fileEncoding = 30; - isa = PBXFileReference; - path = PreferencesWindowController.m; - refType = 4; - }; - F5A4C14202F2055D01000102 = { - fileRef = F5A4C14002F2055C01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F5A4C14302F2055D01000102 = { - fileRef = F5A4C14102F2055C01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F5A4C14402F2070D01000102 = { - fileEncoding = 30; - isa = PBXFileReference; - path = MyAppDelegate.m; - refType = 4; - }; - F5A4C14502F2070D01000102 = { - fileEncoding = 30; - isa = PBXFileReference; - path = MyAppDelegate.h; - refType = 4; - }; - F5A4C14602F2070D01000102 = { - fileRef = F5A4C14402F2070D01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F5A4C14702F2070D01000102 = { - fileRef = F5A4C14502F2070D01000102; - isa = PBXBuildFile; - settings = { - }; - }; - F5AA9C6A02F8042D0110C447 = { - fileEncoding = 30; - isa = PBXFileReference; - path = doscript.h; - refType = 4; - }; - F5AA9C6C02F8042D0110C447 = { - fileRef = F5AA9C6A02F8042D0110C447; - isa = PBXBuildFile; - settings = { - }; - }; - F5AA9D0102F807EE0110C447 = { - isa = PBXFrameworkReference; - name = Carbon.framework; - path = /System/Library/Frameworks/Carbon.framework; - refType = 0; - }; - F5AA9D9B02F807EF0110C447 = { - fileRef = F5AA9D0102F807EE0110C447; - isa = PBXBuildFile; - settings = { - }; - }; - F5AAA21D02F8115D0110C447 = { - fileEncoding = 30; - isa = PBXFileReference; - path = doscript.m; - refType = 4; - }; - F5AAA21E02F8115D0110C447 = { - fileRef = F5AAA21D02F8115D0110C447; - isa = PBXBuildFile; - settings = { - }; - }; - }; - rootObject = 2A37F4A9FDCFA73011CA2CEA; -} diff --git a/Mac/OSX/PythonLauncher/PythonWSource.icns b/Mac/OSX/PythonLauncher/PythonWSource.icns deleted file mode 100644 index b0a859323b0d21397b24cfac0d7e00f452607c61..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 49891 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

=v^^fLI59eMYISVn}@KMVZ%qrcArUx@K{1|pp1 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 diff --git a/Mac/OSX/Tools/pythonw.c b/Mac/OSX/Tools/pythonw.c new file mode 100644 index 000000000000..e70a76f846f5 --- /dev/null +++ b/Mac/OSX/Tools/pythonw.c @@ -0,0 +1,17 @@ +/* + * This wrapper program executes a python executable hidden inside an + * application bundle inside the Python framework. This is needed to run + * GUI code: some GUI API's don't work unless the program is inside an + * application bundle. + */ +#include +#include + +static char Python[] = PYTHONWEXECUTABLE; + +int main(int argc, char **argv) { + argv[0] = Python; + execv(Python, argv); + err(1, "execv: %s", Python); + /* NOTREACHED */ +} diff --git a/Mac/OSXResources/framework/Info.plist b/Mac/OSXResources/framework/Info.plist index 34eacd575626..302ff4800605 100644 --- a/Mac/OSXResources/framework/Info.plist +++ b/Mac/OSXResources/framework/Info.plist @@ -17,10 +17,10 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.2 + 2.5 CFBundleSignature ???? CFBundleVersion - 2.2 + 2.5 diff --git a/Makefile.pre.in b/Makefile.pre.in index e088c9c613eb..782bc60f0f41 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -856,7 +856,7 @@ libainstall: all # Substitution happens here, as the completely-expanded BINDIR # is not available in configure sed -e "s,@BINDIR@,$(BINDIR)," < $(srcdir)/Misc/python-config.in >python-config - $(INSTALL_SCRIPT) python-config $(BINDIR)/python-config + $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python-config rm python-config @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ @@ -936,27 +936,20 @@ frameworkinstallstructure: $(LDLIBRARY) # This installs Mac/Lib into the framework frameworkinstallmaclib: - $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installmacsubtree \ - $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ - srcdir=$(srcdir) builddir=. prefix=$(prefix) LIBDEST=$(LIBDEST) \ - DESTDIR=$(DESTDIR) + cd Mac/OSX && $(MAKE) installmacsubtree DESTDIR="$(DESTDIR)" # This installs the IDE, the Launcher and other apps into /Applications frameworkinstallapps: - $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installapps \ - $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ - srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix) + cd Mac/OSX && $(MAKE) installapps DESTDIR="$(DESTDIR)" # This install the unix python and pythonw tools in /usr/local/bin frameworkinstallunixtools: - $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installunixtools \ - DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ - srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix) + cd Mac/OSX && $(MAKE) installunixtools DESTDIR="$(DESTDIR)" # This installs the Demos and Tools into the applications directory. # It is not part of a normal frameworkinstall frameworkinstallextras: - $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installextras \ + $(MAKE) -f Mac/OSX/Makefile installextras \ $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) diff --git a/configure b/configure index 6297d9f1c660..c1ad4197454c 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 45392 . +# From configure.in Revision: 45800 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for python 2.5. # @@ -1451,6 +1451,15 @@ if test "${enable_framework+set}" = set; then PYTHONFRAMEWORKPREFIX=$enableval PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION + + # Add makefiles for Mac specific code to the list of output + # files: + ac_config_files="$ac_config_files Mac/OSX/Makefile" + + ac_config_files="$ac_config_files Mac/OSX/PythonLauncher/Makefile" + + ac_config_files="$ac_config_files Mac/OSX/IDLE/Makefile" + esac else @@ -22416,6 +22425,9 @@ for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. + "Mac/OSX/Makefile" ) CONFIG_FILES="$CONFIG_FILES Mac/OSX/Makefile" ;; + "Mac/OSX/PythonLauncher/Makefile" ) CONFIG_FILES="$CONFIG_FILES Mac/OSX/PythonLauncher/Makefile" ;; + "Mac/OSX/IDLE/Makefile" ) CONFIG_FILES="$CONFIG_FILES Mac/OSX/IDLE/Makefile" ;; "Makefile.pre" ) CONFIG_FILES="$CONFIG_FILES Makefile.pre" ;; "Modules/Setup.config" ) CONFIG_FILES="$CONFIG_FILES Modules/Setup.config" ;; "pyconfig.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pyconfig.h" ;; diff --git a/configure.in b/configure.in index 168c621aeb7a..8b82841058a2 100644 --- a/configure.in +++ b/configure.in @@ -105,6 +105,12 @@ AC_ARG_ENABLE(framework, PYTHONFRAMEWORKPREFIX=$enableval PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION + + # Add makefiles for Mac specific code to the list of output + # files: + AC_CONFIG_FILES(Mac/OSX/Makefile) + AC_CONFIG_FILES(Mac/OSX/PythonLauncher/Makefile) + AC_CONFIG_FILES(Mac/OSX/IDLE/Makefile) esac ],[ PYTHONFRAMEWORK= -- 2.47.3