@@ -134,7 +134,7 @@ downloads: \
134
134
downloads/xz-$(XZ_VERSION ) .tar.gz \
135
135
downloads/openssl-$(OPENSSL_VERSION ) .tar.gz \
136
136
downloads/libffi-$(LIBFFI_VERSION ) .tar.gz \
137
- downloads/Python-$(PYTHON_VERSION ) .tgz
137
+ downloads/Python-$(PYTHON_VERSION ) .tar.gz
138
138
139
139
update-patch :
140
140
# Generate a diff from the clone of the python/cpython Github repository
@@ -197,7 +197,7 @@ downloads/libffi-$(LIBFFI_VERSION).tar.gz:
197
197
# ##########################################################################
198
198
199
199
# Download original Python source code archive.
200
- downloads/Python-$(PYTHON_VERSION ) .tgz :
200
+ downloads/Python-$(PYTHON_VERSION ) .tar.gz :
201
201
@echo " >>> Download Python sources"
202
202
curl $(CURL_FLAGS ) -o $@ \
203
203
https://www.python.org/ftp/python/$(PYTHON_MICRO_VERSION ) /$(notdir $@ )
@@ -405,34 +405,40 @@ PYTHON_LIB-$(target)=$$(PYTHON_DIR-$(target))/_install/lib/libpython$(PYTHON_VER
405
405
PYCONFIG_H-$(target) =build/$(os ) /python/$$(SDK-$(target ) ) /include/python$(PYTHON_VER ) /pyconfig-$$(ARCH-$(target ) ) .h
406
406
407
407
$$(PYTHON_DIR-$(target ) ) /Makefile : \
408
- downloads/Python-$(PYTHON_VERSION ) .tgz \
409
- $$(BZIP2_XCFRAMEWORK-$(os ) ) \
410
- $$(XZ_XCFRAMEWORK-$(os ) ) \
411
- $$(OPENSSL_XCFRAMEWORK-$(os ) ) \
412
- $$(LIBFFI_XCFRAMEWORK-$(os ) ) \
413
- $$(PYTHON_XCFRAMEWORK-macOS )
408
+ downloads/Python-$(PYTHON_VERSION ) .tar.gz
409
+ $$(BZIP2_FATLIB-$$(SDK-$(target ) ) ) \
410
+ $$(XZ_FATLIB-$$(SDK-$(target ) ) ) \
411
+ $$(OPENSSL_FAT_INCLUDE-$$(SDK-$(target ) ) ) $$(OPENSSL_SSL_FATLIB-$$(SDK-$(target ) ) ) $$(OPENSSL_CRYPTO_FATLIB-$$(SDK-$(target ) ) ) \
412
+ $$(LIBFFI_FATLIB-$$(SDK-$(target ) ) ) \
414
413
@echo " >>> Unpack and configure Python for $( target) "
415
414
mkdir -p $$(PYTHON_DIR-$(target ) )
416
415
tar zxf $$< --strip-components 1 -C $$(PYTHON_DIR-$(target ) )
417
416
# Apply target Python patches
418
417
cd $$(PYTHON_DIR-$(target ) ) && patch -p1 < $(PROJECT_DIR ) /patch/Python/Python.patch
419
418
# Generate the embedded module configuration
420
419
cat $(PROJECT_DIR ) /patch/Python/Setup.embedded \
421
- $(PROJECT_DIR ) /patch/Python/Setup.$(os ) \
422
- $(PROJECT_DIR ) /patch/Python/Setup.$(target ) | \
420
+ $(PROJECT_DIR ) /patch/Python/Setup.$(os ) | \
423
421
sed -e " s/{{slice}}/$$ (SLICE-$$ (SDK-$( target) ))/g" \
424
422
> $$(PYTHON_DIR-$(target ) ) /Modules/Setup.local
425
423
# Configure target Python
426
424
cd $$(PYTHON_DIR-$(target ) ) && \
427
425
./configure \
428
- CC=" $$ (CC-$( target) )" LD=" $$ (CC-$( target) )" \
426
+ CC=" $$ (CC-$( target) )" \
427
+ LD=" $$ (CC-$( target) )" \
428
+ LIBLZMA_CFLAGS=" -I../xz/$( target) /include" \
429
+ LIBLZMA_LIBS=" -L../xz/$( target) /lib -lxz" \
430
+ BZIP2_CFLAGS=" -I../bzip2/$( target) /include" \
431
+ BZIP2_LIBS=" -L../bzip2/$( target) /lib -lbzip2" \
429
432
--host=$$(MACHINE_DETAILED-$(target ) ) -apple-$(shell echo $(os ) | tr '[:upper:]' '[:lower:]') \
430
433
--build=$(HOST_ARCH ) -apple-darwin \
431
434
--with-build-python=$(PROJECT_DIR ) /$(PYTHON_DIR-macOS ) /_install/bin/python$(PYTHON_VER ) \
432
435
--prefix=" $( PROJECT_DIR) /$$ (PYTHON_DIR-$( target) )/_install" \
433
- --without-doc-strings -- enable-ipv6 --without-ensurepip \
436
+ --enable-ipv6 \
434
437
--with-openssl=../openssl/$$(SDK-$(target ) ) \
435
- ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no \
438
+ --without-doc-strings \
439
+ --without-ensurepip \
440
+ ac_cv_file__dev_ptmx=no \
441
+ ac_cv_file__dev_ptc=no \
436
442
$$(PYTHON_CONFIGURE-$(os ) ) \
437
443
2>&1 | tee -a ../python-$(target ) .config.log
438
444
@@ -530,16 +536,28 @@ $$(XZ_FATLIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(XZ_LIB-$$(targ
530
536
# SDK: OpenSSL
531
537
# ##########################################################################
532
538
533
- OPENSSL_FATLIB-$(sdk ) =build/$(os ) /openssl/$(sdk ) /lib/libOpenSSL.a
539
+ OPENSSL_FAT_INCLUDE-$(sdk ) =build/$(os ) /openssl/$(sdk ) /include
540
+ OPENSSL_SSL_FATLIB-$(sdk ) =build/$(os ) /openssl/$(sdk ) /lib/libssl.a
541
+ OPENSSL_CRYPTO_FATLIB-$(sdk ) =build/$(os ) /openssl/$(sdk ) /lib/libcrypto.a
534
542
535
- $$(OPENSSL_FATLIB-$(sdk ) ) : $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(OPENSSL_SSL_LIB-$$(target ) ) )
536
- @echo ">>> Build OpenSSL fat library for $(sdk ) "
543
+ $$(OPENSSL_FAT_INCLUDE-$(sdk ) ) : $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(OPENSSL_SSL_LIB-$$(target ) ) )
544
+ @echo ">>> Copy OpenSSL headers from the first target associated with the SDK"
545
+ mkdir -p build/$(os ) /openssl/$(sdk )
546
+ cp -r $$(OPENSSL_DIR-$$(firstword $$(SDK_TARGETS-$(sdk ) ) ) ) /_install/include build/$(os ) /openssl/$(sdk )
547
+
548
+ $$(OPENSSL_SSL_FATLIB-$(sdk ) ) : $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(OPENSSL_SSL_LIB-$$(target ) ) )
549
+ @echo ">>> Build OpenSSL ssl fat library for $(sdk ) "
537
550
mkdir -p build/$(os ) /openssl/$(sdk ) /lib
538
551
xcrun --sdk $(sdk ) libtool -no_warning_for_no_symbols -static -o $$@ \
539
- $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(OPENSSL_SSL_LIB-$$(target ) ) $$(OPENSSL_CRYPTO_LIB-$$(target ) ) ) \
540
- 2>&1 | tee -a build/$(os ) /openssl-$(sdk ) .libtool.log
541
- # Copy headers from the first target associated with the SDK
542
- cp -r $$(OPENSSL_DIR-$$(firstword $$(SDK_TARGETS-$(sdk ) ) ) ) /_install/include build/$(os ) /openssl/$(sdk )
552
+ $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(OPENSSL_SSL_LIB-$$(target ) ) ) \
553
+ 2>&1 | tee -a build/$(os ) /openssl-$(sdk ) -ssl.libtool.log
554
+
555
+ $$(OPENSSL_CRYPTO_FATLIB-$(sdk ) ) : $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(OPENSSL_CRYPTO_LIB-$$(target ) ) )
556
+ @echo ">>> Build OpenSSL crypto fat library for $(sdk ) "
557
+ mkdir -p build/$(os ) /openssl/$(sdk ) /lib
558
+ xcrun --sdk $(sdk ) libtool -no_warning_for_no_symbols -static -o $$@ \
559
+ $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(OPENSSL_CRYPTO_LIB-$$(target ) ) ) \
560
+ 2>&1 | tee -a build/$(os ) /openssl-$(sdk ) -crypto.libtool.log
543
561
544
562
# ##########################################################################
545
563
# SDK: libFFI
@@ -599,7 +617,9 @@ vars-$(sdk):
599
617
@echo "SDK_ARCHES-$(sdk ) : $$(SDK_ARCHES-$(sdk ) ) "
600
618
@echo "BZIP2_FATLIB-$(sdk ) : $$(BZIP2_FATLIB-$(sdk ) ) "
601
619
@echo "XZ_FATLIB-$(sdk ) : $$(XZ_FATLIB-$(sdk ) ) "
602
- @echo "OPENSSL_FATLIB-$(sdk ) : $$(OPENSSL_FATLIB-$(sdk ) ) "
620
+ @echo "OPENSSL_FAT_INCLUDE-$(sdk ) : $$(OPENSSL_FAT_INCLUDE-$(sdk ) ) "
621
+ @echo "OPENSSL_SSL_FATLIB-$(sdk ) : $$(OPENSSL_SSL_FATLIB-$(sdk ) ) "
622
+ @echo "OPENSSL_CRYPTO_FATLIB-$(sdk ) : $$(OPENSSL_CRYPTO_FATLIB-$(sdk ) ) "
603
623
@echo "LIBFFI_FATLIB-$(sdk ) : $$(LIBFFI_FATLIB-$(sdk ) ) "
604
624
@echo "PYTHON_DIR-$(sdk ) : $$(PYTHON_DIR-$(sdk ) ) "
605
625
@echo "PYTHON_FATLIB-$(sdk ) : $$(PYTHON_FATLIB-$(sdk ) ) "
@@ -633,67 +653,37 @@ $$(foreach sdk,$$(SDKS-$(os)),$$(eval $$(call build-sdk,$$(sdk),$(os))))
633
653
# Build: BZip2
634
654
# ##########################################################################
635
655
636
- BZIP2_XCFRAMEWORK-$(os ) =build/$(os ) /Support/BZip2.xcframework
637
-
638
- $$(BZIP2_XCFRAMEWORK-$(os ) ) : $$(foreach sdk,$$(SDKS-$(os ) ) ,$$(BZIP2_FATLIB-$$(sdk ) ) )
639
- @echo ">>> Create BZip2.XCFramework on $(os ) "
640
- mkdir -p $$(BZIP2_XCFRAMEWORK-$(os ) )
641
- xcodebuild -create-xcframework \
642
- -output $$@ $$(foreach sdk,$$(SDKS-$(os ) ) ,-library $$(BZIP2_FATLIB-$$(sdk ) ) -headers build/$(os ) /bzip2/$$(sdk ) /include) \
643
- 2>&1 | tee -a build/$(os ) /bzip2-$(os ) .xcframework.log
644
-
645
- BZip2-$(os ) : $$(BZIP2_XCFRAMEWORK-$(os ) )
656
+ BZip2-$(os ) : $$(foreach sdk,$$(SDKS-$(os ) ) ,$$(BZIP2_FATLIB-$$(sdk ) ) )
646
657
647
658
clean-BZip2-$(os ) :
648
659
@echo ">>> Clean BZip2 build products on $(os ) "
649
660
rm -rf build/$(os ) /bzip2-$(BZIP2_VERSION ) -* \
650
661
build/$(os ) /bzip2 \
651
662
build/$(os ) /bzip2-*.log \
652
- build/$(os ) /Support/BZip2.xcframework
653
663
654
664
# ##########################################################################
655
665
# Build: XZ (LZMA)
656
666
# ##########################################################################
657
667
658
- XZ_XCFRAMEWORK-$(os ) =build/$(os ) /Support/XZ.xcframework
659
-
660
- $$(XZ_XCFRAMEWORK-$(os ) ) : $$(foreach sdk,$$(SDKS-$(os ) ) ,$$(XZ_FATLIB-$$(sdk ) ) )
661
- @echo ">>> Create XZ.XCFramework on $(os ) "
662
- mkdir -p $$(XZ_XCFRAMEWORK-$(os ) )
663
- xcodebuild -create-xcframework \
664
- -output $$@ $$(foreach sdk,$$(SDKS-$(os ) ) ,-library $$(XZ_FATLIB-$$(sdk ) ) -headers build/$(os ) /xz/$$(sdk ) /include) \
665
- 2>&1 | tee -a build/$(os ) /xz-$(os ) .xcframework.log
666
-
667
- XZ-$(os ) : $$(XZ_XCFRAMEWORK-$(os ) )
668
+ XZ-$(os ) : $$(foreach sdk,$$(SDKS-$(os ) ) ,$$(XZ_FATLIB-$$(sdk ) ) )
668
669
669
670
clean-XZ-$(os ) :
670
671
@echo ">>> Clean XZ build products on $(os ) "
671
672
rm -rf build/$(os ) /xz-$(XZ_VERSION ) -* \
672
673
build/$(os ) /xz \
673
674
build/$(os ) /xz-*.log \
674
- build/$(os ) /Support/XZ.xcframework
675
675
676
676
# ##########################################################################
677
677
# Build: OpenSSL
678
678
# ##########################################################################
679
679
680
- OPENSSL_XCFRAMEWORK-$(os ) =build/$(os ) /Support/OpenSSL.xcframework
681
-
682
- $$(OPENSSL_XCFRAMEWORK-$(os ) ) : $$(foreach sdk,$$(SDKS-$(os ) ) ,$$(OPENSSL_FATLIB-$$(sdk ) ) )
683
- @echo ">>> Create OpenSSL.XCFramework on $(os ) "
684
- mkdir -p $$(OPENSSL_XCFRAMEWORK-$(os ) )
685
- xcodebuild -create-xcframework \
686
- -output $$@ $$(foreach sdk,$$(SDKS-$(os ) ) ,-library $$(OPENSSL_FATLIB-$$(sdk ) ) -headers build/$(os ) /openssl/$$(sdk ) /include) \
687
- 2>&1 | tee -a build/$(os ) /openssl-$(os ) .xcframework.log
688
-
689
- OpenSSL-$(os ) : $$(OPENSSL_XCFRAMEWORK-$(os ) )
680
+ OpenSSL-$(os ) : $$(foreach sdk,$$(SDKS-$(os ) ) ,$$(OPENSSL_FAT_INCLUDE-$$(sdk ) ) $$(OPENSSL_SSL_FATLIB-$$(sdk ) ) $$(OPENSSL_CRYPTO_FATLIB-$$(sdk ) ) )
690
681
691
682
clean-OpenSSL-$(os ) :
692
683
@echo ">>> Clean OpenSSL build products on $(os ) "
693
684
rm -rf build/$(os ) /openssl-$(OPENSSL_VERSION ) -* \
694
685
build/$(os ) /openssl \
695
686
build/$(os ) /openssl-*.log \
696
- build/$(os ) /Support/OpenSSL.xcframework
697
687
698
688
# ##########################################################################
699
689
# Build: libFFI
@@ -733,7 +723,6 @@ clean-libFFI-$(os):
733
723
@echo ">>> Clean libFFI build products on $(os ) "
734
724
rm -rf build/$(os ) /libffi-$(LIBFFI_VERSION ) \
735
725
build/$(os ) /libffi-*.log \
736
- build/$(os ) /Support/libFFI.xcframework
737
726
738
727
739
728
# ##########################################################################
@@ -758,10 +747,10 @@ PYTHON_DIR-$(os)=$$(PYTHON_DIR-$$(firstword $$(TARGETS-$(os))))
758
747
PYTHON_LIB-$(os) =$$(PYTHON_LIB-$$(firstword $$(TARGETS-$(os ) ) ) )
759
748
760
749
$$(PYTHON_DIR-$(os ) ) /Makefile : \
761
- downloads/Python-$(PYTHON_VERSION ) .tgz \
762
- $$(BZIP2_XCFRAMEWORK -$(os ) ) \
763
- $$(XZ_XCFRAMEWORK -$(os ) ) \
764
- $$(OPENSSL_XCFRAMEWORK -$(os ) )
750
+ downloads/Python-$(PYTHON_VERSION ) .tar.gz
751
+ $$(foreach sdk, $$( SDKS -$(os ) ) , $$( BZIP2_FATLIB- $$( sdk ) ) ) \
752
+ $$(foreach sdk, $$( SDKS -$(os ) ) , $$( XZ_FATLIB- $$( sdk ) ) ) \
753
+ $$(foreach sdk, $$( SDKS -$(os ) ), $$( OPENSSL_FAT_INCLUDE- $$( sdk ) ) $$( OPENSSL_SSL_FATLIB- $$( sdk ) ) $$( OPENSSL_CRYPTO_FATLIB- $$( sdk ) ) ) \
765
754
@echo " >>> Unpack and configure Python for $( os) "
766
755
mkdir -p $$(PYTHON_DIR-$(os ) )
767
756
tar zxf $$< --strip-components 1 -C $$(PYTHON_DIR-$(os ) )
@@ -774,10 +763,19 @@ $$(PYTHON_DIR-$(os))/Makefile: \
774
763
# Configure target Python
775
764
cd $$(PYTHON_DIR-$(os ) ) && \
776
765
./configure \
777
- CC=" $( CC-macosx) " LD=" $( CC-macosx) " \
766
+ CC=" $( CC-macosx) " \
767
+ LD=" $( CC-macosx) " \
768
+ LIBLZMA_CFLAGS=" -I../xz/macosx/include" \
769
+ LIBLZMA_LIBS=" -L../xz/macosx/lib -lxz" \
770
+ BZIP2_CFLAGS=" -I../bzip2/macosx/include" \
771
+ BZIP2_LIBS=" -L../bzip2/macosx/lib -lbzip2" \
778
772
--prefix=" $( PROJECT_DIR) /$$ (PYTHON_DIR-$( os) )/_install" \
779
- --without-doc-strings --enable-ipv6 --without-ensurepip --enable-universalsdk --with-universal-archs=universal2 \
773
+ --enable-ipv6 \
774
+ --enable-universalsdk \
780
775
--with-openssl=../openssl/macosx \
776
+ --with-universal-archs=universal2 \
777
+ --without-doc-strings \
778
+ --without-ensurepip \
781
779
$$(PYTHON_CONFIGURE-$(os ) ) \
782
780
2>&1 | tee -a ../python-$(os ) .config.log
783
781
@@ -820,7 +818,7 @@ Python-$(os): dist/Python-$(PYTHON_VER)-$(os)-support.$(BUILD_NUMBER).tar.gz
820
818
clean-Python-$(os ) :
821
819
@echo ">>> Clean Python build products on $(os ) "
822
820
rm -rf \
823
- dist/Python-$(PYTHON_VER ) -$(os ) \
821
+ dist/Python-$(PYTHON_VER ) -$(os ) -* \
824
822
build/$(os ) /Python-$(PYTHON_VERSION ) -* \
825
823
build/$(os ) /python \
826
824
build/$(os ) /python-*.log \
@@ -842,12 +840,7 @@ dev-clean-Python-$(os):
842
840
# Build
843
841
# ##########################################################################
844
842
845
- dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz: \
846
- $$(BZIP2_XCFRAMEWORK-$(os ) ) \
847
- $$(XZ_XCFRAMEWORK-$(os ) ) \
848
- $$(OPENSSL_XCFRAMEWORK-$(os ) ) \
849
- $$(LIBFFI_XCFRAMEWORK-$(os ) ) \
850
- $$(PYTHON_XCFRAMEWORK-$(os ) )
843
+ dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz: $$(PYTHON_XCFRAMEWORK-$(os ) )
851
844
@echo ">>> Create final distribution artefact for $(os ) "
852
845
mkdir -p dist
853
846
echo "Python version: $(PYTHON_VERSION ) " > build/$(os ) /Support/VERSIONS
0 commit comments