Skip to content

Commit ca896cf

Browse files
committed
sort out build issues
1 parent a3990db commit ca896cf

File tree

2 files changed

+74
-14
lines changed

2 files changed

+74
-14
lines changed

Makefile

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -290,12 +290,14 @@ PYTHON_FRAMEWORK-$(target)=$$(PYTHON_INSTALL-$(target))/Python.framework
290290
ifneq ($$(BASE-$(target)),macabi)
291291
PYTHON_LIB-$(target)=$$(PYTHON_FRAMEWORK-$(target))/Python
292292
PYTHON_BIN-$(target)=$$(PYTHON_INSTALL-$(target))/bin
293+
PYTHON_INCLUDE-$(target)=$$(PYTHON_FRAMEWORK-$(target))/Headers
294+
PYTHON_STDLIB-$(target)=$$(PYTHON_INSTALL-$(target))/lib/python$(PYTHON_VER)
293295
else
294296
PYTHON_LIB-$(target)=$$(PYTHON_FRAMEWORK-$(target))/Versions/$(PYTHON_VER)/Python
295-
PYTHON_BIN-$(target)=$$(PYTHON_INSTALL-$(target))/Python.framework/Versions/$(PYTHON_VER)/bin
297+
PYTHON_BIN-$(target)=$$(PYTHON_FRAMEWORK-$(target))/Versions/$(PYTHON_VER)/bin
298+
PYTHON_INCLUDE-$(target)=$$(PYTHON_FRAMEWORK-$(target))/Versions/$(PYTHON_VER)/Headers
299+
PYTHON_STDLIB-$(target)=$$(PYTHON_FRAMEWORK-$(target))/Versions/$(PYTHON_VER)/lib/python$(PYTHON_VER)
296300
endif
297-
PYTHON_INCLUDE-$(target)=$$(PYTHON_FRAMEWORK-$(target))/Headers
298-
PYTHON_STDLIB-$(target)=$$(PYTHON_INSTALL-$(target))/lib/python$(PYTHON_VER)
299301
PYTHON_PLATFORM_CONFIG-$(target)=$$(PYTHON_INSTALL-$(target))/platform-config/$$(ARCH-$(target))-$$(SDK-$(target))
300302
PYTHON_PLATFORM_SITECUSTOMIZE-$(target)=$$(PYTHON_PLATFORM_CONFIG-$(target))/sitecustomize.py
301303

@@ -484,22 +486,43 @@ else
484486
PYTHON_INSTALL-$(sdk)=$(PROJECT_DIR)/install/$(os)/$(sdk)/python-$(PYTHON_VERSION)
485487
PYTHON_MODULEMAP-$(sdk)=$$(PYTHON_INCLUDE-$(sdk))/module.modulemap
486488
PYTHON_FRAMEWORK-$(sdk)=$$(PYTHON_INSTALL-$(sdk))/Python.framework
489+
ifneq ($(sdk),macabi)
487490
PYTHON_LIB-$(sdk)=$$(PYTHON_FRAMEWORK-$(sdk))/Python
488491
PYTHON_BIN-$(sdk)=$$(PYTHON_INSTALL-$(sdk))/bin
489492
PYTHON_INCLUDE-$(sdk)=$$(PYTHON_FRAMEWORK-$(sdk))/Headers
490493
PYTHON_STDLIB-$(sdk)=$$(PYTHON_INSTALL-$(sdk))/lib/python$(PYTHON_VER)
494+
else
495+
PYTHON_LIB-$(sdk)=$$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/Python
496+
PYTHON_BIN-$(sdk)=$$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/bin
497+
PYTHON_INCLUDE-$(sdk)=$$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/Headers
498+
PYTHON_STDLIB-$(sdk)=$$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/lib/python$(PYTHON_VER)
499+
endif
491500
PYTHON_PLATFORM_CONFIG-$(sdk)=$$(PYTHON_INSTALL-$(sdk))/platform-config
492501

493502
$$(PYTHON_LIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(PYTHON_LIB-$$(target)))
494503
@echo ">>> Build Python fat library for the $(sdk) SDK"
495504
mkdir -p $$(dir $$(PYTHON_LIB-$(sdk)))
505+
ifeq ($(sdk),macabi)
506+
ln -si $(PYTHON_VER) $$(PYTHON_FRAMEWORK-$(sdk))/Versions/Current
507+
ln -si Versions/Current/Headers $$(PYTHON_FRAMEWORK-$(sdk))/Headers
508+
ln -si Versions/Current/Resources $$(PYTHON_FRAMEWORK-$(sdk))/Resources
509+
ln -si Versions/Current/Python $$(PYTHON_FRAMEWORK-$(sdk))/Python
510+
endif
496511
lipo -create -output $$@ $$^ \
497512
2>&1 | tee -a install/$(os)/$(sdk)/python-$(PYTHON_VERSION).lipo.log
498513

514+
ifneq ($(sdk),macabi)
499515
$$(PYTHON_FRAMEWORK-$(sdk))/Info.plist: $$(PYTHON_LIB-$(sdk))
516+
else
517+
$$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/Resources/Info.plist: $$(PYTHON_LIB-$(sdk))
518+
endif
500519
@echo ">>> Install Info.plist for the $(sdk) SDK"
501520
# Copy Info.plist as-is from the first target in the $(sdk) SDK
521+
ifneq ($(sdk),macabi)
502522
cp -r $$(PYTHON_FRAMEWORK-$$(firstword $$(SDK_TARGETS-$(sdk))))/Info.plist $$(PYTHON_FRAMEWORK-$(sdk))
523+
else
524+
cp -r $$(PYTHON_FRAMEWORK-$$(firstword $$(SDK_TARGETS-$(sdk))))/Versions/$(PYTHON_VER)/Resources/Info.plist $$(PYTHON_FRAMEWORK-$(sdk))
525+
endif
503526

504527
$$(PYTHON_INCLUDE-$(sdk))/pyconfig.h: $$(PYTHON_LIB-$(sdk))
505528
@echo ">>> Build Python fat headers for the $(sdk) SDK"
@@ -523,11 +546,19 @@ $$(PYTHON_INCLUDE-$(sdk))/pyconfig.h: $$(PYTHON_LIB-$(sdk))
523546
echo "\n}" >> $$(PYTHON_MODULEMAP-$(sdk))
524547

525548
# Link the PYTHONHOME version of the headers
549+
ifneq ($(sdk),macabi)
526550
mkdir -p $$(PYTHON_INSTALL-$(sdk))/include
527551
ln -si ../Python.framework/Headers $$(PYTHON_INSTALL-$(sdk))/include/python$(PYTHON_VER)
552+
else
553+
mkdir -p $$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/include
554+
ln -si ../Headers $$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/include/python$(PYTHON_VER)
555+
endif
528556

529557
ifeq ($(os), visionOS)
530558
echo "Skipping arch-specific header copying for visionOS"
559+
560+
# Add the headers from each target -- there's should only be one target, so we copy it to the same name.
561+
$$(foreach target,$$(SDK_TARGETS-$(sdk)),cp $$(PYTHON_INCLUDE-$$(target))/pyconfig.h $$(PYTHON_INCLUDE-$(sdk))/pyconfig.h; )
531562
else
532563
# Add the individual headers from each target in an arch-specific name
533564
$$(foreach target,$$(SDK_TARGETS-$(sdk)),cp $$(PYTHON_INCLUDE-$$(target))/pyconfig.h $$(PYTHON_INCLUDE-$(sdk))/pyconfig-$$(ARCH-$$(target)).h; )
@@ -536,8 +567,11 @@ else
536567
cp $$(RESCDIR-$$(firstword $$(SDK_TARGETS-$(sdk))))/pyconfig.h $$(PYTHON_INCLUDE-$(sdk))/pyconfig.h
537568
endif
538569

539-
570+
ifneq ($(sdk),macabi)
540571
$$(PYTHON_STDLIB-$(sdk))/LICENSE.TXT: $$(PYTHON_LIB-$(sdk)) $$(PYTHON_FRAMEWORK-$(sdk))/Info.plist $$(PYTHON_INCLUDE-$(sdk))/pyconfig.h $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(PYTHON_PLATFORM_SITECUSTOMIZE-$$(target)))
572+
else
573+
$$(PYTHON_STDLIB-$(sdk))/LICENSE.TXT: $$(PYTHON_LIB-$(sdk)) $$(PYTHON_FRAMEWORK-$(sdk))/Versions/$(PYTHON_VER)/Resources/Info.plist $$(PYTHON_INCLUDE-$(sdk))/pyconfig.h $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(PYTHON_PLATFORM_SITECUSTOMIZE-$$(target)))
574+
endif
541575
@echo ">>> Build Python stdlib for the $(sdk) SDK"
542576
mkdir -p $$(PYTHON_STDLIB-$(sdk))/lib-dynload
543577
# Copy stdlib from the first target associated with the $(sdk) SDK
@@ -694,9 +728,10 @@ $$(PYTHON_XCFRAMEWORK-$(os))/Info.plist: \
694728
2>&1 | tee -a support/$(PYTHON_VER)/python-$(os).xcframework.log
695729

696730
@echo ">>> Install PYTHONHOME for $(os)"
697-
$$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/include $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
698-
$$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/bin $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
699-
$$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/lib $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
731+
# Do not install stuff for macabi becuase it's already built into the framework.
732+
$$(foreach sdk,$$(filter-out macabi,$$(SDKS-$(os))),cp -r $$(PYTHON_INSTALL-$$(sdk))/include $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
733+
$$(foreach sdk,$$(filter-out macabi,$$(SDKS-$(os))),cp -r $$(PYTHON_INSTALL-$$(sdk))/bin $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
734+
$$(foreach sdk,$$(filter-out macabi,$$(SDKS-$(os))),cp -r $$(PYTHON_INSTALL-$$(sdk))/lib $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
700735
$$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/platform-config $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
701736

702737
ifeq ($(filter $(os),iOS visionOS),$(os))

patch/Python/Python.patch

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -757,8 +757,18 @@ index 232d3c3a9c5..e042c20ea54 100644
757757
@@ -0,0 +1,2 @@
758758
+#!/bin/sh
759759
+xcrun --sdk macosx${MACOSX_SDK_VERSION} clang -target x86_64-apple-ios-macabi -E "$@"
760+
--- /dev/null
761+
+++ b/MacCatalyst/Resources/pyconfig.h
762+
@@ -0,0 +1,7 @@
763+
+#ifdef __arm64__
764+
+#include "pyconfig-arm64.h"
765+
+#endif
766+
+
767+
+#ifdef __x86_64__
768+
+#include "pyconfig-x86_64.h"
769+
+#endif
760770
diff --git a/Makefile.pre.in b/Makefile.pre.in
761-
index e10c78d6403..21b707bd017 100644
771+
index e10c78d6403..c77fb73513d 100644
762772
--- a/Makefile.pre.in
763773
+++ b/Makefile.pre.in
764774
@@ -209,6 +209,12 @@
@@ -846,6 +856,21 @@ index e10c78d6403..21b707bd017 100644
846856

847857
# Like test, but using --slow-ci which enables all test resources and use
848858
# longer timeout. Run an optional pybuildbot.identify script to include
859+
@@ -2980,6 +3019,14 @@
860+
$(INSTALL) -m $(EXEMODE) $$file $(DESTDIR)$(BINDIR); \
861+
done
862+
863+
+# Stub compilation assistance binaries are installed separately on Mac Catalyst.
864+
+.PHONY: frameworkinstallcatalyststubs
865+
+frameworkinstallcatalyststubs: $(LDLIBRARY)
866+
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(BINDIR)
867+
+ for file in $(srcdir)/$(RESSRCDIR)/bin/* ; do \
868+
+ $(INSTALL) -m $(EXEMODE) $$file $(DESTDIR)$(BINDIR); \
869+
+ done
870+
+
871+
# This installs Mac/Lib into the framework
872+
# Install a number of symlinks to keep software that expects a normal unix
873+
# install (which includes python-config) happy.
849874
diff --git a/Misc/platform_triplet.c b/Misc/platform_triplet.c
850875
index ec0857a4a99..de56264da3b 100644
851876
--- a/Misc/platform_triplet.c
@@ -926,7 +951,7 @@ index 1bb6a05dc11..6efa3fbf821 100755
926951
none--*)
927952
# None (no kernel, i.e. freestanding / bare metal),
928953
diff --git a/configure b/configure
929-
index 1b75ddfa26d..9feb830657a 100755
954+
index 1b75ddfa26d..4c2defa706e 100755
930955
--- a/configure
931956
+++ b/configure
932957
@@ -978,6 +978,11 @@
@@ -1109,8 +1134,8 @@ index 1b75ddfa26d..9feb830657a 100755
11091134
+ _flag_ios_catalyst=`echo $host | cut -d '-' -f4`
11101135
+ case $_flag_ios_catalyst in
11111136
+ macabi)
1112-
+ FRAMEWORKINSTALLFIRST="frameworkinstallversionedstructure"
1113-
+ FRAMEWORKALTINSTALLFIRST="frameworkinstallversionedstructure "
1137+
+ FRAMEWORKINSTALLFIRST="frameworkinstallversionedstructure frameworkinstallcatalyststubs"
1138+
+ FRAMEWORKALTINSTALLFIRST="frameworkinstallversionedstructure frameworkinstallcatalyststubs "
11141139
+ FRAMEWORKINSTALLLAST=""
11151140
+ FRAMEWORKALTINSTALLLAST=""
11161141
+ FRAMEWORKPYTHONW=
@@ -1782,7 +1807,7 @@ index 1b75ddfa26d..9feb830657a 100755
17821807
"Misc/python.pc") CONFIG_FILES="$CONFIG_FILES Misc/python.pc" ;;
17831808
"Misc/python-embed.pc") CONFIG_FILES="$CONFIG_FILES Misc/python-embed.pc" ;;
17841809
diff --git a/configure.ac b/configure.ac
1785-
index c449bb5ebb3..4b5ba577882 100644
1810+
index c449bb5ebb3..aaf40d540f7 100644
17861811
--- a/configure.ac
17871812
+++ b/configure.ac
17881813
@@ -330,6 +330,15 @@
@@ -1935,8 +1960,8 @@ index c449bb5ebb3..4b5ba577882 100644
19351960
+ _flag_ios_catalyst=`echo $host | cut -d '-' -f4`
19361961
+ case $_flag_ios_catalyst in
19371962
+ macabi)
1938-
+ FRAMEWORKINSTALLFIRST="frameworkinstallversionedstructure"
1939-
+ FRAMEWORKALTINSTALLFIRST="frameworkinstallversionedstructure "
1963+
+ FRAMEWORKINSTALLFIRST="frameworkinstallversionedstructure frameworkinstallcatalyststubs"
1964+
+ FRAMEWORKALTINSTALLFIRST="frameworkinstallversionedstructure frameworkinstallcatalyststubs "
19401965
+ FRAMEWORKINSTALLLAST=""
19411966
+ FRAMEWORKALTINSTALLLAST=""
19421967
+ FRAMEWORKPYTHONW=

0 commit comments

Comments
 (0)