|
1 | 1 | --- a/configure.ac |
2 | 2 | +++ b/configure.ac |
3 | | -@@ -570,7 +570,6 @@ |
| 3 | +@@ -569,29 +569,25 @@ AC_ARG_ENABLE([framework], |
| 4 | + |
4 | 5 | case $enableval in |
5 | 6 | no) |
6 | | - case $ac_sys_system in |
| 7 | +- case $ac_sys_system in |
7 | 8 | - iOS) AC_MSG_ERROR([iOS builds must use --enable-framework]) ;; |
8 | | - *) |
9 | | - PYTHONFRAMEWORK= |
10 | | - PYTHONFRAMEWORKDIR=no-framework |
11 | | -@@ -680,7 +679,7 @@ |
| 9 | +- *) |
| 10 | +- PYTHONFRAMEWORK= |
| 11 | +- PYTHONFRAMEWORKDIR=no-framework |
| 12 | +- PYTHONFRAMEWORKPREFIX= |
| 13 | +- PYTHONFRAMEWORKINSTALLDIR= |
| 14 | +- PYTHONFRAMEWORKINSTALLNAMEPREFIX= |
| 15 | +- RESSRCDIR= |
| 16 | +- FRAMEWORKINSTALLFIRST= |
| 17 | +- FRAMEWORKINSTALLLAST= |
| 18 | +- FRAMEWORKALTINSTALLFIRST= |
| 19 | +- FRAMEWORKALTINSTALLLAST= |
| 20 | +- FRAMEWORKPYTHONW= |
| 21 | +- INSTALLTARGETS="commoninstall bininstall maninstall" |
| 22 | +- |
| 23 | +- if test "x${prefix}" = "xNONE"; then |
| 24 | +- FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}" |
| 25 | +- else |
| 26 | +- FRAMEWORKUNIXTOOLSPREFIX="${prefix}" |
| 27 | +- fi |
| 28 | +- enable_framework= |
| 29 | +- esac |
| 30 | ++ PYTHONFRAMEWORK= |
| 31 | ++ PYTHONFRAMEWORKDIR=no-framework |
| 32 | ++ PYTHONFRAMEWORKPREFIX= |
| 33 | ++ PYTHONFRAMEWORKINSTALLDIR= |
| 34 | ++ PYTHONFRAMEWORKINSTALLNAMEPREFIX= |
| 35 | ++ RESSRCDIR= |
| 36 | ++ FRAMEWORKINSTALLFIRST= |
| 37 | ++ FRAMEWORKINSTALLLAST= |
| 38 | ++ FRAMEWORKALTINSTALLFIRST= |
| 39 | ++ FRAMEWORKALTINSTALLLAST= |
| 40 | ++ FRAMEWORKPYTHONW= |
| 41 | ++ INSTALLTARGETS="commoninstall bininstall maninstall" |
| 42 | ++ |
| 43 | ++ if test "x${prefix}" = "xNONE"; then |
| 44 | ++ FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}" |
| 45 | ++ else |
| 46 | ++ FRAMEWORKUNIXTOOLSPREFIX="${prefix}" |
| 47 | ++ fi |
| 48 | ++ enable_framework= |
| 49 | + ;; |
| 50 | + *) |
| 51 | + PYTHONFRAMEWORKPREFIX="${enableval}" |
| 52 | +@@ -679,28 +675,24 @@ AC_ARG_ENABLE([framework], |
| 53 | + esac |
12 | 54 | esac |
13 | 55 | ],[ |
14 | | - case $ac_sys_system in |
| 56 | +- case $ac_sys_system in |
15 | 57 | - iOS) AC_MSG_ERROR([iOS builds must use --enable-framework]) ;; |
16 | | -+ iOS) AC_MSG_ERROR([iOS builds must use --enable-framework, or --disable-framework with --disable-shared to build a static libpython]) ;; |
17 | | - *) |
18 | | - PYTHONFRAMEWORK= |
19 | | - PYTHONFRAMEWORKDIR=no-framework |
20 | | -@@ -1636,6 +1635,12 @@ |
21 | | - esac |
22 | | - fi |
23 | | - AC_MSG_RESULT([$LDLIBRARY]) |
24 | | -+ |
25 | | -+# A shared Python on iOS has to be a framework: an app can only load a signed |
26 | | -+# framework, never a bare dylib. A static libpython has nothing to load. |
27 | | -+if test "$ac_sys_system" = "iOS" && test "$PY_ENABLE_SHARED" = 1 && test -z "$PYTHONFRAMEWORK"; then |
28 | | -+ AC_MSG_ERROR([iOS builds must use --enable-framework, or --disable-framework with --disable-shared to build a static libpython]) |
29 | | -+fi |
30 | | - |
31 | | - if test "$cross_compiling" = yes; then |
32 | | - RUNSHARED= |
33 | | -@@ -3658,7 +3663,11 @@ |
| 58 | +- *) |
| 59 | +- PYTHONFRAMEWORK= |
| 60 | +- PYTHONFRAMEWORKDIR=no-framework |
| 61 | +- PYTHONFRAMEWORKPREFIX= |
| 62 | +- PYTHONFRAMEWORKINSTALLDIR= |
| 63 | +- PYTHONFRAMEWORKINSTALLNAMEPREFIX= |
| 64 | +- RESSRCDIR= |
| 65 | +- FRAMEWORKINSTALLFIRST= |
| 66 | +- FRAMEWORKINSTALLLAST= |
| 67 | +- FRAMEWORKALTINSTALLFIRST= |
| 68 | +- FRAMEWORKALTINSTALLLAST= |
| 69 | +- FRAMEWORKPYTHONW= |
| 70 | +- INSTALLTARGETS="commoninstall bininstall maninstall" |
| 71 | +- if test "x${prefix}" = "xNONE" ; then |
| 72 | +- FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}" |
| 73 | +- else |
| 74 | +- FRAMEWORKUNIXTOOLSPREFIX="${prefix}" |
| 75 | +- fi |
| 76 | +- enable_framework= |
| 77 | +- esac |
| 78 | ++ PYTHONFRAMEWORK= |
| 79 | ++ PYTHONFRAMEWORKDIR=no-framework |
| 80 | ++ PYTHONFRAMEWORKPREFIX= |
| 81 | ++ PYTHONFRAMEWORKINSTALLDIR= |
| 82 | ++ PYTHONFRAMEWORKINSTALLNAMEPREFIX= |
| 83 | ++ RESSRCDIR= |
| 84 | ++ FRAMEWORKINSTALLFIRST= |
| 85 | ++ FRAMEWORKINSTALLLAST= |
| 86 | ++ FRAMEWORKALTINSTALLFIRST= |
| 87 | ++ FRAMEWORKALTINSTALLLAST= |
| 88 | ++ FRAMEWORKPYTHONW= |
| 89 | ++ INSTALLTARGETS="commoninstall bininstall maninstall" |
| 90 | ++ if test "x${prefix}" = "xNONE" ; then |
| 91 | ++ FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}" |
| 92 | ++ else |
| 93 | ++ FRAMEWORKUNIXTOOLSPREFIX="${prefix}" |
| 94 | ++ fi |
| 95 | ++ enable_framework= |
| 96 | + ]) |
| 97 | + AC_SUBST([PYTHONFRAMEWORK]) |
| 98 | + AC_SUBST([PYTHONFRAMEWORKIDENTIFIER]) |
| 99 | +@@ -1618,6 +1610,9 @@ if test $enable_shared = "yes"; then |
| 100 | + RUNSHARED=DYLD_LIBRARY_PATH=`pwd`${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}} |
| 101 | + ;; |
| 102 | + iOS) |
| 103 | ++ if test -z "$PYTHONFRAMEWORK"; then |
| 104 | ++ AC_MSG_ERROR([iOS shared builds must use --enable-framework; an iOS app can only load a signed framework, never a bare dylib]) |
| 105 | ++ fi |
| 106 | + LDLIBRARY='libpython$(LDVERSION).dylib' |
| 107 | + ;; |
| 108 | + AIX*) |
| 109 | +@@ -3658,7 +3653,11 @@ then |
34 | 110 | fi |
35 | 111 | LINKFORSHARED="$LINKFORSHARED" |
36 | 112 | elif test $ac_sys_system = "iOS"; then |
|
43 | 119 | fi |
44 | 120 | ;; |
45 | 121 | OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";; |
46 | | -@@ -6413,8 +6422,9 @@ |
| 122 | +@@ -6413,8 +6412,8 @@ if test "$PY_ENABLE_SHARED" = "1" && ( test -n "$ANDROID_API_LEVEL" || test "$MA |
47 | 123 | LIBPYTHON="\$(BLDLIBRARY)" |
48 | 124 | fi |
49 | 125 |
|
50 | 126 | -# On iOS the shared libraries must be linked with the Python framework |
51 | 127 | -if test "$ac_sys_system" = "iOS"; then |
52 | | -+# On iOS the shared libraries must be linked with the Python framework, when one |
53 | | -+# is being built |
| 128 | ++# On iOS the shared libraries must be linked with the framework, when built |
54 | 129 | +if test "$ac_sys_system" = "iOS" && test "$enable_framework"; then |
55 | 130 | MODULE_DEPS_SHARED="$MODULE_DEPS_SHARED \$(PYTHONFRAMEWORKDIR)/\$(PYTHONFRAMEWORK)" |
56 | 131 | fi |
57 | 132 |
|
| 133 | +@@ -7663,6 +7662,11 @@ AC_ARG_ENABLE([test-modules], |
| 134 | + AS_VAR_IF([enable_test_modules], [yes], [TEST_MODULES=yes], [TEST_MODULES=no]) |
| 135 | + ], [TEST_MODULES=yes]) |
| 136 | + AC_MSG_RESULT([$TEST_MODULES]) |
| 137 | ++dnl Some test modules can only be built as shared libraries (see |
| 138 | ++dnl Modules/Setup.stdlib.in), which a non-framework iOS build cannot do. |
| 139 | ++AS_IF([test "$ac_sys_system" = "iOS" && test -z "$PYTHONFRAMEWORK"], |
| 140 | ++ [AS_IF([test "$TEST_MODULES" != "no"], |
| 141 | ++ [AC_MSG_ERROR([iOS non-framework builds must use --disable-test-modules])])]) |
| 142 | + AC_SUBST([TEST_MODULES]) |
| 143 | + |
| 144 | + # gh-109054: Check if -latomic is needed to get <pyatomic.h> atomic functions. |
| 145 | +@@ -7866,6 +7870,12 @@ AS_CASE([$host_cpu], |
| 146 | + ) |
| 147 | + AC_SUBST([MODULE_BUILDTYPE]) |
| 148 | + |
| 149 | ++dnl A non-framework iOS build has no framework for a shared extension module |
| 150 | ++dnl to link against, so every extension module must be built into libpython. |
| 151 | ++AS_IF([test "$ac_sys_system" = "iOS" && test -z "$PYTHONFRAMEWORK"], |
| 152 | ++ [AS_IF([test "$MODULE_BUILDTYPE" != "static"], |
| 153 | ++ [AC_MSG_ERROR([iOS non-framework builds must use MODULE_BUILDTYPE=static])])]) |
| 154 | ++ |
| 155 | + dnl _MODULE_BLOCK_ADD([VAR], [VALUE]) |
| 156 | + dnl internal: adds $1=quote($2) to MODULE_BLOCK |
| 157 | + AC_DEFUN([_MODULE_BLOCK_ADD], [AS_VAR_APPEND([MODULE_BLOCK], ["$1=_AS_QUOTE([$2])$as_nl"])]) |
0 commit comments