summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-07-16 02:17:56 (GMT)
committerGeorg Brandl <georg@python.org>2008-07-16 02:17:56 (GMT)
commitfcaf910a1fe9739afcf3be41ac2db31e8286c40f (patch)
treebd41de5d54f438977672a0ae8285e0db5f9ccdab /Include
parent26adf520f381c5902c82edbad1d341da6f03698d (diff)
downloadcpython-fcaf910a1fe9739afcf3be41ac2db31e8286c40f.zip
cpython-fcaf910a1fe9739afcf3be41ac2db31e8286c40f.tar.gz
cpython-fcaf910a1fe9739afcf3be41ac2db31e8286c40f.tar.bz2
Merged revisions 63955 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r63955 | ronald.oussoren | 2008-06-05 14:58:24 +0200 (Thu, 05 Jun 2008) | 20 lines 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. ........
Diffstat (limited to 'Include')
-rw-r--r--Include/Python.h1
-rw-r--r--Include/pymacconfig.h59
2 files changed, 60 insertions, 0 deletions
diff --git a/Include/Python.h b/Include/Python.h
index 61f8865..76b9503 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -6,6 +6,7 @@
#include "patchlevel.h"
#include "pyconfig.h"
+#include "pymacconfig.h"
#include <limits.h>
diff --git a/Include/pymacconfig.h b/Include/pymacconfig.h
new file mode 100644
index 0000000..e864e72
--- /dev/null
+++ b/Include/pymacconfig.h
@@ -0,0 +1,59 @@
+#ifndef PYMACCONFIG_H
+#define PYMACCONFIG_H
+ /*
+ * This file moves some of the autoconf magic to compile-time
+ * when building on MacOSX. This is needed for building 4-way
+ * universal binaries and for 64-bit universal binaries because
+ * the values redefined below aren't configure-time constant but
+ * only compile-time constant in these scenarios.
+ */
+
+#if defined(__APPLE__)
+
+# undef SIZEOF_LONG
+# undef SIZEOF_PTHREAD_T
+# undef SIZEOF_SIZE_T
+# undef SIZEOF_TIME_T
+# undef SIZEOF_VOID_P
+
+# undef VA_LIST_IS_ARRAY
+# if defined(__LP64__) && defined(__x86_64__)
+# define VA_LIST_IS_ARRAY 1
+# endif
+
+# undef HAVE_LARGEFILE_SUPPORT
+# ifndef __LP64__
+# define HAVE_LARGEFILE_SUPPORT 1
+# endif
+
+# undef SIZEOF_LONG
+# ifdef __LP64__
+# define SIZEOF_LONG 8
+# define SIZEOF_PTHREAD_T 8
+# define SIZEOF_SIZE_T 8
+# define SIZEOF_TIME_T 8
+# define SIZEOF_VOID_P 8
+# else
+# define SIZEOF_LONG 4
+# define SIZEOF_PTHREAD_T 4
+# define SIZEOF_SIZE_T 4
+# define SIZEOF_TIME_T 4
+# define SIZEOF_VOID_P 4
+# endif
+
+# if defined(__LP64__)
+ /* MacOSX 10.4 (the first release to suppport 64-bit code
+ * at all) only supports 64-bit in the UNIX layer.
+ * Therefore surpress the toolbox-glue in 64-bit mode.
+ */
+
+ /* In 64-bit mode setpgrp always has no argments, in 32-bit
+ * mode that depends on the compilation environment
+ */
+# undef SETPGRP_HAVE_ARG
+
+# endif
+
+#endif /* defined(_APPLE__) */
+
+#endif /* PYMACCONFIG_H */