mirror of https://github.com/python/cpython.git
gh-114099: Refactor configure and Makefile to accomodate non-macOS frameworks (#115120)
Part of the PEP 730 work to add iOS support. This change lays the groundwork for introducing iOS/tvOS/watchOS frameworks; it includes the structural refactoring needed so that iOS branches can be added into in a subsequent PR. Summary of changes: * Updates config.sub to the 2024-01-01 release. This is the "as released" version of config.sub. * Adds a RESSRCDIR variable to allow sharing of macOS and iOS Makefile steps. * Adds an INSTALLTARGETS variable so platforms can customise which targets are actually installed. This will be used to exclude certain targets (e.g., binaries, manfiles) from iOS framework installs. * Adds a PYTHONFRAMEWORKINSTALLNAMEPREFIX variable; this is used as the install name for the library. This is needed to allow for iOS frameworks to specify an @rpath-based install name. * Evaluates MACHDEP earlier in the configure process so that ac_sys_system is available. * Modifies _PYTHON_HOST_PLATFORM evaluation for cross-platform builds so that the CPU architecture is differentiated from the host identifier. This will be used to generate a _PYTHON_HOST_PLATFORM definition that includes ABI information, not just CPU architecture. * Differentiates between SOABI_PLATFORM and PLATFORM_TRIPLET. SOABI_PLATFORM is used in binary module names, and includes the ABI, but not the OS or CPU architecture (e.g., math.cpython-313-iphonesimulator.dylib). PLATFORM_TRIPLET is used as the sys._multiarch value, and on iOS will contains the ABI and architecture (e.g., iphoneos-arm64). This differentiation hasn't historically been needed because while macOS is a multiarch platform, it uses a bare darwin as PLATFORM_TRIPLE. * Removes the use of the deprecated -Wl,-single_module flag when compiling macOS frameworks. * Some whitespace normalisation where there was a mix of spaces and tabs in a single block.
This commit is contained in:
parent
10756b10ff
commit
2f0778675a
|
@ -184,6 +184,8 @@ PYTHONFRAMEWORK= @PYTHONFRAMEWORK@
|
|||
PYTHONFRAMEWORKDIR= @PYTHONFRAMEWORKDIR@
|
||||
PYTHONFRAMEWORKPREFIX= @PYTHONFRAMEWORKPREFIX@
|
||||
PYTHONFRAMEWORKINSTALLDIR= @PYTHONFRAMEWORKINSTALLDIR@
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX= @PYTHONFRAMEWORKINSTALLNAMEPREFIX@
|
||||
RESSRCDIR= @RESSRCDIR@
|
||||
# Deployment target selected during configure, to be checked
|
||||
# by distutils. The export statement is needed to ensure that the
|
||||
# deployment target is active during build.
|
||||
|
@ -866,7 +868,7 @@ libpython3.so: libpython$(LDVERSION).so
|
|||
$(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^
|
||||
|
||||
libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)
|
||||
$(CC) -dynamiclib -Wl,-single_module $(PY_CORE_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(DTRACE_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
|
||||
$(CC) -dynamiclib $(PY_CORE_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(PYTHONFRAMEWORKINSTALLNAMEPREFIX)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(DTRACE_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
|
||||
|
||||
|
||||
libpython$(VERSION).sl: $(LIBRARY_OBJS)
|
||||
|
@ -891,14 +893,13 @@ $(BUILDPYTHON)-gdb.py: $(SRC_GDB_HOOKS)
|
|||
# This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
|
||||
# minimal framework (not including the Lib directory and such) in the current
|
||||
# directory.
|
||||
RESSRCDIR=Mac/Resources/framework
|
||||
$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
|
||||
$(LIBRARY) \
|
||||
$(RESSRCDIR)/Info.plist
|
||||
$(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
|
||||
$(CC) -o $(LDLIBRARY) $(PY_CORE_LDFLAGS) -dynamiclib \
|
||||
-all_load $(LIBRARY) -Wl,-single_module \
|
||||
-install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
|
||||
-all_load $(LIBRARY) \
|
||||
-install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLNAMEPREFIX)/$(PYTHONFRAMEWORK) \
|
||||
-compatibility_version $(VERSION) \
|
||||
-current_version $(VERSION) \
|
||||
-framework CoreFoundation $(LIBS);
|
||||
|
@ -2000,7 +2001,7 @@ multissltest: all
|
|||
# which can lead to two parallel `./python setup.py build` processes that
|
||||
# step on each others toes.
|
||||
.PHONY: install
|
||||
install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKINSTALLLAST@
|
||||
install: @FRAMEWORKINSTALLFIRST@ @INSTALLTARGETS@ @FRAMEWORKINSTALLLAST@
|
||||
if test "x$(ENSUREPIP)" != "xno" ; then \
|
||||
case $(ENSUREPIP) in \
|
||||
upgrade) ensurepip="--upgrade" ;; \
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
configure and Makefile were refactored to accomodate framework builds on
|
||||
Apple platforms other than macOS.
|
|
@ -1,14 +1,14 @@
|
|||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2021 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2024 Free Software Foundation, Inc.
|
||||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2021-08-14'
|
||||
timestamp='2024-01-01'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
|
@ -76,13 +76,13 @@ Report bugs and patches to <config-patches@gnu.org>."
|
|||
version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright 1992-2021 Free Software Foundation, Inc.
|
||||
Copyright 1992-2024 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
||||
help="
|
||||
Try \`$me --help' for more information."
|
||||
Try '$me --help' for more information."
|
||||
|
||||
# Parse command line
|
||||
while test $# -gt 0 ; do
|
||||
|
@ -130,7 +130,7 @@ IFS=$saved_IFS
|
|||
# Separate into logical components for further validation
|
||||
case $1 in
|
||||
*-*-*-*-*)
|
||||
echo Invalid configuration \`"$1"\': more than four components >&2
|
||||
echo "Invalid configuration '$1': more than four components" >&2
|
||||
exit 1
|
||||
;;
|
||||
*-*-*-*)
|
||||
|
@ -145,7 +145,8 @@ case $1 in
|
|||
nto-qnx* | linux-* | uclinux-uclibc* \
|
||||
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
|
||||
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
|
||||
| storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
|
||||
| windows-* )
|
||||
basic_machine=$field1
|
||||
basic_os=$maybe_os
|
||||
;;
|
||||
|
@ -943,7 +944,7 @@ $basic_machine
|
|||
EOF
|
||||
IFS=$saved_IFS
|
||||
;;
|
||||
# We use `pc' rather than `unknown'
|
||||
# We use 'pc' rather than 'unknown'
|
||||
# because (1) that's what they normally are, and
|
||||
# (2) the word "unknown" tends to confuse beginning users.
|
||||
i*86 | x86_64)
|
||||
|
@ -1020,6 +1021,11 @@ case $cpu-$vendor in
|
|||
;;
|
||||
|
||||
# Here we normalize CPU types with a missing or matching vendor
|
||||
armh-unknown | armh-alt)
|
||||
cpu=armv7l
|
||||
vendor=alt
|
||||
basic_os=${basic_os:-linux-gnueabihf}
|
||||
;;
|
||||
dpx20-unknown | dpx20-bull)
|
||||
cpu=rs6000
|
||||
vendor=bull
|
||||
|
@ -1070,7 +1076,7 @@ case $cpu-$vendor in
|
|||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||
cpu=i586
|
||||
;;
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
|
||||
cpu=i686
|
||||
;;
|
||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||
|
@ -1121,7 +1127,7 @@ case $cpu-$vendor in
|
|||
xscale-* | xscalee[bl]-*)
|
||||
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
|
||||
;;
|
||||
arm64-*)
|
||||
arm64-* | aarch64le-*)
|
||||
cpu=aarch64
|
||||
;;
|
||||
|
||||
|
@ -1175,7 +1181,7 @@ case $cpu-$vendor in
|
|||
case $cpu in
|
||||
1750a | 580 \
|
||||
| a29k \
|
||||
| aarch64 | aarch64_be \
|
||||
| aarch64 | aarch64_be | aarch64c | arm64ec \
|
||||
| abacus \
|
||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
|
||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
|
||||
|
@ -1194,50 +1200,29 @@ case $cpu-$vendor in
|
|||
| d10v | d30v | dlx | dsp16xx \
|
||||
| e2k | elxsi | epiphany \
|
||||
| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
|
||||
| javascript \
|
||||
| h8300 | h8500 \
|
||||
| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| hexagon \
|
||||
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| k1om \
|
||||
| kvx \
|
||||
| le32 | le64 \
|
||||
| lm32 \
|
||||
| loongarch32 | loongarch64 | loongarchx32 \
|
||||
| loongarch32 | loongarch64 \
|
||||
| m32c | m32r | m32rle \
|
||||
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
|
||||
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
|
||||
| m88110 | m88k | maxq | mb | mcore | mep | metag \
|
||||
| microblaze | microblazeel \
|
||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||
| mips16 \
|
||||
| mips64 | mips64eb | mips64el \
|
||||
| mips64octeon | mips64octeonel \
|
||||
| mips64orion | mips64orionel \
|
||||
| mips64r5900 | mips64r5900el \
|
||||
| mips64vr | mips64vrel \
|
||||
| mips64vr4100 | mips64vr4100el \
|
||||
| mips64vr4300 | mips64vr4300el \
|
||||
| mips64vr5000 | mips64vr5000el \
|
||||
| mips64vr5900 | mips64vr5900el \
|
||||
| mipsisa32 | mipsisa32el \
|
||||
| mipsisa32r2 | mipsisa32r2el \
|
||||
| mipsisa32r3 | mipsisa32r3el \
|
||||
| mipsisa32r5 | mipsisa32r5el \
|
||||
| mipsisa32r6 | mipsisa32r6el \
|
||||
| mipsisa64 | mipsisa64el \
|
||||
| mipsisa64r2 | mipsisa64r2el \
|
||||
| mipsisa64r3 | mipsisa64r3el \
|
||||
| mipsisa64r5 | mipsisa64r5el \
|
||||
| mipsisa64r6 | mipsisa64r6el \
|
||||
| mipsisa64sb1 | mipsisa64sb1el \
|
||||
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||
| mipsr5900 | mipsr5900el \
|
||||
| mipstx39 | mipstx39el \
|
||||
| mips* \
|
||||
| mmix \
|
||||
| mn10200 | mn10300 \
|
||||
| moxie \
|
||||
| mt \
|
||||
| msp430 \
|
||||
| nanomips* \
|
||||
| nds32 | nds32le | nds32be \
|
||||
| nfp \
|
||||
| nios | nios2 | nios2eb | nios2el \
|
||||
|
@ -1269,6 +1254,7 @@ case $cpu-$vendor in
|
|||
| ubicom32 \
|
||||
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
|
||||
| vax \
|
||||
| vc4 \
|
||||
| visium \
|
||||
| w65 \
|
||||
| wasm32 | wasm64 \
|
||||
|
@ -1280,7 +1266,7 @@ case $cpu-$vendor in
|
|||
;;
|
||||
|
||||
*)
|
||||
echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
|
||||
echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
@ -1301,11 +1287,12 @@ esac
|
|||
|
||||
# Decode manufacturer-specific aliases for certain operating systems.
|
||||
|
||||
if test x$basic_os != x
|
||||
if test x"$basic_os" != x
|
||||
then
|
||||
|
||||
# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
|
||||
# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
|
||||
# set os.
|
||||
obj=
|
||||
case $basic_os in
|
||||
gnu/linux*)
|
||||
kernel=linux
|
||||
|
@ -1336,6 +1323,10 @@ EOF
|
|||
kernel=linux
|
||||
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
|
||||
;;
|
||||
managarm*)
|
||||
kernel=managarm
|
||||
os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
|
||||
;;
|
||||
*)
|
||||
kernel=
|
||||
os=$basic_os
|
||||
|
@ -1501,10 +1492,16 @@ case $os in
|
|||
os=eabi
|
||||
;;
|
||||
*)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
aout* | coff* | elf* | pe*)
|
||||
# These are machine code file formats, not OSes
|
||||
obj=$os
|
||||
os=
|
||||
;;
|
||||
*)
|
||||
# No normalization, but not necessarily accepted, that comes below.
|
||||
;;
|
||||
|
@ -1523,12 +1520,15 @@ else
|
|||
# system, and we'll never get to this point.
|
||||
|
||||
kernel=
|
||||
obj=
|
||||
case $cpu-$vendor in
|
||||
score-*)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
spu-*)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
*-acorn)
|
||||
os=riscix1.2
|
||||
|
@ -1538,28 +1538,35 @@ case $cpu-$vendor in
|
|||
os=gnu
|
||||
;;
|
||||
arm*-semi)
|
||||
os=aout
|
||||
os=
|
||||
obj=aout
|
||||
;;
|
||||
c4x-* | tic4x-*)
|
||||
os=coff
|
||||
os=
|
||||
obj=coff
|
||||
;;
|
||||
c8051-*)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
clipper-intergraph)
|
||||
os=clix
|
||||
;;
|
||||
hexagon-*)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
tic54x-*)
|
||||
os=coff
|
||||
os=
|
||||
obj=coff
|
||||
;;
|
||||
tic55x-*)
|
||||
os=coff
|
||||
os=
|
||||
obj=coff
|
||||
;;
|
||||
tic6x-*)
|
||||
os=coff
|
||||
os=
|
||||
obj=coff
|
||||
;;
|
||||
# This must come before the *-dec entry.
|
||||
pdp10-*)
|
||||
|
@ -1581,19 +1588,24 @@ case $cpu-$vendor in
|
|||
os=sunos3
|
||||
;;
|
||||
m68*-cisco)
|
||||
os=aout
|
||||
os=
|
||||
obj=aout
|
||||
;;
|
||||
mep-*)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
mips*-cisco)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
mips*-*)
|
||||
os=elf
|
||||
mips*-*|nanomips*-*)
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
or32-*)
|
||||
os=coff
|
||||
os=
|
||||
obj=coff
|
||||
;;
|
||||
*-tti) # must be before sparc entry or we get the wrong os.
|
||||
os=sysv3
|
||||
|
@ -1602,7 +1614,8 @@ case $cpu-$vendor in
|
|||
os=sunos4.1.1
|
||||
;;
|
||||
pru-*)
|
||||
os=elf
|
||||
os=
|
||||
obj=elf
|
||||
;;
|
||||
*-be)
|
||||
os=beos
|
||||
|
@ -1683,10 +1696,12 @@ case $cpu-$vendor in
|
|||
os=uxpv
|
||||
;;
|
||||
*-rom68k)
|
||||
os=coff
|
||||
os=
|
||||
obj=coff
|
||||
;;
|
||||
*-*bug)
|
||||
os=coff
|
||||
os=
|
||||
obj=coff
|
||||
;;
|
||||
*-apple)
|
||||
os=macos
|
||||
|
@ -1704,10 +1719,11 @@ esac
|
|||
|
||||
fi
|
||||
|
||||
# Now, validate our (potentially fixed-up) OS.
|
||||
# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
|
||||
|
||||
case $os in
|
||||
# Sometimes we do "kernel-libc", so those need to count as OSes.
|
||||
musl* | newlib* | relibc* | uclibc*)
|
||||
llvm* | musl* | newlib* | relibc* | uclibc*)
|
||||
;;
|
||||
# Likewise for "kernel-abi"
|
||||
eabi* | gnueabi*)
|
||||
|
@ -1715,6 +1731,9 @@ case $os in
|
|||
# VxWorks passes extra cpu info in the 4th filed.
|
||||
simlinux | simwindows | spe)
|
||||
;;
|
||||
# See `case $cpu-$os` validation below
|
||||
ghcjs)
|
||||
;;
|
||||
# Now accept the basic system types.
|
||||
# The portable systems comes first.
|
||||
# Each alternative MUST end in a * to match a version number.
|
||||
|
@ -1723,7 +1742,7 @@ case $os in
|
|||
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
|
||||
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
|
||||
| hiux* | abug | nacl* | netware* | windows* \
|
||||
| os9* | macos* | osx* | ios* \
|
||||
| os9* | macos* | osx* | ios* | tvos* | watchos* \
|
||||
| mpw* | magic* | mmixware* | mon960* | lnews* \
|
||||
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
|
||||
| aos* | aros* | cloudabi* | sortix* | twizzler* \
|
||||
|
@ -1732,11 +1751,11 @@ case $os in
|
|||
| mirbsd* | netbsd* | dicos* | openedition* | ose* \
|
||||
| bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
|
||||
| ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
|
||||
| bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
|
||||
| ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
|
||||
| bosx* | nextstep* | cxux* | oabi* \
|
||||
| ptx* | ecoff* | winnt* | domain* | vsta* \
|
||||
| udi* | lites* | ieee* | go32* | aux* | hcos* \
|
||||
| chorusrdb* | cegcc* | glidix* | serenity* \
|
||||
| cygwin* | msys* | pe* | moss* | proelf* | rtems* \
|
||||
| cygwin* | msys* | moss* | proelf* | rtems* \
|
||||
| midipix* | mingw32* | mingw64* | mint* \
|
||||
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
|
||||
| interix* | uwin* | mks* | rhapsody* | darwin* \
|
||||
|
@ -1748,49 +1767,117 @@ case $os in
|
|||
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
|
||||
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
|
||||
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
|
||||
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
|
||||
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
|
||||
| fiwix* | mlibc* | cos* | mbr* | ironclad* )
|
||||
;;
|
||||
# This one is extra strict with allowed versions
|
||||
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
;;
|
||||
# This refers to builds using the UEFI calling convention
|
||||
# (which depends on the architecture) and PE file format.
|
||||
# Note that this is both a different calling convention and
|
||||
# different file format than that of GNU-EFI
|
||||
# (x86_64-w64-mingw32).
|
||||
uefi)
|
||||
;;
|
||||
none)
|
||||
;;
|
||||
kernel* | msvc* )
|
||||
# Restricted further below
|
||||
;;
|
||||
'')
|
||||
if test x"$obj" = x
|
||||
then
|
||||
echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
|
||||
echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case $obj in
|
||||
aout* | coff* | elf* | pe*)
|
||||
;;
|
||||
'')
|
||||
# empty is fine
|
||||
;;
|
||||
*)
|
||||
echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Here we handle the constraint that a (synthetic) cpu and os are
|
||||
# valid only in combination with each other and nowhere else.
|
||||
case $cpu-$os in
|
||||
# The "javascript-unknown-ghcjs" triple is used by GHC; we
|
||||
# accept it here in order to tolerate that, but reject any
|
||||
# variations.
|
||||
javascript-ghcjs)
|
||||
;;
|
||||
javascript-* | *-ghcjs)
|
||||
echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# As a final step for OS-related things, validate the OS-kernel combination
|
||||
# (given a valid OS), if there is a kernel.
|
||||
case $kernel-$os in
|
||||
linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
|
||||
| linux-musl* | linux-relibc* | linux-uclibc* )
|
||||
case $kernel-$os-$obj in
|
||||
linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
|
||||
| linux-mlibc*- | linux-musl*- | linux-newlib*- \
|
||||
| linux-relibc*- | linux-uclibc*- )
|
||||
;;
|
||||
uclinux-uclibc* )
|
||||
uclinux-uclibc*- )
|
||||
;;
|
||||
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
|
||||
managarm-mlibc*- | managarm-kernel*- )
|
||||
;;
|
||||
windows*-msvc*-)
|
||||
;;
|
||||
-dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
|
||||
| -uclibc*- )
|
||||
# These are just libc implementations, not actual OSes, and thus
|
||||
# require a kernel.
|
||||
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
|
||||
echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
kfreebsd*-gnu* | kopensolaris*-gnu*)
|
||||
-kernel*- )
|
||||
echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
vxworks-simlinux | vxworks-simwindows | vxworks-spe)
|
||||
*-kernel*- )
|
||||
echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
nto-qnx*)
|
||||
*-msvc*- )
|
||||
echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
os2-emx)
|
||||
kfreebsd*-gnu*- | kopensolaris*-gnu*-)
|
||||
;;
|
||||
*-eabi* | *-gnueabi*)
|
||||
vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
|
||||
;;
|
||||
-*)
|
||||
nto-qnx*-)
|
||||
;;
|
||||
os2-emx-)
|
||||
;;
|
||||
*-eabi*- | *-gnueabi*-)
|
||||
;;
|
||||
none--*)
|
||||
# None (no kernel, i.e. freestanding / bare metal),
|
||||
# can be paired with an machine code file format
|
||||
;;
|
||||
-*-)
|
||||
# Blank kernel with real OS is always fine.
|
||||
;;
|
||||
*-*)
|
||||
echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
|
||||
--*)
|
||||
# Blank kernel and OS with real machine code file format is always fine.
|
||||
;;
|
||||
*-*-*)
|
||||
echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
@ -1873,7 +1960,7 @@ case $vendor in
|
|||
;;
|
||||
esac
|
||||
|
||||
echo "$cpu-$vendor-${kernel:+$kernel-}$os"
|
||||
echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
|
||||
exit
|
||||
|
||||
# Local variables:
|
||||
|
|
|
@ -972,7 +972,7 @@ HAS_XCRUN
|
|||
EXPORT_MACOSX_DEPLOYMENT_TARGET
|
||||
CONFIGURE_MACOSX_DEPLOYMENT_TARGET
|
||||
_PYTHON_HOST_PLATFORM
|
||||
MACHDEP
|
||||
INSTALLTARGETS
|
||||
FRAMEWORKINSTALLAPPSPREFIX
|
||||
FRAMEWORKUNIXTOOLSPREFIX
|
||||
FRAMEWORKPYTHONW
|
||||
|
@ -980,6 +980,8 @@ FRAMEWORKALTINSTALLLAST
|
|||
FRAMEWORKALTINSTALLFIRST
|
||||
FRAMEWORKINSTALLLAST
|
||||
FRAMEWORKINSTALLFIRST
|
||||
RESSRCDIR
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX
|
||||
PYTHONFRAMEWORKINSTALLDIR
|
||||
PYTHONFRAMEWORKPREFIX
|
||||
PYTHONFRAMEWORKDIR
|
||||
|
@ -989,6 +991,7 @@ LIPO_INTEL64_FLAGS
|
|||
LIPO_32BIT_FLAGS
|
||||
ARCH_RUN_32BIT
|
||||
UNIVERSALSDK
|
||||
MACHDEP
|
||||
PKG_CONFIG_LIBDIR
|
||||
PKG_CONFIG_PATH
|
||||
PKG_CONFIG
|
||||
|
@ -4004,6 +4007,77 @@ if test "$with_pkg_config" = yes -a -z "$PKG_CONFIG"; then
|
|||
as_fn_error $? "pkg-config is required" "$LINENO" 5]
|
||||
fi
|
||||
|
||||
# Set name for machine-dependent library files
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking MACHDEP" >&5
|
||||
printf %s "checking MACHDEP... " >&6; }
|
||||
if test -z "$MACHDEP"
|
||||
then
|
||||
# avoid using uname for cross builds
|
||||
if test "$cross_compiling" = yes; then
|
||||
# ac_sys_system and ac_sys_release are used for setting
|
||||
# a lot of different things including 'define_xopen_source'
|
||||
# in the case statement below.
|
||||
case "$host" in
|
||||
*-*-linux-android*)
|
||||
ac_sys_system=Linux-android
|
||||
;;
|
||||
*-*-linux*)
|
||||
ac_sys_system=Linux
|
||||
;;
|
||||
*-*-cygwin*)
|
||||
ac_sys_system=Cygwin
|
||||
;;
|
||||
*-*-vxworks*)
|
||||
ac_sys_system=VxWorks
|
||||
;;
|
||||
*-*-emscripten)
|
||||
ac_sys_system=Emscripten
|
||||
;;
|
||||
*-*-wasi)
|
||||
ac_sys_system=WASI
|
||||
;;
|
||||
*)
|
||||
# for now, limit cross builds to known configurations
|
||||
MACHDEP="unknown"
|
||||
as_fn_error $? "cross build not supported for $host" "$LINENO" 5
|
||||
esac
|
||||
ac_sys_release=
|
||||
else
|
||||
ac_sys_system=`uname -s`
|
||||
if test "$ac_sys_system" = "AIX" \
|
||||
-o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
|
||||
ac_sys_release=`uname -v`
|
||||
else
|
||||
ac_sys_release=`uname -r`
|
||||
fi
|
||||
fi
|
||||
ac_md_system=`echo $ac_sys_system |
|
||||
tr -d '/ ' | tr '[A-Z]' '[a-z]'`
|
||||
ac_md_release=`echo $ac_sys_release |
|
||||
tr -d '/ ' | sed 's/^[A-Z]\.//' | sed 's/\..*//'`
|
||||
MACHDEP="$ac_md_system$ac_md_release"
|
||||
|
||||
case $MACHDEP in
|
||||
aix*) MACHDEP="aix";;
|
||||
linux*) MACHDEP="linux";;
|
||||
cygwin*) MACHDEP="cygwin";;
|
||||
darwin*) MACHDEP="darwin";;
|
||||
'') MACHDEP="unknown";;
|
||||
esac
|
||||
|
||||
if test "$ac_sys_system" = "SunOS"; then
|
||||
# For Solaris, there isn't an OS version specific macro defined
|
||||
# in most compilers, so we define one here.
|
||||
SUNOS_VERSION=`echo $ac_sys_release | sed -e 's!\.\(0-9\)$!.0\1!g' | tr -d '.'`
|
||||
|
||||
printf "%s\n" "#define Py_SUNOS_VERSION $SUNOS_VERSION" >>confdefs.h
|
||||
|
||||
fi
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$MACHDEP\"" >&5
|
||||
printf "%s\n" "\"$MACHDEP\"" >&6; }
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-universalsdk" >&5
|
||||
printf %s "checking for --enable-universalsdk... " >&6; }
|
||||
# Check whether --enable-universalsdk was given.
|
||||
|
@ -4127,11 +4201,15 @@ then :
|
|||
PYTHONFRAMEWORKDIR=no-framework
|
||||
PYTHONFRAMEWORKPREFIX=
|
||||
PYTHONFRAMEWORKINSTALLDIR=
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX=
|
||||
RESSRCDIR=
|
||||
FRAMEWORKINSTALLFIRST=
|
||||
FRAMEWORKINSTALLLAST=
|
||||
FRAMEWORKALTINSTALLFIRST=
|
||||
FRAMEWORKALTINSTALLLAST=
|
||||
FRAMEWORKPYTHONW=
|
||||
INSTALLTARGETS="commoninstall bininstall maninstall"
|
||||
|
||||
if test "x${prefix}" = "xNONE"; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
else
|
||||
|
@ -4144,77 +4222,91 @@ then :
|
|||
PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
|
||||
FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
|
||||
FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure "
|
||||
FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
|
||||
FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
|
||||
FRAMEWORKPYTHONW="frameworkpythonw"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
|
||||
if test "x${prefix}" = "xNONE" ; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
case $ac_sys_system in #(
|
||||
Darwin) :
|
||||
FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
|
||||
FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
|
||||
FRAMEWORKPYTHONW="frameworkpythonw"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
INSTALLTARGETS="commoninstall bininstall maninstall"
|
||||
|
||||
else
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
|
||||
fi
|
||||
if test "x${prefix}" = "xNONE" ; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
|
||||
case "${enableval}" in
|
||||
/System*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
if test "${prefix}" = "NONE" ; then
|
||||
# See below
|
||||
FRAMEWORKUNIXTOOLSPREFIX="/usr"
|
||||
fi
|
||||
;;
|
||||
else
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
|
||||
fi
|
||||
|
||||
/Library*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
case "${enableval}" in
|
||||
/System*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
if test "${prefix}" = "NONE" ; then
|
||||
# See below
|
||||
FRAMEWORKUNIXTOOLSPREFIX="/usr"
|
||||
fi
|
||||
;;
|
||||
|
||||
*/Library/Frameworks)
|
||||
MDIR="`dirname "${enableval}"`"
|
||||
MDIR="`dirname "${MDIR}"`"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="${MDIR}/Applications"
|
||||
/Library*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
|
||||
if test "${prefix}" = "NONE"; then
|
||||
# User hasn't specified the
|
||||
# --prefix option, but wants to install
|
||||
# the framework in a non-default location,
|
||||
# ensure that the compatibility links get
|
||||
# installed relative to that prefix as well
|
||||
# instead of in /usr/local.
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${MDIR}"
|
||||
fi
|
||||
;;
|
||||
*/Library/Frameworks)
|
||||
MDIR="`dirname "${enableval}"`"
|
||||
MDIR="`dirname "${MDIR}"`"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="${MDIR}/Applications"
|
||||
|
||||
*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
if test "${prefix}" = "NONE"; then
|
||||
# User hasn't specified the
|
||||
# --prefix option, but wants to install
|
||||
# the framework in a non-default location,
|
||||
# ensure that the compatibility links get
|
||||
# installed relative to that prefix as well
|
||||
# instead of in /usr/local.
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${MDIR}"
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
esac
|
||||
|
||||
prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX=${prefix}
|
||||
RESSRCDIR=Mac/Resources/framework
|
||||
|
||||
# Add files for Mac specific code to the list of output
|
||||
# files:
|
||||
ac_config_files="$ac_config_files Mac/Makefile"
|
||||
|
||||
ac_config_files="$ac_config_files Mac/PythonLauncher/Makefile"
|
||||
|
||||
ac_config_files="$ac_config_files Mac/Resources/framework/Info.plist"
|
||||
|
||||
ac_config_files="$ac_config_files Mac/Resources/app/Info.plist"
|
||||
|
||||
;;
|
||||
*)
|
||||
as_fn_error $? "Unknown platform for framework build" "$LINENO" 5
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
|
||||
|
||||
# Add files for Mac specific code to the list of output
|
||||
# files:
|
||||
ac_config_files="$ac_config_files Mac/Makefile"
|
||||
|
||||
ac_config_files="$ac_config_files Mac/PythonLauncher/Makefile"
|
||||
|
||||
ac_config_files="$ac_config_files Mac/Resources/framework/Info.plist"
|
||||
|
||||
ac_config_files="$ac_config_files Mac/Resources/app/Info.plist"
|
||||
|
||||
esac
|
||||
|
||||
else $as_nop
|
||||
|
||||
PYTHONFRAMEWORK=
|
||||
PYTHONFRAMEWORKDIR=no-framework
|
||||
PYTHONFRAMEWORKPREFIX=
|
||||
PYTHONFRAMEWORKINSTALLDIR=
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX=
|
||||
RESSRCDIR=
|
||||
FRAMEWORKINSTALLFIRST=
|
||||
FRAMEWORKINSTALLLAST=
|
||||
FRAMEWORKALTINSTALLFIRST=
|
||||
FRAMEWORKALTINSTALLLAST=
|
||||
FRAMEWORKPYTHONW=
|
||||
INSTALLTARGETS="commoninstall bininstall maninstall"
|
||||
if test "x${prefix}" = "xNONE" ; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
else
|
||||
|
@ -4239,107 +4331,39 @@ fi
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
printf "%s\n" "#define _PYTHONFRAMEWORK \"${PYTHONFRAMEWORK}\"" >>confdefs.h
|
||||
|
||||
|
||||
# Set name for machine-dependent library files
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking MACHDEP" >&5
|
||||
printf %s "checking MACHDEP... " >&6; }
|
||||
if test -z "$MACHDEP"
|
||||
then
|
||||
# avoid using uname for cross builds
|
||||
if test "$cross_compiling" = yes; then
|
||||
# ac_sys_system and ac_sys_release are used for setting
|
||||
# a lot of different things including 'define_xopen_source'
|
||||
# in the case statement below.
|
||||
case "$host" in
|
||||
*-*-linux-android*)
|
||||
ac_sys_system=Linux-android
|
||||
;;
|
||||
*-*-linux*)
|
||||
ac_sys_system=Linux
|
||||
;;
|
||||
*-*-cygwin*)
|
||||
ac_sys_system=Cygwin
|
||||
;;
|
||||
*-*-vxworks*)
|
||||
ac_sys_system=VxWorks
|
||||
;;
|
||||
*-*-emscripten)
|
||||
ac_sys_system=Emscripten
|
||||
;;
|
||||
*-*-wasi)
|
||||
ac_sys_system=WASI
|
||||
;;
|
||||
*)
|
||||
# for now, limit cross builds to known configurations
|
||||
MACHDEP="unknown"
|
||||
as_fn_error $? "cross build not supported for $host" "$LINENO" 5
|
||||
esac
|
||||
ac_sys_release=
|
||||
else
|
||||
ac_sys_system=`uname -s`
|
||||
if test "$ac_sys_system" = "AIX" \
|
||||
-o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
|
||||
ac_sys_release=`uname -v`
|
||||
else
|
||||
ac_sys_release=`uname -r`
|
||||
fi
|
||||
fi
|
||||
ac_md_system=`echo $ac_sys_system |
|
||||
tr -d '/ ' | tr '[A-Z]' '[a-z]'`
|
||||
ac_md_release=`echo $ac_sys_release |
|
||||
tr -d '/ ' | sed 's/^[A-Z]\.//' | sed 's/\..*//'`
|
||||
MACHDEP="$ac_md_system$ac_md_release"
|
||||
|
||||
case $MACHDEP in
|
||||
aix*) MACHDEP="aix";;
|
||||
linux*) MACHDEP="linux";;
|
||||
cygwin*) MACHDEP="cygwin";;
|
||||
darwin*) MACHDEP="darwin";;
|
||||
'') MACHDEP="unknown";;
|
||||
esac
|
||||
|
||||
if test "$ac_sys_system" = "SunOS"; then
|
||||
# For Solaris, there isn't an OS version specific macro defined
|
||||
# in most compilers, so we define one here.
|
||||
SUNOS_VERSION=`echo $ac_sys_release | sed -e 's!\.\(0-9\)$!.0\1!g' | tr -d '.'`
|
||||
|
||||
printf "%s\n" "#define Py_SUNOS_VERSION $SUNOS_VERSION" >>confdefs.h
|
||||
|
||||
fi
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$MACHDEP\"" >&5
|
||||
printf "%s\n" "\"$MACHDEP\"" >&6; }
|
||||
|
||||
|
||||
if test "$cross_compiling" = yes; then
|
||||
case "$host" in
|
||||
*-*-linux*)
|
||||
case "$host_cpu" in
|
||||
arm*)
|
||||
_host_cpu=arm
|
||||
_host_ident=arm
|
||||
;;
|
||||
*)
|
||||
_host_cpu=$host_cpu
|
||||
_host_ident=$host_cpu
|
||||
esac
|
||||
;;
|
||||
*-*-cygwin*)
|
||||
_host_cpu=
|
||||
_host_ident=
|
||||
;;
|
||||
*-*-vxworks*)
|
||||
_host_cpu=$host_cpu
|
||||
_host_ident=$host_cpu
|
||||
;;
|
||||
wasm32-*-* | wasm64-*-*)
|
||||
_host_cpu=$host_cpu
|
||||
_host_ident=$host_cpu
|
||||
;;
|
||||
*)
|
||||
# for now, limit cross builds to known configurations
|
||||
MACHDEP="unknown"
|
||||
as_fn_error $? "cross build not supported for $host" "$LINENO" 5
|
||||
esac
|
||||
_PYTHON_HOST_PLATFORM="$MACHDEP${_host_cpu:+-$_host_cpu}"
|
||||
_PYTHON_HOST_PLATFORM="$MACHDEP${_host_ident:+-$_host_ident}"
|
||||
fi
|
||||
|
||||
# Some systems cannot stand _XOPEN_SOURCE being defined at all; they
|
||||
|
@ -6769,8 +6793,6 @@ case $ac_sys_system in #(
|
|||
;;
|
||||
esac
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MULTIARCH" >&5
|
||||
printf "%s\n" "$MULTIARCH" >&6; }
|
||||
|
||||
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
|
||||
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
|
||||
|
@ -6780,6 +6802,14 @@ elif test x$PLATFORM_TRIPLET != x && test x$MULTIARCH = x; then
|
|||
MULTIARCH=$PLATFORM_TRIPLET
|
||||
fi
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MULTIARCH" >&5
|
||||
printf "%s\n" "$MULTIARCH" >&6; }
|
||||
|
||||
case $ac_sys_system in #(
|
||||
*) :
|
||||
SOABI_PLATFORM=$PLATFORM_TRIPLET
|
||||
;;
|
||||
esac
|
||||
|
||||
if test x$MULTIARCH != x; then
|
||||
MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\""
|
||||
|
@ -7271,7 +7301,7 @@ fi
|
|||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDLIBRARY" >&5
|
||||
printf %s "checking LDLIBRARY... " >&6; }
|
||||
|
||||
# MacOSX framework builds need more magic. LDLIBRARY is the dynamic
|
||||
# Apple framework builds need more magic. LDLIBRARY is the dynamic
|
||||
# library that we build, but we do not want to link against it (we
|
||||
# will find it with a -framework option). For this reason there is an
|
||||
# extra variable BLDLIBRARY against which Python and the extension
|
||||
|
@ -7279,9 +7309,14 @@ printf %s "checking LDLIBRARY... " >&6; }
|
|||
# LDLIBRARY, but empty for MacOSX framework builds.
|
||||
if test "$enable_framework"
|
||||
then
|
||||
LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
|
||||
RUNSHARED=DYLD_FRAMEWORK_PATH=`pwd`${DYLD_FRAMEWORK_PATH:+:${DYLD_FRAMEWORK_PATH}}
|
||||
case $ac_sys_system in
|
||||
Darwin)
|
||||
LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)';;
|
||||
*)
|
||||
as_fn_error $? "Unknown platform for framework build" "$LINENO" 5;;
|
||||
esac
|
||||
BLDLIBRARY=''
|
||||
RUNSHARED=DYLD_FRAMEWORK_PATH=`pwd`${DYLD_FRAMEWORK_PATH:+:${DYLD_FRAMEWORK_PATH}}
|
||||
else
|
||||
BLDLIBRARY='$(LDLIBRARY)'
|
||||
fi
|
||||
|
@ -7294,64 +7329,64 @@ printf "%s\n" "#define Py_ENABLE_SHARED 1" >>confdefs.h
|
|||
|
||||
case $ac_sys_system in
|
||||
CYGWIN*)
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
DLLLIBRARY='libpython$(LDVERSION).dll'
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
DLLLIBRARY='libpython$(LDVERSION).dll'
|
||||
;;
|
||||
SunOS*)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|VxWorks*)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
hp*|HP*)
|
||||
case `uname -m` in
|
||||
ia64)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
;;
|
||||
*)
|
||||
LDLIBRARY='libpython$(LDVERSION).sl'
|
||||
;;
|
||||
esac
|
||||
BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=SHLIB_PATH=`pwd`${SHLIB_PATH:+:${SHLIB_PATH}}
|
||||
;;
|
||||
case `uname -m` in
|
||||
ia64)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
;;
|
||||
*)
|
||||
LDLIBRARY='libpython$(LDVERSION).sl'
|
||||
;;
|
||||
esac
|
||||
BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=SHLIB_PATH=`pwd`${SHLIB_PATH:+:${SHLIB_PATH}}
|
||||
;;
|
||||
Darwin*)
|
||||
LDLIBRARY='libpython$(LDVERSION).dylib'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=DYLD_LIBRARY_PATH=`pwd`${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).dylib'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=DYLD_LIBRARY_PATH=`pwd`${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}
|
||||
;;
|
||||
AIX*)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
RUNSHARED=LIBPATH=`pwd`${LIBPATH:+:${LIBPATH}}
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
RUNSHARED=LIBPATH=`pwd`${LIBPATH:+:${LIBPATH}}
|
||||
;;
|
||||
|
||||
esac
|
||||
else # shared is disabled
|
||||
PY_ENABLE_SHARED=0
|
||||
case $ac_sys_system in
|
||||
CYGWIN*)
|
||||
BLDLIBRARY='$(LIBRARY)'
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
;;
|
||||
BLDLIBRARY='$(LIBRARY)'
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test "$cross_compiling" = yes; then
|
||||
RUNSHARED=
|
||||
RUNSHARED=
|
||||
fi
|
||||
|
||||
|
||||
|
@ -23898,7 +23933,7 @@ printf %s "checking ABIFLAGS... " >&6; }
|
|||
printf "%s\n" "$ABIFLAGS" >&6; }
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5
|
||||
printf %s "checking SOABI... " >&6; }
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${SOABI_PLATFORM:+-$SOABI_PLATFORM}
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
|
||||
printf "%s\n" "$SOABI" >&6; }
|
||||
|
||||
|
@ -23907,7 +23942,7 @@ printf "%s\n" "$SOABI" >&6; }
|
|||
if test "$Py_DEBUG" = 'true'; then
|
||||
# Similar to SOABI but remove "d" flag from ABIFLAGS
|
||||
|
||||
ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||
ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${SOABI_PLATFORM:+-$SOABI_PLATFORM}
|
||||
|
||||
printf "%s\n" "#define ALT_SOABI \"${ALT_SOABI}\"" >>confdefs.h
|
||||
|
||||
|
|
383
configure.ac
383
configure.ac
|
@ -307,6 +307,74 @@ if test "$with_pkg_config" = yes -a -z "$PKG_CONFIG"; then
|
|||
AC_MSG_ERROR([pkg-config is required])]
|
||||
fi
|
||||
|
||||
# Set name for machine-dependent library files
|
||||
AC_ARG_VAR([MACHDEP], [name for machine-dependent library files])
|
||||
AC_MSG_CHECKING([MACHDEP])
|
||||
if test -z "$MACHDEP"
|
||||
then
|
||||
# avoid using uname for cross builds
|
||||
if test "$cross_compiling" = yes; then
|
||||
# ac_sys_system and ac_sys_release are used for setting
|
||||
# a lot of different things including 'define_xopen_source'
|
||||
# in the case statement below.
|
||||
case "$host" in
|
||||
*-*-linux-android*)
|
||||
ac_sys_system=Linux-android
|
||||
;;
|
||||
*-*-linux*)
|
||||
ac_sys_system=Linux
|
||||
;;
|
||||
*-*-cygwin*)
|
||||
ac_sys_system=Cygwin
|
||||
;;
|
||||
*-*-vxworks*)
|
||||
ac_sys_system=VxWorks
|
||||
;;
|
||||
*-*-emscripten)
|
||||
ac_sys_system=Emscripten
|
||||
;;
|
||||
*-*-wasi)
|
||||
ac_sys_system=WASI
|
||||
;;
|
||||
*)
|
||||
# for now, limit cross builds to known configurations
|
||||
MACHDEP="unknown"
|
||||
AC_MSG_ERROR([cross build not supported for $host])
|
||||
esac
|
||||
ac_sys_release=
|
||||
else
|
||||
ac_sys_system=`uname -s`
|
||||
if test "$ac_sys_system" = "AIX" \
|
||||
-o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
|
||||
ac_sys_release=`uname -v`
|
||||
else
|
||||
ac_sys_release=`uname -r`
|
||||
fi
|
||||
fi
|
||||
ac_md_system=`echo $ac_sys_system |
|
||||
tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
|
||||
ac_md_release=`echo $ac_sys_release |
|
||||
tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
|
||||
MACHDEP="$ac_md_system$ac_md_release"
|
||||
|
||||
case $MACHDEP in
|
||||
aix*) MACHDEP="aix";;
|
||||
linux*) MACHDEP="linux";;
|
||||
cygwin*) MACHDEP="cygwin";;
|
||||
darwin*) MACHDEP="darwin";;
|
||||
'') MACHDEP="unknown";;
|
||||
esac
|
||||
|
||||
if test "$ac_sys_system" = "SunOS"; then
|
||||
# For Solaris, there isn't an OS version specific macro defined
|
||||
# in most compilers, so we define one here.
|
||||
SUNOS_VERSION=`echo $ac_sys_release | sed -e 's!\.\([0-9]\)$!.0\1!g' | tr -d '.'`
|
||||
AC_DEFINE_UNQUOTED([Py_SUNOS_VERSION], [$SUNOS_VERSION],
|
||||
[The version of SunOS/Solaris as reported by `uname -r' without the dot.])
|
||||
fi
|
||||
fi
|
||||
AC_MSG_RESULT(["$MACHDEP"])
|
||||
|
||||
AC_MSG_CHECKING([for --enable-universalsdk])
|
||||
AC_ARG_ENABLE([universalsdk],
|
||||
AS_HELP_STRING([--enable-universalsdk@<:@=SDKDIR@:>@],
|
||||
|
@ -424,11 +492,15 @@ AC_ARG_ENABLE([framework],
|
|||
PYTHONFRAMEWORKDIR=no-framework
|
||||
PYTHONFRAMEWORKPREFIX=
|
||||
PYTHONFRAMEWORKINSTALLDIR=
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX=
|
||||
RESSRCDIR=
|
||||
FRAMEWORKINSTALLFIRST=
|
||||
FRAMEWORKINSTALLLAST=
|
||||
FRAMEWORKALTINSTALLFIRST=
|
||||
FRAMEWORKALTINSTALLLAST=
|
||||
FRAMEWORKPYTHONW=
|
||||
INSTALLTARGETS="commoninstall bininstall maninstall"
|
||||
|
||||
if test "x${prefix}" = "xNONE"; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
else
|
||||
|
@ -441,71 +513,85 @@ AC_ARG_ENABLE([framework],
|
|||
PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
|
||||
FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
|
||||
FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure "
|
||||
FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
|
||||
FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
|
||||
FRAMEWORKPYTHONW="frameworkpythonw"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
|
||||
if test "x${prefix}" = "xNONE" ; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
case $ac_sys_system in #(
|
||||
Darwin) :
|
||||
FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
|
||||
FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
|
||||
FRAMEWORKPYTHONW="frameworkpythonw"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
INSTALLTARGETS="commoninstall bininstall maninstall"
|
||||
|
||||
else
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
|
||||
fi
|
||||
if test "x${prefix}" = "xNONE" ; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
|
||||
case "${enableval}" in
|
||||
/System*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
if test "${prefix}" = "NONE" ; then
|
||||
# See below
|
||||
FRAMEWORKUNIXTOOLSPREFIX="/usr"
|
||||
fi
|
||||
;;
|
||||
else
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
|
||||
fi
|
||||
|
||||
/Library*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
case "${enableval}" in
|
||||
/System*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
if test "${prefix}" = "NONE" ; then
|
||||
# See below
|
||||
FRAMEWORKUNIXTOOLSPREFIX="/usr"
|
||||
fi
|
||||
;;
|
||||
|
||||
*/Library/Frameworks)
|
||||
MDIR="`dirname "${enableval}"`"
|
||||
MDIR="`dirname "${MDIR}"`"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="${MDIR}/Applications"
|
||||
/Library*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
|
||||
if test "${prefix}" = "NONE"; then
|
||||
# User hasn't specified the
|
||||
# --prefix option, but wants to install
|
||||
# the framework in a non-default location,
|
||||
# ensure that the compatibility links get
|
||||
# installed relative to that prefix as well
|
||||
# instead of in /usr/local.
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${MDIR}"
|
||||
fi
|
||||
;;
|
||||
*/Library/Frameworks)
|
||||
MDIR="`dirname "${enableval}"`"
|
||||
MDIR="`dirname "${MDIR}"`"
|
||||
FRAMEWORKINSTALLAPPSPREFIX="${MDIR}/Applications"
|
||||
|
||||
*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
if test "${prefix}" = "NONE"; then
|
||||
# User hasn't specified the
|
||||
# --prefix option, but wants to install
|
||||
# the framework in a non-default location,
|
||||
# ensure that the compatibility links get
|
||||
# installed relative to that prefix as well
|
||||
# instead of in /usr/local.
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${MDIR}"
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
FRAMEWORKINSTALLAPPSPREFIX="/Applications"
|
||||
;;
|
||||
esac
|
||||
|
||||
prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX=${prefix}
|
||||
RESSRCDIR=Mac/Resources/framework
|
||||
|
||||
# Add files for Mac specific code to the list of output
|
||||
# files:
|
||||
AC_CONFIG_FILES([Mac/Makefile])
|
||||
AC_CONFIG_FILES([Mac/PythonLauncher/Makefile])
|
||||
AC_CONFIG_FILES([Mac/Resources/framework/Info.plist])
|
||||
AC_CONFIG_FILES([Mac/Resources/app/Info.plist])
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Unknown platform for framework build])
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
|
||||
|
||||
# Add files for Mac specific code to the list of output
|
||||
# files:
|
||||
AC_CONFIG_FILES([Mac/Makefile])
|
||||
AC_CONFIG_FILES([Mac/PythonLauncher/Makefile])
|
||||
AC_CONFIG_FILES([Mac/Resources/framework/Info.plist])
|
||||
AC_CONFIG_FILES([Mac/Resources/app/Info.plist])
|
||||
esac
|
||||
],[
|
||||
PYTHONFRAMEWORK=
|
||||
PYTHONFRAMEWORKDIR=no-framework
|
||||
PYTHONFRAMEWORKPREFIX=
|
||||
PYTHONFRAMEWORKINSTALLDIR=
|
||||
PYTHONFRAMEWORKINSTALLNAMEPREFIX=
|
||||
RESSRCDIR=
|
||||
FRAMEWORKINSTALLFIRST=
|
||||
FRAMEWORKINSTALLLAST=
|
||||
FRAMEWORKALTINSTALLFIRST=
|
||||
FRAMEWORKALTINSTALLLAST=
|
||||
FRAMEWORKPYTHONW=
|
||||
INSTALLTARGETS="commoninstall bininstall maninstall"
|
||||
if test "x${prefix}" = "xNONE" ; then
|
||||
FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
|
||||
else
|
||||
|
@ -519,6 +605,8 @@ AC_SUBST([PYTHONFRAMEWORKIDENTIFIER])
|
|||
AC_SUBST([PYTHONFRAMEWORKDIR])
|
||||
AC_SUBST([PYTHONFRAMEWORKPREFIX])
|
||||
AC_SUBST([PYTHONFRAMEWORKINSTALLDIR])
|
||||
AC_SUBST([PYTHONFRAMEWORKINSTALLNAMEPREFIX])
|
||||
AC_SUBST([RESSRCDIR])
|
||||
AC_SUBST([FRAMEWORKINSTALLFIRST])
|
||||
AC_SUBST([FRAMEWORKINSTALLLAST])
|
||||
AC_SUBST([FRAMEWORKALTINSTALLFIRST])
|
||||
|
@ -526,105 +614,38 @@ AC_SUBST([FRAMEWORKALTINSTALLLAST])
|
|||
AC_SUBST([FRAMEWORKPYTHONW])
|
||||
AC_SUBST([FRAMEWORKUNIXTOOLSPREFIX])
|
||||
AC_SUBST([FRAMEWORKINSTALLAPPSPREFIX])
|
||||
AC_SUBST([INSTALLTARGETS])
|
||||
|
||||
AC_DEFINE_UNQUOTED([_PYTHONFRAMEWORK], ["${PYTHONFRAMEWORK}"],
|
||||
[framework name])
|
||||
|
||||
# Set name for machine-dependent library files
|
||||
AC_ARG_VAR([MACHDEP], [name for machine-dependent library files])
|
||||
AC_MSG_CHECKING([MACHDEP])
|
||||
if test -z "$MACHDEP"
|
||||
then
|
||||
# avoid using uname for cross builds
|
||||
if test "$cross_compiling" = yes; then
|
||||
# ac_sys_system and ac_sys_release are used for setting
|
||||
# a lot of different things including 'define_xopen_source'
|
||||
# in the case statement below.
|
||||
case "$host" in
|
||||
*-*-linux-android*)
|
||||
ac_sys_system=Linux-android
|
||||
;;
|
||||
*-*-linux*)
|
||||
ac_sys_system=Linux
|
||||
;;
|
||||
*-*-cygwin*)
|
||||
ac_sys_system=Cygwin
|
||||
;;
|
||||
*-*-vxworks*)
|
||||
ac_sys_system=VxWorks
|
||||
;;
|
||||
*-*-emscripten)
|
||||
ac_sys_system=Emscripten
|
||||
;;
|
||||
*-*-wasi)
|
||||
ac_sys_system=WASI
|
||||
;;
|
||||
*)
|
||||
# for now, limit cross builds to known configurations
|
||||
MACHDEP="unknown"
|
||||
AC_MSG_ERROR([cross build not supported for $host])
|
||||
esac
|
||||
ac_sys_release=
|
||||
else
|
||||
ac_sys_system=`uname -s`
|
||||
if test "$ac_sys_system" = "AIX" \
|
||||
-o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
|
||||
ac_sys_release=`uname -v`
|
||||
else
|
||||
ac_sys_release=`uname -r`
|
||||
fi
|
||||
fi
|
||||
ac_md_system=`echo $ac_sys_system |
|
||||
tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
|
||||
ac_md_release=`echo $ac_sys_release |
|
||||
tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
|
||||
MACHDEP="$ac_md_system$ac_md_release"
|
||||
|
||||
case $MACHDEP in
|
||||
aix*) MACHDEP="aix";;
|
||||
linux*) MACHDEP="linux";;
|
||||
cygwin*) MACHDEP="cygwin";;
|
||||
darwin*) MACHDEP="darwin";;
|
||||
'') MACHDEP="unknown";;
|
||||
esac
|
||||
|
||||
if test "$ac_sys_system" = "SunOS"; then
|
||||
# For Solaris, there isn't an OS version specific macro defined
|
||||
# in most compilers, so we define one here.
|
||||
SUNOS_VERSION=`echo $ac_sys_release | sed -e 's!\.\([0-9]\)$!.0\1!g' | tr -d '.'`
|
||||
AC_DEFINE_UNQUOTED([Py_SUNOS_VERSION], [$SUNOS_VERSION],
|
||||
[The version of SunOS/Solaris as reported by `uname -r' without the dot.])
|
||||
fi
|
||||
fi
|
||||
AC_MSG_RESULT(["$MACHDEP"])
|
||||
|
||||
AC_SUBST([_PYTHON_HOST_PLATFORM])
|
||||
if test "$cross_compiling" = yes; then
|
||||
case "$host" in
|
||||
*-*-linux*)
|
||||
case "$host_cpu" in
|
||||
arm*)
|
||||
_host_cpu=arm
|
||||
_host_ident=arm
|
||||
;;
|
||||
*)
|
||||
_host_cpu=$host_cpu
|
||||
_host_ident=$host_cpu
|
||||
esac
|
||||
;;
|
||||
*-*-cygwin*)
|
||||
_host_cpu=
|
||||
_host_ident=
|
||||
;;
|
||||
*-*-vxworks*)
|
||||
_host_cpu=$host_cpu
|
||||
_host_ident=$host_cpu
|
||||
;;
|
||||
wasm32-*-* | wasm64-*-*)
|
||||
_host_cpu=$host_cpu
|
||||
_host_ident=$host_cpu
|
||||
;;
|
||||
*)
|
||||
# for now, limit cross builds to known configurations
|
||||
MACHDEP="unknown"
|
||||
AC_MSG_ERROR([cross build not supported for $host])
|
||||
esac
|
||||
_PYTHON_HOST_PLATFORM="$MACHDEP${_host_cpu:+-$_host_cpu}"
|
||||
_PYTHON_HOST_PLATFORM="$MACHDEP${_host_ident:+-$_host_ident}"
|
||||
fi
|
||||
|
||||
# Some systems cannot stand _XOPEN_SOURCE being defined at all; they
|
||||
|
@ -935,6 +956,14 @@ else
|
|||
fi
|
||||
rm -f conftest.out
|
||||
|
||||
dnl On some platforms, using a true "triplet" for MULTIARCH would be redundant.
|
||||
dnl For example, `arm64-apple-darwin` is redundant, because there isn't a
|
||||
dnl non-Apple Darwin. Including the CPU architecture can also be potentially
|
||||
dnl redundant - on macOS, for example, it's possible to do a single compile
|
||||
dnl pass that includes multiple architectures, so it would be misleading for
|
||||
dnl MULTIARCH (and thus the sysconfigdata module name) to include a single CPU
|
||||
dnl architecture. PLATFORM_TRIPLET will be a pair or single value for these
|
||||
dnl platforms.
|
||||
AC_MSG_CHECKING([for multiarch])
|
||||
AS_CASE([$ac_sys_system],
|
||||
[Darwin*], [MULTIARCH=""],
|
||||
|
@ -942,7 +971,6 @@ AS_CASE([$ac_sys_system],
|
|||
[MULTIARCH=$($CC --print-multiarch 2>/dev/null)]
|
||||
)
|
||||
AC_SUBST([MULTIARCH])
|
||||
AC_MSG_RESULT([$MULTIARCH])
|
||||
|
||||
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
|
||||
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
|
||||
|
@ -952,6 +980,16 @@ elif test x$PLATFORM_TRIPLET != x && test x$MULTIARCH = x; then
|
|||
MULTIARCH=$PLATFORM_TRIPLET
|
||||
fi
|
||||
AC_SUBST([PLATFORM_TRIPLET])
|
||||
AC_MSG_RESULT([$MULTIARCH])
|
||||
|
||||
dnl Even if we *do* include the CPU architecture in the MULTIARCH value, some
|
||||
dnl platforms don't need the CPU architecture in the SOABI tag. These platforms
|
||||
dnl will have multiple sysconfig modules (one for each CPU architecture), but
|
||||
dnl use a single "fat" binary at runtime. SOABI_PLATFORM is the component of
|
||||
dnl the PLATFORM_TRIPLET that will be used in binary module extensions.
|
||||
AS_CASE([$ac_sys_system],
|
||||
[SOABI_PLATFORM=$PLATFORM_TRIPLET]
|
||||
)
|
||||
|
||||
if test x$MULTIARCH != x; then
|
||||
MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\""
|
||||
|
@ -1294,7 +1332,7 @@ fi
|
|||
|
||||
AC_MSG_CHECKING([LDLIBRARY])
|
||||
|
||||
# MacOSX framework builds need more magic. LDLIBRARY is the dynamic
|
||||
# Apple framework builds need more magic. LDLIBRARY is the dynamic
|
||||
# library that we build, but we do not want to link against it (we
|
||||
# will find it with a -framework option). For this reason there is an
|
||||
# extra variable BLDLIBRARY against which Python and the extension
|
||||
|
@ -1302,9 +1340,14 @@ AC_MSG_CHECKING([LDLIBRARY])
|
|||
# LDLIBRARY, but empty for MacOSX framework builds.
|
||||
if test "$enable_framework"
|
||||
then
|
||||
LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
|
||||
RUNSHARED=DYLD_FRAMEWORK_PATH=`pwd`${DYLD_FRAMEWORK_PATH:+:${DYLD_FRAMEWORK_PATH}}
|
||||
case $ac_sys_system in
|
||||
Darwin)
|
||||
LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)';;
|
||||
*)
|
||||
AC_MSG_ERROR([Unknown platform for framework build]);;
|
||||
esac
|
||||
BLDLIBRARY=''
|
||||
RUNSHARED=DYLD_FRAMEWORK_PATH=`pwd`${DYLD_FRAMEWORK_PATH:+:${DYLD_FRAMEWORK_PATH}}
|
||||
else
|
||||
BLDLIBRARY='$(LDLIBRARY)'
|
||||
fi
|
||||
|
@ -1316,64 +1359,64 @@ if test $enable_shared = "yes"; then
|
|||
[Defined if Python is built as a shared library.])
|
||||
case $ac_sys_system in
|
||||
CYGWIN*)
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
DLLLIBRARY='libpython$(LDVERSION).dll'
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
DLLLIBRARY='libpython$(LDVERSION).dll'
|
||||
;;
|
||||
SunOS*)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|VxWorks*)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
INSTSONAME="$LDLIBRARY".$SOVERSION
|
||||
if test "$with_pydebug" != yes
|
||||
then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
hp*|HP*)
|
||||
case `uname -m` in
|
||||
ia64)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
;;
|
||||
*)
|
||||
LDLIBRARY='libpython$(LDVERSION).sl'
|
||||
;;
|
||||
esac
|
||||
BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=SHLIB_PATH=`pwd`${SHLIB_PATH:+:${SHLIB_PATH}}
|
||||
;;
|
||||
case `uname -m` in
|
||||
ia64)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
;;
|
||||
*)
|
||||
LDLIBRARY='libpython$(LDVERSION).sl'
|
||||
;;
|
||||
esac
|
||||
BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=SHLIB_PATH=`pwd`${SHLIB_PATH:+:${SHLIB_PATH}}
|
||||
;;
|
||||
Darwin*)
|
||||
LDLIBRARY='libpython$(LDVERSION).dylib'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=DYLD_LIBRARY_PATH=`pwd`${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).dylib'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=DYLD_LIBRARY_PATH=`pwd`${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}
|
||||
;;
|
||||
AIX*)
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
RUNSHARED=LIBPATH=`pwd`${LIBPATH:+:${LIBPATH}}
|
||||
;;
|
||||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
RUNSHARED=LIBPATH=`pwd`${LIBPATH:+:${LIBPATH}}
|
||||
;;
|
||||
|
||||
esac
|
||||
else # shared is disabled
|
||||
PY_ENABLE_SHARED=0
|
||||
case $ac_sys_system in
|
||||
CYGWIN*)
|
||||
BLDLIBRARY='$(LIBRARY)'
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
;;
|
||||
BLDLIBRARY='$(LIBRARY)'
|
||||
LDLIBRARY='libpython$(LDVERSION).dll.a'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test "$cross_compiling" = yes; then
|
||||
RUNSHARED=
|
||||
RUNSHARED=
|
||||
fi
|
||||
|
||||
AC_ARG_VAR([HOSTRUNNER], [Program to run CPython for the host platform])
|
||||
|
@ -5824,7 +5867,7 @@ AC_SUBST([SOABI])
|
|||
AC_MSG_CHECKING([ABIFLAGS])
|
||||
AC_MSG_RESULT([$ABIFLAGS])
|
||||
AC_MSG_CHECKING([SOABI])
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||
SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${SOABI_PLATFORM:+-$SOABI_PLATFORM}
|
||||
AC_MSG_RESULT([$SOABI])
|
||||
|
||||
# Release build, debug build (Py_DEBUG), and trace refs build (Py_TRACE_REFS)
|
||||
|
@ -5832,7 +5875,7 @@ AC_MSG_RESULT([$SOABI])
|
|||
if test "$Py_DEBUG" = 'true'; then
|
||||
# Similar to SOABI but remove "d" flag from ABIFLAGS
|
||||
AC_SUBST([ALT_SOABI])
|
||||
ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
|
||||
ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${SOABI_PLATFORM:+-$SOABI_PLATFORM}
|
||||
AC_DEFINE_UNQUOTED([ALT_SOABI], ["${ALT_SOABI}"],
|
||||
[Alternative SOABI used in debug build to load C extensions built in release mode])
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue