Commits

Ronald Oussoren  committed 986709c

Merged revisions 75131 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
r75131 | ronald.oussoren | 2009-09-29 15:00:44 +0200 (Tue, 29 Sep 2009) | 8 lines

* Update the Mac/README file. Add the list of OSX-specific configure options
to that README file with some explanation.

* Be more strict in the configure script: complain loudly when the user has
specified invalid combinations of OSX-specific configure arguments.

The error message refers to the Mac/README file for more information.
........

  • Participants
  • Parent commits a8d0e76
  • Branches 2.6

Comments (0)

Files changed (3)

 This document provides a quick overview of some Mac OS X specific features in
 the Python distribution.
 
+Mac-specific arguments to configure
+===================================
+
+* ``--enable-framework``
+
+  If this argument is specified the build will create a Python.framework rather
+  than a traditional Unix install. See the section
+  _`Building and using a framework-based Python on Mac OS X` for more 
+  information on frameworks.
+
+* ``--with-framework-name=NAME``
+
+  Specify the name for the python framework, defaults to ``Python``. This option
+  is only valid when ``--enable-framework`` is specified.
+
+* ``--enable-universalsdk[=PATH]``
+
+  Create a universal binary build of of Python. This can be used with both
+  regular and framework builds.
+
+  The optional argument specifies with OSX SDK should be used to perform the
+  build. This defaults to ``/Developer/SDKs/MacOSX.10.4u.sdk``, specify 
+  ``/`` when building on a 10.5 system, especially when building 64-bit code.
+
+  See the section _`Building and using a universal binary of Python on Mac OS X`
+  for more information.
+
+* ``--with-univeral-archs=VALUE``
+
+  Specify the kind of universal binary that should be created. This option is 
+  only valid when ``--enable-universalsdk`` is specified.
+
+  
 
 Building and using a universal binary of Python on Mac OS X
 ===========================================================
 with Xcode 2.1 (or later). You also have to install the 10.4u SDK when 
 installing Xcode.
 
+The option ``--enable-universalsdk`` has an optional argument to specify an
+SDK, which defaults to the 10.4u SDK. When you build on OSX 10.5 or later 
+you can use the system headers instead of an SDK::
+
+  $ ./configure --enable-universalsdk=/
+
+2.1 Flavours of universal binaries
+..................................
+
+It is possible to build a number of flavours of the universal binary build,
+the default is a 32-bit only binary (i386 and ppc). The flavour can be
+specified using the option ``--with-universal-archs=VALUE``. The following
+values are available:
+
+  * ``32-bit``:   ``ppc``, ``i386``
+
+  * ``64-bit``:   ``ppc64``, ``x86_64``
+
+  * ``all``:      ``ppc``, ``ppc64``, ``i386``, ``x86_64``
+
+  * ``3-way``:	  ``ppc``, ``i386`` and ``x86_64``
+
+  * ``intel``:	  ``i386``, ``x86_64``
+
+To build a universal binary that includes a 64-bit architecture you must build
+on a system running OSX 10.5 or later. The ``all`` flavour can only be build on
+OSX 10.5.
+
 
 Building and using a framework-based Python on Mac OS X.
 ========================================================
 the relevant portions of the Mac subtree into the Python.framework.
 
 It is normally invoked indirectly through the main Makefile, as the last step
-in the sequence
+in the sequence::
 
- 1. ./configure --enable-framework
-
- 2. make
- 
- 3. make install
+ $ ./configure --enable-framework
+ $ make
+ $ make install
 
 This sequence will put the framework in /Library/Framework/Python.framework,
 the applications in "/Applications/MacPython 2.6" and the unix tools in 
 /usr/local/bin.
 
+It is possible to select a different name for the framework using the configure 
+option ``--with-framework-name=NAME``. This makes it possible to have several
+parallel installs of a Python framework.
+
 Installing in another place, for instance $HOME/Library/Frameworks if you have
 no admin privileges on your machine, has only been tested very lightly. This
 can be done by configuring with --enable-framework=$HOME/Library/Frameworks.
 which you would want in $HOME/bin, but there is no easy way to fix this right 
 now.
 
-If you want to install some part, but not all, read the main Makefile. The
-frameworkinstall is composed of a couple of sub-targets that install the
-framework itself, the Mac subtree, the applications and the unix tools.
-
-There is an extra target frameworkinstallextras that is not part of the
-normal frameworkinstall which installs the Demo and Tools directories
-into "/Applications/MacPython 2.6", this is useful for binary distributions.
-
 What do all these programs do?
 ===============================
 
 #! /bin/sh
-# From configure.in Revision: 74712 .
+# From configure.in Revision: 74982 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for python 2.6.
 #
 	{ echo "$as_me:$LINENO: result: $withval" >&5
 echo "${ECHO_T}$withval" >&6; }
 	UNIVERSAL_ARCHS="$withval"
+        if test "${enable_universalsdk}" ; then
+		:
+	else
+		{ { echo "$as_me:$LINENO: error: --with-universal-archs without --enable-universalsdk. See Mac/README" >&5
+echo "$as_me: error: --with-universal-archs without --enable-universalsdk. See Mac/README" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
 
 else
 
 # Check whether --with-framework-name was given.
 if test "${with_framework_name+set}" = set; then
   withval=$with_framework_name;
+    if test "${enable_framework}"; then
+	    :
+    else
+	{ { echo "$as_me:$LINENO: error: --with-framework-name without --enable-framework. See Mac/README" >&5
+echo "$as_me: error: --with-framework-name without --enable-framework. See Mac/README" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
     PYTHONFRAMEWORK=${withval}
     PYTHONFRAMEWORKDIR=${withval}.framework
     PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr 'A-Z' 'a-z'`
 echo "${ECHO_T}yes" >&6; }
 	if test $enable_shared = "yes"
 	then
-		{ { echo "$as_me:$LINENO: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead" >&5
-echo "$as_me: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead" >&2;}
+		{ { echo "$as_me:$LINENO: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead. See Mac/README." >&5
+echo "$as_me: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead. See Mac/README." >&2;}
    { (exit 1); exit 1; }; }
 	fi
 else

File configure.in

 [
 	AC_MSG_RESULT($withval)
 	UNIVERSAL_ARCHS="$withval"
+        if test "${enable_universalsdk}" ; then
+		:
+	else
+		AC_MSG_ERROR([--with-universal-archs without --enable-universalsdk. See Mac/README])
+	fi
 ],
 [
  	AC_MSG_RESULT(32-bit)
               AC_HELP_STRING(--with-framework-name=FRAMEWORK, 
                              specify an alternate name of the framework built with --enable-framework),
 [
+    if test "${enable_framework}"; then
+	    :
+    else
+	AC_MSG_ERROR([--with-framework-name without --enable-framework. See Mac/README])
+    fi
     PYTHONFRAMEWORK=${withval}
     PYTHONFRAMEWORKDIR=${withval}.framework
     PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'`
 	AC_MSG_RESULT(yes)
 	if test $enable_shared = "yes"
 	then
-		AC_MSG_ERROR([Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead])
+		AC_MSG_ERROR([Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead. See Mac/README.])
 	fi
 else
 	AC_MSG_RESULT(no)