Commit Graph

110 Commits

Author SHA1 Message Date
Ned Deily 1ab29e78f9 Issue #18080: When building a C extension module on OS X, if the compiler
is overriden with the CC environment variable, use the new compiler as
the default for linking if LDSHARED is not also overriden.  This restores
Distutils behavior introduced in 2.7.3 and inadvertently dropped in 2.7.4.
2013-05-28 16:31:45 -07:00
doko@ubuntu.com 6cb4343d0d - Issue #13150, #17512: sysconfig no longer parses the Makefile and config.h
files when imported, instead doing it at build time.  This makes importing
  sysconfig faster and reduces Python startup time by 20%.
2013-04-08 21:20:09 +02:00
Benjamin Peterson 469ee9d84c backout 66e30c4870bb for breaking OSX (#13150) 2013-03-22 09:37:13 -05:00
doko@ubuntu.com 28b7c05131 - Issue #13150: sysconfig no longer parses the Makefile and config.h files
when imported, instead doing it at build time.  This makes importing
  sysconfig faster and reduces Python startup time by 20%.
2013-03-21 15:02:16 -07:00
doko@python.org d65e2bab3b - Issue #17086: Backport the patches from the 3.3 branch to cross-build
the package.
2013-01-31 23:52:03 +01:00
Ned Deily 18fae3f954 Issue #13590: OS X Xcode 4 - improve support for universal extension modules
In particular, fix extension module build failures when trying to use
    32-bit-only installer Pythons on systems with Xcode 4 (currently
    OS X 10.8, 10.7, and optionally 10.6).
    * Backport 3.3.0 fixes to 2.7 branch (for release in 2.7.4)
    * Since Xcode 4 removes ppc support, extension module builds now
      check for ppc compiler support and by default remove ppc and
      ppc64 archs when they are not available.
    * Extension module builds now revert to using system installed
      headers and libs (/usr and /System/Library) if the SDK used
      to build the interpreter is not installed or has moved.
    * Try to avoid building extension modules with deprecated
      and problematic Apple llvm-gcc compiler.  If original compiler
      is not available, use clang instead by default.
2013-01-31 01:24:55 -08:00
Ned Deily c47a459251 Issue #13994: Earler partial revert of Distutils enhancements in 2.7
has left two versions of customize_compiler, the original in
distutils.sysconfig and another copy in distutils.ccompiler, with some
parts of distutils calling one and others using the other.
Complete the revert back to only having one in distutils.sysconfig as
is the case in 3.x.
2012-02-11 20:40:24 +01:00
Ned Deily 0d0ea48709 Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building
Distutils-based packages with C extension modules may fail because
Apple has removed gcc-4.2, the version used to build python.org
64-bit/32-bit Pythons.  If the user does not explicitly override
the default C compiler by setting the CC environment variable,
Distutils will now attempt to compile extension modules with clang
if gcc-4.2 is required but not found. Also as a convenience, if
the user does explicitly set CC, substitute its value as the default
compiler in the Distutils LDSHARED configuration variable for OS X.
(Note, the python.org 32-bit-only Pythons use gcc-4.0 and the 10.4u
SDK, neither of which are available in Xcode 4.  This change does not
attempt to override settings to support their use with Xcode 4.)
2012-02-10 12:59:06 +01:00
Ned Deily 041645a8cb Issue #9516: Change distutils to no longer globally attempt to check and
set the MACOSX_DEPLOYMENT_TARGET env variable for the interpreter process
on OS X.  This could cause failures in non-distutils subprocesses and was
unreliable since tests or user programs could modify the interpreter
environment after distutils set it.  Instead, have distutils set the
the deployment target only in the environment of each build subprocess.

Continue to use the previous algorithm for deriving the deployment target
value:
    if MACOSX_DEPLOYMENT_TARGET is not set in the interpreter's env:
        use the interpreter build configure MACOSX_DEPLOYMENT_TARGET
    elif the MACOSX_DEPLOYMENT_TARGET env value >= configure value:
        use the env MACOSX_DEPLOYMENT_TARGET
    else: # env value less than interpreter build configure value
        raise exception
This allows building extensions that can only run on newer versions of
the OS than the version python was built for, for example with a python
built for 10.3 or later and an extension that needs to be built for 10.5.
2011-06-28 19:40:39 -07:00
Ronald Oussoren a70286b71d Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET is set in shell.
Without this patch python will fail to start properly when the environment
variable MACOSX_DEPLOYMENT_TARGET is set on MacOSX and has a value that is
not compatible with the value during Python's build. This is caused by code
in sysconfig that was only meant to be used in disutils.
2011-05-15 16:44:27 +02:00
Éric Araujo db553be7fb Remove one trace of Mac OS 9 support (#7908 follow-up)
This was overlooked in r80804.  This change is not really a bug fix,
but the release manager agreed to it.  There is no NEWS entry, like
in the original commit.
2010-11-06 14:16:30 +00:00
Antoine Pitrou 58dab67f2d Merged revisions 85353 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85353 | antoine.pitrou | 2010-10-10 11:37:12 +0200 (dim., 10 oct. 2010) | 3 lines

  Issue #9437: Fix building C extensions with non-default LDFLAGS.
........
2010-10-10 09:54:59 +00:00
Ronald Oussoren 9545a23c7f In a number of places code still revers
to "sys.platform == 'mac'" and that is
dead code because it refers to a platform
that is no longer supported (and hasn't been
supported for several releases).

Fixes issue #7908 for the trunk.
2010-05-05 19:09:31 +00:00
Tarek Ziadé a5cd18275e Fixed #8577. distutils.sysconfig.get_python_inc() now differenciates buildir and srcdir 2010-04-30 12:15:12 +00:00
Tarek Ziadé dd7bef9bf5 reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged 2010-03-05 00:16:02 +00:00
Tarek Ziadé bece7f2d36 fixed a typo on distutils.sysconfig. thanks arfever 2010-02-02 22:55:00 +00:00
Tarek Ziadé 0276c7ad0b reintroduced the names in Distutils for APIs that were relocated 2010-01-26 21:21:54 +00:00
Tarek Ziadé 5633a8048f taking sysconfig out of distutils 2010-01-23 09:23:15 +00:00
Ronald Oussoren 9fa9a0d635 Fix an issue with the detection of a non-existing SDK
on OSX. Without this patch it wasn't possible after all
to compile extensions on OSX 10.6 with the binary
installer unless the user had installed the (non-default)
10.4u SDK.
2009-12-10 10:27:09 +00:00
Ronald Oussoren 68776dbd3c Half of the fix for issue 6957: ensure that distutils
ignores the '-isysroot' option on OSX when the
corresponding SDK is not installed.

This ensures that the user can compile extensions
on OSX 10.6 using the Python.org installer and a
default installation of Xcode.
2009-09-22 19:27:44 +00:00
Tarek Ziadé 2d36afd15e removed the last string.split() call 2009-06-11 08:43:26 +00:00
Tarek Ziadé 25d2bae1c9 Fixed #5201: now distutils.sysconfig.parse_makefile() understands '53264' in Makefiles 2009-06-11 08:12:20 +00:00
Tarek Ziadé 99f660af3f Fixed #5941: added ARFLAGS for the archiver command. 2009-05-07 21:20:34 +00:00
Tarek Ziadé 74fbf60e8c Fixed #3386: the optional prefix argument was ignored under OS2 and NT in distutils.sysconfig.get_python_lib 2009-02-10 12:31:09 +00:00
Neil Schemenauer aa397d1806 Convert "srcdir" into an absolute path if that seems prudent. Currrently
the only user of this is Lib/distutils/tests/test_build_ext.py (in order
to find the source for xxmodule.c).  I'm not sure if other platforms
need similar tweaks, I'm not brave enough to attempt it without being
able to test.
2009-02-06 21:33:45 +00:00
Tarek Ziadé 05adf073cc fixed #1520877: now distutils reads Read from the environment/Makefile 2009-02-06 01:15:51 +00:00
Neil Schemenauer 444df45739 Fix get_python_inc() to work when building in a directory separate from
the source.  Also, define 'srcdir' on non-posix platforms.
2009-02-05 16:14:39 +00:00
Ronald Oussoren 5640ce2f1e MacOS X: Enable 4-way universal builds
This patch adds a new configure argument on OSX:
        --with-universal-archs=[32-bit|64-bit|all]

When used with the --enable-universalsdk option this controls which
CPU architectures are includes in the framework. The default is 32-bit,
meaning i386 and ppc. The most useful alternative is 'all', which includes
all 4 CPU architectures supported by MacOS X (i386, ppc, x86_64 and ppc64).

This includes limited support for the Carbon bindings in 64-bit mode as well,
limited because (a) I haven't done extensive testing and (b) a large portion
of the Carbon API's aren't available in 64-bit mode anyway.

I've also duplicated a feature of Apple's build of python: setting the
environment variable 'ARCHFLAGS' controls the '-arch' flags used for building
extensions using distutils.
2008-06-05 12:58:24 +00:00
Trent Nelson b27745fb6d Issue2290: Support x64 Windows builds that live in pcbuild/amd64. Without it, sysutils._python_build() returns the wrong directory, which causes the test_get_config_h_filename method in Lib/distutils/tests/test_sysconfig.py to fail. 2008-03-19 06:28:24 +00:00
Guido van Rossum 8bc0965adf Removed uses of dict.has_key() from distutils, and uses of
callable() from copy_reg.py, so the interpreter now starts up
without warnings when '-3' is given.  More work like this needs to
be done in the rest of the stdlib.
2008-02-21 18:18:37 +00:00
Marc-André Lemburg 2db7cd3ae2 Keep distutils Python 2.1 compatible (or even Python 2.4 in this case). 2008-02-05 14:50:40 +00:00
Christian Heimes 9a1d8cec11 Added support for new Windows build dirs in PC/ to distutils.sysconfig 2008-01-01 14:37:32 +00:00
Christian Heimes c67a15d865 Fixed bug #1628
The detection now works on Unix with Makefile, Makefile with VPATH and on Windows.
2007-12-14 23:42:36 +00:00
Christian Heimes 0a0e583259 Fixed bug #1613: Makefile's VPATH feature is broken 2007-12-13 19:23:16 +00:00
Christian Heimes d3fc07a4a0 Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Added several small unit tests for sysconfig.
2007-12-06 13:15:13 +00:00
Ronald Oussoren d610369e8b MacOSX: distutils changes the values of BASECFLAGS and LDFLAGS when using a
universal build of python on OSX 10.3 to ensure that those flags can be used
to compile code (the universal build uses compiler flags that aren't supported
on 10.3). This patches gives the same treatment to CFLAGS, PY_CFLAGS and
BLDSHARED.
2006-10-08 17:49:52 +00:00
Ronald Oussoren 7b9053a274 MacOSX: fix rather dumb buglet that made it impossible to create extensions on
OSX 10.3 when using a binary distribution build on 10.4.
2006-06-27 10:08:25 +00:00
Ronald Oussoren b02daf794b Patch #1488098.
This patchs makes it possible to create a universal build on OSX 10.4 and use
the result to build extensions on 10.3. It also makes it possible to override
the '-arch' and '-isysroot' compiler arguments for specific extensions.
2006-05-23 12:01:11 +00:00
Ronald Oussoren 988117fd63 Patch 1471883: --enable-universalsdk on Mac OS X 2006-04-29 11:31:35 +00:00
Ronald Oussoren 59075eb264 disutils checks if MACOSX_DEPLOYMENT_TARGET is consistent with the value at
configure time. The current check is too strict and doesn't allow building
extensions that can only run on newer versions of the OS than the version
python was build for, that is python build for 10.3 or later and an extension
for 10.4. This patch relaxes this check.

This turned out to be a reimplementation of patch 1193190.
2006-04-17 14:43:30 +00:00
Armin Rigo dfde91a79e Fix for a bug exposed by r45232:
/path/to/uninstalled/python setup.py build_ext

now failed with pyconfig.h not found.  Prior to r45232
the above command did not look for pyconfig.h, but the
bug is really in the look-up code: expecting to find it
in os.curdir is a rather fragile idea.
2006-04-17 09:22:35 +00:00
Martin v. Löwis 10acfd00b2 Patch #1429775: Link Python modules to libpython on linux if
--enable-shared. Fixes #832799.
2006-04-10 12:39:36 +00:00
Guido van Rossum f8480a7856 Instead of relative imports, use (implicitly) absolute ones. 2006-03-15 23:08:13 +00:00
Guido van Rossum 87de069e4e Use relative imports in a few places where I noticed the need.
(Ideally, all packages in Python 2.5 will use the relative import
syntax for all their relative import needs.)
2006-03-15 04:33:54 +00:00
Tim Peters fffc4b7b3a Whitespace normalization. 2005-05-18 02:18:09 +00:00
Martin v. Löwis d7c795e729 Make parse_makefile fallback to environment variables if nothing is
defined in the makefile. Get CFLAGS from the Makefile, instead of
getting OPT, BASE_CFLAGS and EXTRA_CFLAGS individually.
2005-04-25 07:14:03 +00:00
Brett Cannon 08cd598c21 Introduced EXTRA_CFLAGS as an environment variable used by the Makefile. Meant
to be used for flags that change binary compatibility.

Distutils was tweaked to also use the variable if used during compilation of
the interpreter.
2005-04-24 22:26:38 +00:00
Martin v. Löwis df37c8c1ad Patch #1046831: Use get_python_version where appropriate in sysconfig.py. 2005-03-03 11:08:03 +00:00
Jack Jansen be95462c1c After discussion on the PythonMac-SIG it was decided that it is better
to make using "-undefined dynamic_lookup" for linking extensions more
automatic on 10.3 and later. So if we're on that platform and
MACOSX_DEPLOYMENT_TARGET is not set we now set it to the current OSX
version during configure. Additionally, distutils will pick up the
configure-time value by default.

Will backport.
2004-12-26 23:07:48 +00:00
Anthony Baxter 22dcf66f84 Patch 983206: distutils obeys LDSHARED env var. Removed the code in
Python's own setup.py that did the same thing (and tested on Solaris,
where LDSHARED is needed...)
2004-10-13 15:54:17 +00:00