Merged revisions 80647 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80647 | ronald.oussoren | 2010-04-30 13:20:14 +0200 (Fri, 30 Apr 2010) | 11 lines

  Fix for issue #3646: with this patch it is possible to do a
  framework install of Python in your home directory (on OSX):

     $ configure --enable-framework=${HOME}/Library/Frameworks
     $ make && make install

  Without this patch the framework would get installed just fine,
  but 'make install' would try to install the application bundles
  and command-line tools outside the user's home, which doesn't work
  for non-admin users (and is bad form anyway).
........
This commit is contained in:
Ronald Oussoren 2010-04-30 11:41:56 +00:00
parent 0ea2a468e3
commit 86b33c872d
6 changed files with 97 additions and 6 deletions

View File

@ -24,7 +24,7 @@ export MACOSX_DEPLOYMENT_TARGET
# These are normally glimpsed from the previous set # These are normally glimpsed from the previous set
bindir=$(prefix)/bin bindir=$(prefix)/bin
PYTHONAPPSDIR=/Applications/$(PYTHONFRAMEWORK) $(VERSION) PYTHONAPPSDIR=@FRAMEWORKINSTALLAPPSPREFIX@/$(PYTHONFRAMEWORK) $(VERSION)
APPINSTALLDIR=$(prefix)/Resources/Python.app APPINSTALLDIR=$(prefix)/Resources/Python.app
# Variables for installing the "normal" unix binaries # Variables for installing the "normal" unix binaries

View File

@ -21,7 +21,7 @@ MACOSX_DEPLOYMENT_TARGET=@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@
BUNDLEBULDER=$(srcdir)/../Tools/bundlebuilder.py BUNDLEBULDER=$(srcdir)/../Tools/bundlebuilder.py
PYTHONAPPSDIR=/Applications/$(PYTHONFRAMEWORK) $(VERSION) PYTHONAPPSDIR=@FRAMEWORKINSTALLAPPSPREFIX@/$(PYTHONFRAMEWORK) $(VERSION)
OBJECTS=FileSettings.o MyAppDelegate.o MyDocument.o PreferencesWindowController.o doscript.o main.o OBJECTS=FileSettings.o MyAppDelegate.o MyDocument.o PreferencesWindowController.o doscript.o main.o
install: Python\ Launcher.app install: Python\ Launcher.app

View File

@ -5,13 +5,24 @@ MacOSX Notes
This document provides a quick overview of some Mac OS X specific features in This document provides a quick overview of some Mac OS X specific features in
the Python distribution. the Python distribution.
* ``--enable-framework`` * ``--enable-framework[=DIR]``
If this argument is specified the build will create a Python.framework rather If this argument is specified the build will create a Python.framework rather
than a traditional Unix install. See the section than a traditional Unix install. See the section
_`Building and using a framework-based Python on Mac OS X` for more _`Building and using a framework-based Python on Mac OS X` for more
information on frameworks. information on frameworks.
If the optional directory argument is specified the framework it installed
into that directory. This can be used to install a python framework into
your home directory::
$ configure --enable-framework=/Users/ronald/Library/Frameworks
$ make && make install
This will install the framework itself in ``/Users/ronald/Library/Frameworks``,
the applications in a subdirectory of ``/Users/ronald/Applications`` and the
command-line tools in ``/Users/ronald/bin``.
* ``--with-framework-name=NAME`` * ``--with-framework-name=NAME``
Specify the name for the python framework, defaults to ``Python``. This option Specify the name for the python framework, defaults to ``Python``. This option

View File

@ -1109,6 +1109,9 @@ Extension Modules
Build Build
----- -----
- Issue #3646: It is now easily possible to install a Python framework into
your home directory on MacOSX, see Mac/README for more information.
- Issue #3928: os.mknod() now available in Solaris, also. - Issue #3928: os.mknod() now available in Solaris, also.
- Issue #3326: Build Python without -fno-strict-aliasing when the gcc does not - Issue #3326: Build Python without -fno-strict-aliasing when the gcc does not

43
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# From configure.in Revision: 80481 . # From configure.in Revision: 80576 .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.65 for python 3.2. # Generated by GNU Autoconf 2.65 for python 3.2.
# #
@ -664,6 +664,7 @@ EXPORT_MACOSX_DEPLOYMENT_TARGET
CONFIGURE_MACOSX_DEPLOYMENT_TARGET CONFIGURE_MACOSX_DEPLOYMENT_TARGET
SGI_ABI SGI_ABI
MACHDEP MACHDEP
FRAMEWORKINSTALLAPPSPREFIX
FRAMEWORKUNIXTOOLSPREFIX FRAMEWORKUNIXTOOLSPREFIX
FRAMEWORKALTINSTALLLAST FRAMEWORKALTINSTALLLAST
FRAMEWORKALTINSTALLFIRST FRAMEWORKALTINSTALLFIRST
@ -2849,18 +2850,55 @@ if test "${enable_framework+set}" = set; then :
enable_framework= enable_framework=
;; ;;
*) *)
PYTHONFRAMEWORKPREFIX=$enableval PYTHONFRAMEWORKPREFIX="${enableval}"
PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
FRAMEWORKINSTALLFIRST="frameworkinstallstructure" FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure " FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure "
FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools" FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools" FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
if test "x${prefix}" = "xNONE" ; then if test "x${prefix}" = "xNONE" ; then
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}" FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
else else
FRAMEWORKUNIXTOOLSPREFIX="${prefix}" FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
fi fi
case "${enableval}" in
/System*)
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
if test "${prefix}" = "NONE" ; then
# See below
FRAMEWORKUNIXTOOLSPREFIX="/usr"
fi
;;
/Library*)
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
;;
*/Library/Frameworks)
MDIR="`dirname "${enableval}"`"
MDIR="`dirname "${MDIR}"`"
FRAMEWORKINSTALLAPPSPREFIX="${MDIR}/Applications"
if test "${prefix}" = "NONE"; then
# User hasn't specified the
# --prefix option, but wants to install
# the framework in a non-default location,
# ensure that the compatibility links get
# installed relative to that prefix as well
# instead of in /usr/local.
FRAMEWORKUNIXTOOLSPREFIX="${MDIR}"
fi
;;
*)
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
;;
esac
prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
# Add files for Mac specific code to the list of output # Add files for Mac specific code to the list of output
@ -2906,6 +2944,7 @@ fi
##AC_ARG_WITH(dyld, ##AC_ARG_WITH(dyld,
## AS_HELP_STRING([--with-dyld], ## AS_HELP_STRING([--with-dyld],
## [Use (OpenStep|Rhapsody) dynamic linker])) ## [Use (OpenStep|Rhapsody) dynamic linker]))

View File

@ -179,18 +179,55 @@ AC_ARG_ENABLE(framework,
enable_framework= enable_framework=
;; ;;
*) *)
PYTHONFRAMEWORKPREFIX=$enableval PYTHONFRAMEWORKPREFIX="${enableval}"
PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
FRAMEWORKINSTALLFIRST="frameworkinstallstructure" FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure " FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure "
FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools" FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools" FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
if test "x${prefix}" = "xNONE" ; then if test "x${prefix}" = "xNONE" ; then
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}" FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
else else
FRAMEWORKUNIXTOOLSPREFIX="${prefix}" FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
fi fi
case "${enableval}" in
/System*)
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
if test "${prefix}" = "NONE" ; then
# See below
FRAMEWORKUNIXTOOLSPREFIX="/usr"
fi
;;
/Library*)
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
;;
*/Library/Frameworks)
MDIR="`dirname "${enableval}"`"
MDIR="`dirname "${MDIR}"`"
FRAMEWORKINSTALLAPPSPREFIX="${MDIR}/Applications"
if test "${prefix}" = "NONE"; then
# User hasn't specified the
# --prefix option, but wants to install
# the framework in a non-default location,
# ensure that the compatibility links get
# installed relative to that prefix as well
# instead of in /usr/local.
FRAMEWORKUNIXTOOLSPREFIX="${MDIR}"
fi
;;
*)
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
;;
esac
prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
# Add files for Mac specific code to the list of output # Add files for Mac specific code to the list of output
@ -227,6 +264,7 @@ AC_SUBST(FRAMEWORKINSTALLLAST)
AC_SUBST(FRAMEWORKALTINSTALLFIRST) AC_SUBST(FRAMEWORKALTINSTALLFIRST)
AC_SUBST(FRAMEWORKALTINSTALLLAST) AC_SUBST(FRAMEWORKALTINSTALLLAST)
AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX) AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
AC_SUBST(FRAMEWORKINSTALLAPPSPREFIX)
##AC_ARG_WITH(dyld, ##AC_ARG_WITH(dyld,
## AS_HELP_STRING([--with-dyld], ## AS_HELP_STRING([--with-dyld],