if re.search('-arch\s+ppc', _config_vars['CFLAGS']) is not None:
# NOTE: Cannot use subprocess here because of bootstrap
# issues when building Python itself
- status = os.system("'%s' -arch ppc -x c /dev/null 2>/dev/null"%(
- _config_vars['CC'].replace("'", "'\"'\"'"),))
- # The Apple compiler drivers return status 255 if no PPC
- if (status >> 8) == 255:
- # Compiler doesn't support PPC, remove the related
- # '-arch' flags if not explicitly overridden by an
- # environment variable
+ status = os.system(
+ """echo 'int main{};' | """
+ """'%s' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/null"""
+ %(_config_vars['CC'].replace("'", "'\"'\"'"),))
+ if status:
+ # The compile failed for some reason. Because of differences
+ # across Xcode and compiler versions, there is no reliable way
+ # to be sure why it failed. Assume here it was due to lack of
+ # PPC support and remove the related '-arch' flags from each
+ # config variables not explicitly overriden by an environment
+ # variable. If the error was for some other reason, we hope the
+ # failure will show up again when trying to compile an extension
+ # module.
for cv in _UNIVERSAL_CONFIG_VARS:
if cv in _config_vars and cv not in os.environ:
flags = _config_vars[cv]
Ronald Oussoren (2010-04),
Ned Deily (2012-06)
-:Version: 3.3.0
+:Version: 3.4.0
This document provides a quick overview of some Mac OS X specific features in
the Python distribution.
* ``intel``: ``i386``, ``x86_64``
+ * ``intel-32``: ``i386``
+
* ``32-bit``: ``ppc``, ``i386``
* ``3-way``: ``i386``, ``x86_64``, ``ppc``
* 10.7 and 10.8 SDKs with Xcode 4 support ``intel`` only
-The makefile for a framework build will also install ``python3.3-32``
+The makefile for a framework build will also install ``python3.4-32``
binaries when the universal architecture includes at least one 32-bit
architecture (that is, for all flavors but ``64-bit``).
not automatically carry through to subprocesses launched by programs and tests
under that Python. If you want to ensure that Python interpreters launched in
subprocesses also run in 32-bit-mode if the main interpreter does, use
-a ``python3.3-32`` binary and use the value of ``sys.executable`` as the
+a ``python3.4-32`` binary and use the value of ``sys.executable`` as the
``subprocess`` ``Popen`` executable value.
A second reason for using frameworks is that they put Python-related items in
only two places: "/Library/Framework/Python.framework" and
-"/Applications/Python <VERSION>" where ``<VERSION>`` can be e.g. "3.3",
+"/Applications/Python <VERSION>" where ``<VERSION>`` can be e.g. "3.4",
"2.7", etc. This simplifies matters for users installing
Python from a binary distribution if they want to get rid of it again. Moreover,
due to the way frameworks work, a user without admin privileges can install a
- Issue #15663: Update OS X 10.6+ installer to use Tcl/Tk 8.5.15.
+- Issue #14499: Fix several problems with OS X universal build support:
+ 1. ppc arch detection for extension module builds broke with Xcode 5
+ 2. ppc arch detection in configure did not work on OS X 10.4
+ 3. -sysroot and -arch flags were unnecessarily duplicated
+ 4. there was no obvious way to configure an intel-32 only build.
+
What's New in Python 3.4.0 Alpha 3?
===================================
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-universal-archs=ARCH
select architectures for universal build ("32-bit",
- "64-bit", "3-way", "intel" or "all")
+ "64-bit", "3-way", "intel", "intel-32", or "all")
--with-framework-name=FRAMEWORK
specify an alternate name of the framework built
with --enable-framework
# Locate the best usable SDK, see Mac/README.txt for more
# information
enableval="`/usr/bin/xcodebuild -version -sdk macosx Path 2>/dev/null`"
- if test -z "${enableval}"
+ if ! ( echo $enableval | grep -E '\.sdk' 1>/dev/null )
then
enableval=/Developer/SDKs/MacOSX10.4u.sdk
if test ! -d "${enableval}"
+ARCH_RUN_32BIT=""
# For backward compatibility reasons we prefer to select '32-bit' if available,
# otherwise use 'intel'
then
if test -n "${UNIVERSALSDK}"
then
- if test -z "`/usr/bin/file "${UNIVERSALSDK}/usr/lib/libSystem.dylib" | grep ppc`"
+ if test -z "`/usr/bin/file -L "${UNIVERSALSDK}/usr/lib/libSystem.dylib" | grep ppc`"
then
UNIVERSAL_ARCHS="intel"
fi
# Check whether --with-universal-archs was given.
if test "${with_universal_archs+set}" = set; then :
withval=$with_universal_archs;
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
-$as_echo "$withval" >&6; }
UNIVERSAL_ARCHS="$withval"
-else
+fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSAL_ARCHS}" >&5
+if test -n "${UNIVERSALSDK}"
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSAL_ARCHS}" >&5
$as_echo "${UNIVERSAL_ARCHS}" >&6; }
-
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-
-
-
# Check whether --with-framework-name was given.
if test "${with_framework_name+set}" = set; then :
withval=$with_framework_name;
SCO_SV*)
BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
;;
- # is there any other compiler on Darwin besides gcc?
- Darwin*)
- # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
- # used to be here, but non-Apple gcc doesn't accept them.
- if test "${CC}" = gcc
- then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5
+
+ # is there any other compiler on Darwin besides gcc?
+ Darwin*)
+ # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
+ # used to be here, but non-Apple gcc doesn't accept them.
+ if test "${CC}" = gcc
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5
$as_echo_n "checking which compiler should be used... " >&6; }
- case "${UNIVERSALSDK}" in
- */MacOSX10.4u.sdk)
- # Build using 10.4 SDK, force usage of gcc when the
- # compiler is gcc, otherwise the user will get very
- # confusing error messages when building on OSX 10.6
- CC=gcc-4.0
- CPP=cpp-4.0
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+ case "${UNIVERSALSDK}" in
+ */MacOSX10.4u.sdk)
+ # Build using 10.4 SDK, force usage of gcc when the
+ # compiler is gcc, otherwise the user will get very
+ # confusing error messages when building on OSX 10.6
+ CC=gcc-4.0
+ CPP=cpp-4.0
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
- fi
-
-
- if test "${enable_universalsdk}"; then
- UNIVERSAL_ARCH_FLAGS=""
- if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
- UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
- ARCH_RUN_32BIT=""
- LIPO_32BIT_FLAGS=""
- elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
- UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
- LIPO_32BIT_FLAGS=""
- ARCH_RUN_32BIT="true"
-
- elif test "$UNIVERSAL_ARCHS" = "all" ; then
- UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
- LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
- ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
-
- elif test "$UNIVERSAL_ARCHS" = "intel" ; then
- UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
- LIPO_32BIT_FLAGS="-extract i386"
- ARCH_RUN_32BIT="/usr/bin/arch -i386"
-
- elif test "$UNIVERSAL_ARCHS" = "3-way" ; then
- UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
- LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
- ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
-
- else
- as_fn_error $? "proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way" "$LINENO" 5
-
- fi
-
-
- CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
- if test "${UNIVERSALSDK}" != "/"
- then
- CFLAGS="-isysroot ${UNIVERSALSDK} ${CFLAGS}"
- LDFLAGS="-isysroot ${UNIVERSALSDK} ${LDFLAGS}"
- CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
- fi
- fi
-
- # Calculate the right deployment target for this build.
- #
- cur_target=`sw_vers -productVersion | sed 's/\(10\.[0-9]*\).*/\1/'`
- if test ${cur_target} '>' 10.2 && \
- test ${cur_target} '<' 10.6
- then
- cur_target=10.3
- if test ${enable_universalsdk}; then
- if test "${UNIVERSAL_ARCHS}" = "all"; then
- # Ensure that the default platform for a
- # 4-way universal build is OSX 10.5,
- # that's the first OS release where
- # 4-way builds make sense.
- cur_target='10.5'
-
- elif test "${UNIVERSAL_ARCHS}" = "3-way"; then
- cur_target='10.5'
-
- elif test "${UNIVERSAL_ARCHS}" = "intel"; then
- cur_target='10.5'
-
- elif test "${UNIVERSAL_ARCHS}" = "64-bit"; then
- cur_target='10.5'
- fi
- else
- if test `/usr/bin/arch` = "i386"; then
- # On Intel macs default to a deployment
- # target of 10.4, that's the first OSX
- # release with Intel support.
- cur_target="10.4"
- fi
- fi
- fi
- CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
+ fi
- # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
- # environment with a value that is the same as what we'll use
- # in the Makefile to ensure that we'll get the same compiler
- # environment during configure and build time.
- MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
- export MACOSX_DEPLOYMENT_TARGET
- EXPORT_MACOSX_DEPLOYMENT_TARGET=''
+ if test "${enable_universalsdk}"
+ then
+ case "$UNIVERSAL_ARCHS" in
+ 32-bit)
+ UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT=""
+ ;;
+ 64-bit)
+ UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT="true"
+ ;;
+ all)
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+ ;;
+ intel)
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386"
+ ;;
+ intel-32)
+ UNIVERSAL_ARCH_FLAGS="-arch i386"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT=""
+ ;;
+ 3-way)
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+ ;;
+ *)
+ as_fn_error $? "proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way" "$LINENO" 5
+ ;;
+ esac
+
+ CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
+ LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
+ if test "${UNIVERSALSDK}" != "/"
+ then
+ CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
+ fi
+ fi
- ;;
+ # Calculate an appropriate deployment target for this build:
+ # The deployment target value is used explicitly to enable certain
+ # features are enabled (such as builtin libedit support for readline)
+ # through the use of Apple's Availabiliy Macros and is used as a
+ # component of the string returned by distutils.get_platform().
+ #
+ # Use the value from:
+ # 1. the MACOSX_DEPLOYMENT_TARGET environment variable if specified
+ # 2. the operating system version of the build machine if >= 10.6
+ # 3. If running on OS X 10.3 through 10.5, use the legacy tests
+ # below to pick either 10.3, 10.4, or 10.5 as the target.
+ # 4. If we are running on OS X 10.2 or earlier, good luck!
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which MACOSX_DEPLOYMENT_TARGET to use" >&5
+$as_echo_n "checking which MACOSX_DEPLOYMENT_TARGET to use... " >&6; }
+ cur_target=`sw_vers -productVersion | sed 's/\(10\.[0-9]*\).*/\1/'`
+ if test ${cur_target} '>' 10.2 && \
+ test ${cur_target} '<' 10.6
+ then
+ cur_target=10.3
+ if test ${enable_universalsdk}
+ then
+ case "$UNIVERSAL_ARCHS" in
+ all|3-way|intel|64-bit)
+ # These configurations were first supported in 10.5
+ cur_target='10.5'
+ ;;
+ esac
+ else
+ if test `/usr/bin/arch` = "i386"
+ then
+ # 10.4 was the first release to support Intel archs
+ cur_target="10.4"
+ fi
+ fi
+ fi
+ CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
+
+ # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
+ # environment with a value that is the same as what we'll use
+ # in the Makefile to ensure that we'll get the same compiler
+ # environment during configure and build time.
+ MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
+ export MACOSX_DEPLOYMENT_TARGET
+ EXPORT_MACOSX_DEPLOYMENT_TARGET=''
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACOSX_DEPLOYMENT_TARGET" >&5
+$as_echo "$MACOSX_DEPLOYMENT_TARGET" >&6; }
+
+ # end of Darwin* tests
+ ;;
esac
;;
esac
-ARCH_RUN_32BIT=""
case $ac_sys_system/$ac_sys_release in
Darwin/[01567]\..*)
;;
esac
- #ARCH_RUN_32BIT="true"
fi
LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only ${MACOSX_DEFAULT_ARCH}"
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
esac
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-framework" >&5
$as_echo_n "checking for --enable-framework... " >&6; }
if test "$enable_framework"
if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
then
- if test "${enable_universalsdk}"; then
- LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
- fi
LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
BLDSHARED="$LDSHARED"
# Locate the best usable SDK, see Mac/README.txt for more
# information
enableval="`/usr/bin/xcodebuild -version -sdk macosx Path 2>/dev/null`"
- if test -z "${enableval}"
+ if ! ( echo $enableval | grep -E '\.sdk' 1>/dev/null )
then
enableval=/Developer/SDKs/MacOSX10.4u.sdk
if test ! -d "${enableval}"
AC_SUBST(UNIVERSALSDK)
AC_SUBST(ARCH_RUN_32BIT)
+ARCH_RUN_32BIT=""
# For backward compatibility reasons we prefer to select '32-bit' if available,
# otherwise use 'intel'
then
if test -n "${UNIVERSALSDK}"
then
- if test -z "`/usr/bin/file "${UNIVERSALSDK}/usr/lib/libSystem.dylib" | grep ppc`"
+ if test -z "`/usr/bin/file -L "${UNIVERSALSDK}/usr/lib/libSystem.dylib" | grep ppc`"
then
UNIVERSAL_ARCHS="intel"
fi
AC_SUBST(LIPO_32BIT_FLAGS)
AC_MSG_CHECKING(for --with-universal-archs)
AC_ARG_WITH(universal-archs,
- AS_HELP_STRING([--with-universal-archs=ARCH], [select architectures for universal build ("32-bit", "64-bit", "3-way", "intel" or "all")]),
+ AS_HELP_STRING([--with-universal-archs=ARCH], [select architectures for universal build ("32-bit", "64-bit", "3-way", "intel", "intel-32", or "all")]),
[
- AC_MSG_RESULT($withval)
UNIVERSAL_ARCHS="$withval"
],
-[
- AC_MSG_RESULT(${UNIVERSAL_ARCHS})
-])
-
-
+[])
+if test -n "${UNIVERSALSDK}"
+then
+ AC_MSG_RESULT(${UNIVERSAL_ARCHS})
+else
+ AC_MSG_RESULT(no)
+fi
AC_ARG_WITH(framework-name,
AS_HELP_STRING([--with-framework-name=FRAMEWORK],
SCO_SV*)
BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
;;
- # is there any other compiler on Darwin besides gcc?
- Darwin*)
- # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
- # used to be here, but non-Apple gcc doesn't accept them.
- if test "${CC}" = gcc
- then
- AC_MSG_CHECKING(which compiler should be used)
- case "${UNIVERSALSDK}" in
- */MacOSX10.4u.sdk)
- # Build using 10.4 SDK, force usage of gcc when the
- # compiler is gcc, otherwise the user will get very
- # confusing error messages when building on OSX 10.6
- CC=gcc-4.0
- CPP=cpp-4.0
- ;;
- esac
- AC_MSG_RESULT($CC)
- fi
-
-
- if test "${enable_universalsdk}"; then
- UNIVERSAL_ARCH_FLAGS=""
- if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
- UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
- ARCH_RUN_32BIT=""
- LIPO_32BIT_FLAGS=""
- elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
- UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
- LIPO_32BIT_FLAGS=""
- ARCH_RUN_32BIT="true"
-
- elif test "$UNIVERSAL_ARCHS" = "all" ; then
- UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
- LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
- ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
-
- elif test "$UNIVERSAL_ARCHS" = "intel" ; then
- UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
- LIPO_32BIT_FLAGS="-extract i386"
- ARCH_RUN_32BIT="/usr/bin/arch -i386"
-
- elif test "$UNIVERSAL_ARCHS" = "3-way" ; then
- UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
- LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
- ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
-
- else
- AC_MSG_ERROR([proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way])
-
- fi
+ # is there any other compiler on Darwin besides gcc?
+ Darwin*)
+ # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
+ # used to be here, but non-Apple gcc doesn't accept them.
+ if test "${CC}" = gcc
+ then
+ AC_MSG_CHECKING(which compiler should be used)
+ case "${UNIVERSALSDK}" in
+ */MacOSX10.4u.sdk)
+ # Build using 10.4 SDK, force usage of gcc when the
+ # compiler is gcc, otherwise the user will get very
+ # confusing error messages when building on OSX 10.6
+ CC=gcc-4.0
+ CPP=cpp-4.0
+ ;;
+ esac
+ AC_MSG_RESULT($CC)
+ fi
- CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
- if test "${UNIVERSALSDK}" != "/"
- then
- CFLAGS="-isysroot ${UNIVERSALSDK} ${CFLAGS}"
- LDFLAGS="-isysroot ${UNIVERSALSDK} ${LDFLAGS}"
- CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
- fi
- fi
-
- # Calculate the right deployment target for this build.
- #
- cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
- if test ${cur_target} '>' 10.2 && \
- test ${cur_target} '<' 10.6
- then
- cur_target=10.3
- if test ${enable_universalsdk}; then
- if test "${UNIVERSAL_ARCHS}" = "all"; then
- # Ensure that the default platform for a
- # 4-way universal build is OSX 10.5,
- # that's the first OS release where
- # 4-way builds make sense.
- cur_target='10.5'
-
- elif test "${UNIVERSAL_ARCHS}" = "3-way"; then
- cur_target='10.5'
-
- elif test "${UNIVERSAL_ARCHS}" = "intel"; then
- cur_target='10.5'
-
- elif test "${UNIVERSAL_ARCHS}" = "64-bit"; then
- cur_target='10.5'
- fi
- else
- if test `/usr/bin/arch` = "i386"; then
- # On Intel macs default to a deployment
- # target of 10.4, that's the first OSX
- # release with Intel support.
- cur_target="10.4"
- fi
- fi
- fi
- CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
-
- # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
- # environment with a value that is the same as what we'll use
- # in the Makefile to ensure that we'll get the same compiler
- # environment during configure and build time.
- MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
- export MACOSX_DEPLOYMENT_TARGET
- EXPORT_MACOSX_DEPLOYMENT_TARGET=''
+ if test "${enable_universalsdk}"
+ then
+ case "$UNIVERSAL_ARCHS" in
+ 32-bit)
+ UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT=""
+ ;;
+ 64-bit)
+ UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT="true"
+ ;;
+ all)
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+ ;;
+ intel)
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386"
+ ;;
+ intel-32)
+ UNIVERSAL_ARCH_FLAGS="-arch i386"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT=""
+ ;;
+ 3-way)
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+ ;;
+ *)
+ AC_MSG_ERROR([proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way])
+ ;;
+ esac
+
+ CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
+ LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
+ if test "${UNIVERSALSDK}" != "/"
+ then
+ CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
+ fi
+ fi
- ;;
+ # Calculate an appropriate deployment target for this build:
+ # The deployment target value is used explicitly to enable certain
+ # features are enabled (such as builtin libedit support for readline)
+ # through the use of Apple's Availabiliy Macros and is used as a
+ # component of the string returned by distutils.get_platform().
+ #
+ # Use the value from:
+ # 1. the MACOSX_DEPLOYMENT_TARGET environment variable if specified
+ # 2. the operating system version of the build machine if >= 10.6
+ # 3. If running on OS X 10.3 through 10.5, use the legacy tests
+ # below to pick either 10.3, 10.4, or 10.5 as the target.
+ # 4. If we are running on OS X 10.2 or earlier, good luck!
+
+ AC_MSG_CHECKING(which MACOSX_DEPLOYMENT_TARGET to use)
+ cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
+ if test ${cur_target} '>' 10.2 && \
+ test ${cur_target} '<' 10.6
+ then
+ cur_target=10.3
+ if test ${enable_universalsdk}
+ then
+ case "$UNIVERSAL_ARCHS" in
+ all|3-way|intel|64-bit)
+ # These configurations were first supported in 10.5
+ cur_target='10.5'
+ ;;
+ esac
+ else
+ if test `/usr/bin/arch` = "i386"
+ then
+ # 10.4 was the first release to support Intel archs
+ cur_target="10.4"
+ fi
+ fi
+ fi
+ CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
+
+ # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
+ # environment with a value that is the same as what we'll use
+ # in the Makefile to ensure that we'll get the same compiler
+ # environment during configure and build time.
+ MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
+ export MACOSX_DEPLOYMENT_TARGET
+ EXPORT_MACOSX_DEPLOYMENT_TARGET=''
+ AC_MSG_RESULT($MACOSX_DEPLOYMENT_TARGET)
+
+ # end of Darwin* tests
+ ;;
esac
;;
esac
-ARCH_RUN_32BIT=""
AC_SUBST(LIBTOOL_CRUFT)
case $ac_sys_system/$ac_sys_release in
Darwin/@<:@01567@:>@\..*)
;;
esac
- #ARCH_RUN_32BIT="true"
fi
LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only ${MACOSX_DEFAULT_ARCH}"
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
esac
-
AC_MSG_CHECKING(for --enable-framework)
if test "$enable_framework"
then
if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
then
- if test "${enable_universalsdk}"; then
- LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
- fi
LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
BLDSHARED="$LDSHARED"