@@ -35,7 +35,10 @@ PROJECT_DIR=$(shell pwd)
35
35
36
36
BUILD_NUMBER =custom
37
37
38
- MACOSX_DEPLOYMENT_TARGET =10.8
38
+ # This version limit will only be honored on x86_64 builds.
39
+ # arm64/M1 builds are only supporteded on macOS 11.0 or greater.
40
+ MACOSX_DEPLOYMENT_TARGET-x86_64 =10.8
41
+ MACOSX_DEPLOYMENT_TARGET-arm64 =11.0
39
42
40
43
# Version of packages that will be compiled by this meta-package
41
44
# PYTHON_VERSION is the full version number (e.g., 3.10.0b3)
@@ -61,9 +64,9 @@ OS_LIST=macOS iOS tvOS watchOS
61
64
# macOS targets
62
65
TARGETS-macOS =macosx.x86_64 macosx.arm64
63
66
PYTHON_TARGETS-macOS =macOS
64
- CFLAGS-macOS=-mmacosx-version-min = $( MACOSX_DEPLOYMENT_TARGET )
65
- CFLAGS-macosx.x86_64 =
66
- CFLAGS-macosx.arm64 =
67
+ CFLAGS-macOS =
68
+ CFLAGS-macosx.x86_64=-mmacosx-version-min = $( MACOSX_DEPLOYMENT_TARGET-x86_64 )
69
+ CFLAGS-macosx.arm64=-mmacosx-version-min = $( MACOSX_DEPLOYMENT_TARGET-arm64 )
67
70
68
71
# iOS targets
69
72
TARGETS-iOS =iphonesimulator.x86_64 iphonesimulator.arm64 iphoneos.arm64
@@ -81,7 +84,7 @@ CFLAGS-appletvsimulator.arm64=
81
84
PYTHON_CONFIGURE-tvOS=ac_cv_func_sigaltstack =no
82
85
83
86
# watchOS targets
84
- TARGETS-watchOS =wwatchsimulator .x86_64 watchsimulator.arm64 watchos.arm64_32
87
+ TARGETS-watchOS =watchsimulator .x86_64 watchsimulator.arm64 watchos.arm64_32
85
88
CFLAGS-watchOS=-mwatchos-version-min =4.0 -fembed-bitcode
86
89
CFLAGS_watchsimulator.x86_64 =
87
90
CFLAGS-watchsimulator.arm64 =
@@ -92,6 +95,10 @@ PYTHON_CONFIGURE-watchOS=ac_cv_func_sigaltstack=no
92
95
MACHINE_DETAILED-arm64 =aarch64
93
96
MACHINE_SIMPLE-arm64 =arm
94
97
98
+ # override machine types for arm64_32
99
+ MACHINE_DETAILED-arm64_32 =aarch64
100
+ MACHINE_SIMPLE-arm64_32 =arm
101
+
95
102
# Build for all operating systems
96
103
all : $(OS_LIST )
97
104
@@ -176,7 +183,8 @@ downloads/xz-$(XZ_VERSION).tgz:
176
183
clean-libFFI :
177
184
@echo " >>> Clean libFFI build products"
178
185
rm -rf build/* /libffi-$(LIBFFI_VERSION ) \
179
- build/* /Support/libFFI
186
+ build/* /libffi-* .log \
187
+ build/* /Support/libFFI.xcframework
180
188
181
189
# Download original XZ source code archive.
182
190
downloads/libffi-$(LIBFFI_VERSION ) .tgz :
@@ -274,7 +282,7 @@ endif
274
282
ifeq ($(os ) ,macOS)
275
283
cd $$(OPENSSL_DIR-$(target)) && \
276
284
CC="$$(CC-$(target))" \
277
- MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET) \
285
+ MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET-$$(ARCH-$(target)) ) \
278
286
./Configure darwin64-$$(ARCH-$(target))-cc no-tests \
279
287
--prefix="$(PROJECT_DIR)/$$(OPENSSL_DIR-$(target))/_install" \
280
288
--openssldir=/etc/ssl \
@@ -335,7 +343,8 @@ $$(XZ_DIR-$(target))/Makefile: downloads/xz-$(XZ_VERSION).tgz
335
343
mkdir -p $$(XZ_DIR-$(target ) )
336
344
tar zxf downloads/xz-$(XZ_VERSION ) .tgz --strip-components 1 -C $$(XZ_DIR-$(target ) )
337
345
# Configure the build
338
- cd $$(XZ_DIR-$(target ) ) && MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET ) \
346
+ cd $$(XZ_DIR-$(target ) ) && \
347
+ MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET-$$(ARCH-$(target ) ) ) \
339
348
./configure \
340
349
CC="$$(CC-$(target ) ) " \
341
350
LDFLAGS="$$(LDFLAGS-$(target ) ) " \
@@ -354,20 +363,19 @@ $$(XZ_LIB-$(target)): $$(XZ_DIR-$(target))/Makefile
354
363
# Target: libFFI
355
364
# ##########################################################################
356
365
357
- LIBFFI_DIR-$(target ) =build/$(os ) /libffi-$(LIBFFI_VERSION )
358
-
359
- # macOS builds use their own libFFI, so there's no need to do
366
+ # macOS builds use the system libFFI, so there's no need to do
360
367
# a per-target build on macOS
361
368
ifneq ($(os ) ,macOS)
362
- LIBFFI_BUILD_DIR-$(target) =build_$$(SDK-$(target ) ) -$$(ARCH-$(target ) )
363
369
364
- $$( LIBFFI_DIR-$(target ) ) /libffi. $( target ) .a : $$( LIBFFI_DIR -$(target ) ) /darwin_common
365
- @echo " >>> Build libFFI for $( target) "
366
- cd $$( LIBFFI_DIR -$(target ) ) / $$(LIBFFI_BUILD_DIR -$(target ) ) && make
370
+ LIBFFI_DIR-$(os) =build/ $( os ) /libffi -$(LIBFFI_VERSION )
371
+ LIBFFI_DIR- $(target)= $$( LIBFFI_DIR- $( os ) ) /build_ $$( SDK- $( target ) ) - $$( ARCH- $( target ) )
372
+ LIBFFI_LIB -$(target)= $$(LIBFFI_DIR -$(target ) ) /.libs/libffi.a
367
373
368
- # Copy in the lib to a non-BUILD_DIR dependent location;
369
- # include the target in the final filename for disambiguation
370
- cp $$(LIBFFI_DIR-$(target))/$$(LIBFFI_BUILD_DIR-$(target))/.libs/libffi.a $$(LIBFFI_DIR-$(target))/libffi.$(target).a
374
+ $$(LIBFFI_LIB-$(target ) ) : $$(LIBFFI_DIR-$(os ) ) /darwin_common
375
+ @echo " >>> Build libFFI for $( target) "
376
+ cd $$(LIBFFI_DIR-$(target ) ) && \
377
+ make \
378
+ 2>&1 | tee ../../libffi-$(target ) .build.log
371
379
372
380
endif
373
381
@@ -410,15 +418,17 @@ $$(PYTHON_DIR-$(target))/dist/lib/libpython$(PYTHON_VER).a: build/$(os)/Support/
410
418
411
419
endif
412
420
413
- # Dump environment variables (for debugging purposes)
421
+ # ##########################################################################
422
+ # Target: Debug
423
+ # ##########################################################################
424
+
414
425
vars-$(target ) :
415
426
@echo ">>> Environment variables for $(target ) "
416
427
@echo "ARCH-$(target ) : $$(ARCH-$(target ) ) "
417
428
@echo "MACHINE_DETAILED-$(target ) : $$(MACHINE_DETAILED-$(target ) ) "
418
429
@echo "SDK-$(target ) : $$(SDK-$(target ) ) "
419
430
@echo "SDK_ROOT-$(target ) : $$(SDK_ROOT-$(target ) ) "
420
431
@echo "CC-$(target ) : $$(CC-$(target ) ) "
421
- @echo "LIBFFI_BUILD_DIR-$(target ) : $$(LIBFFI_BUILD_DIR-$(target ) ) "
422
432
@echo "OPENSSL_DIR-$(target ) : $$(OPENSSL_DIR-$(target ) ) "
423
433
@echo "OPENSSL_SSL_LIB-$(target ) : $$(OPENSSL_SSL_LIB-$(target ) ) "
424
434
@echo "OPENSSL_CRYPTO_LIB-$(target ) : $$(OPENSSL_CRYPTO_LIB-$(target ) ) "
@@ -427,6 +437,7 @@ vars-$(target):
427
437
@echo "XZ_DIR-$(target ) : $$(XZ_DIR-$(target ) ) "
428
438
@echo "XZ_LIB-$(target ) : $$(XZ_LIB-$(target ) ) "
429
439
@echo "LIBFFI_DIR-$(target ) : $$(LIBFFI_DIR-$(target ) ) "
440
+ @echo "LIBFFI_LIB-$(target ) : $$(LIBFFI_LIB-$(target ) ) "
430
441
@echo "PYTHON_DIR-$(target ) : $$(PYTHON_DIR-$(target ) ) "
431
442
@echo "pyconfig.h-$(target ) : $$(pyconfig.h-$(target ) ) "
432
443
@echo
@@ -442,11 +453,18 @@ define build-arch
442
453
arch=$1
443
454
os=$2
444
455
456
+ # ##########################################################################
457
+ # Arch: Python
458
+ # ##########################################################################
459
+
445
460
build/$(os ) /pyconfig.h-$(arch ) : $$(PYTHON_DIR-$(arch ) ) /dist/include/python$(PYTHON_VER ) /pyconfig.h
446
461
@echo ">>> Install pyconfig.h for $(arch ) on $(os ) "
447
462
cp -f $$^ $$@
448
463
449
- # Dump environment variables (for debugging purposes)
464
+ # ##########################################################################
465
+ # Arch: Debug
466
+ # ##########################################################################
467
+
450
468
vars-$(arch ) :
451
469
452
470
endef # build-arch
@@ -502,13 +520,37 @@ $$(XZ_FATLIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(XZ_LIB-$$(targ
502
520
# Copy headers from the first target associated with the SDK
503
521
cp -r $$(XZ_DIR-$$(firstword $$(SDK_TARGETS-$(sdk ) ) ) ) /_install/include build/$(os ) /xz/$(sdk )
504
522
505
- # Dump environment variables (for debugging purposes)
523
+ # ##########################################################################
524
+ # SDK: LibFFI
525
+ # ##########################################################################
526
+
527
+ LIBFFI_FATLIB-$(sdk ) =$$(LIBFFI_DIR-$(os ) ) /_install/$(sdk ) /libffi.a
528
+
529
+ test-$(sdk ) :
530
+ # $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(LIBFFI_LIB-$$(target)))
531
+
532
+ $$(LIBFFI_FATLIB-$(sdk ) ) : $$(foreach target,$$(SDK_TARGETS-$(sdk ) ) ,$$(LIBFFI_LIB-$$(target ) ) )
533
+ @echo ">>> Build LibFFI fat library for $(sdk ) "
534
+ mkdir -p $$(LIBFFI_DIR-$(os ) ) /_install/$(sdk )
535
+ xcrun --sdk $(sdk ) libtool -static -o $$@ $$^
536
+ # Copy headers from the first target associated with the SDK
537
+ cp -f -r $$(LIBFFI_DIR-$(os ) ) /darwin_common/include \
538
+ $$(LIBFFI_DIR-$(os ) ) /_install/$(sdk )
539
+ cp -f -r $$(LIBFFI_DIR-$(os ) ) /darwin_$(shell echo $(os ) | tr '[:upper:]' '[:lower:]') /include/* \
540
+ $$(LIBFFI_DIR-$(os ) ) /_install/$(sdk ) /include
541
+
542
+ # ##########################################################################
543
+ # SDK: Debug
544
+ # ##########################################################################
545
+
506
546
vars-$(sdk ) :
507
547
@echo ">>> Environment variables for $(sdk ) "
508
548
@echo "SDK_TARGETS-$(sdk ) : $$(SDK_TARGETS-$(sdk ) ) "
509
549
@echo "SDK_ARCHES-$(sdk ) : $$(SDK_ARCHES-$(sdk ) ) "
510
550
@echo "BZIP2_FATLIB-$(sdk ) : $$(BZIP2_FATLIB-$(sdk ) ) "
511
551
@echo "XZ_FATLIB-$(sdk ) : $$(XZ_FATLIB-$(sdk ) ) "
552
+ @echo "OPENSSL_FATLIB-$(sdk ) : $$(OPENSSL_FATLIB-$(sdk ) ) "
553
+ @echo "LIBFFI_FATLIB-$(sdk ) : $$(LIBFFI_FATLIB-$(sdk ) ) "
512
554
@echo
513
555
514
556
endef # build-sdk
@@ -520,6 +562,11 @@ endef # build-sdk
520
562
define build
521
563
os=$1
522
564
565
+
566
+ # ##########################################################################
567
+ # Build: Macro Expansions
568
+ # ##########################################################################
569
+
523
570
# Expand the build-target macro for target on this OS
524
571
$$(foreach target,$$(TARGETS-$(os ) ) ,$$(eval $$(call build-target,$$(target ) ,$(os ) ) ) )
525
572
@@ -531,32 +578,6 @@ $$(foreach arch,$$(ARCHES-$(os)),$$(eval $$(call build-arch,$$(arch),$(os))))
531
578
SDKS-$(os ) =$$(sort $$(basename $$(TARGETS-$(os ) ) ) )
532
579
$$(foreach sdk,$$(SDKS-$(os ) ) ,$$(eval $$(call build-sdk,$$(sdk ) ,$(os ) ) ) )
533
580
534
- $(os ) : dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz
535
-
536
- clean-$(os ) :
537
- @echo ">>> Clean $(os ) build products"
538
- rm -rf build/$(os )
539
-
540
- dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz: $$(BZIP2_XCFRAMEWORK-$(os ) ) $$(XZ_XCFRAMEWORK-$(os ) ) $$(OPENSSL_XCFRAMEWORK-$(os ) ) $$(LIBFFI_FRAMEWORK-$(os ) ) $$(PYTHON_FRAMEWORK-$(os ) )
541
- @echo ">>> Create final distribution artefact for $(os ) "
542
- mkdir -p dist
543
- echo "Python version: $(PYTHON_VERSION ) " > build/$(os ) /Support/VERSIONS
544
- echo "Build: $(BUILD_NUMBER ) " >> build/$(os ) /Support/VERSIONS
545
- echo "---------------------" >> build/$(os ) /Support/VERSIONS
546
- ifeq ($(os ) ,macOS)
547
- echo "libFFI: macOS native" >> build/$(os)/Support/VERSIONS
548
- else
549
- echo "libFFI: $(LIBFFI_VERSION)" >> build/$(os)/Support/VERSIONS
550
- endif
551
- echo "BZip2: $(BZIP2_VERSION ) " >> build/$(os ) /Support/VERSIONS
552
- echo "OpenSSL: $(OPENSSL_VERSION ) " >> build/$(os ) /Support/VERSIONS
553
- echo "XZ: $(XZ_VERSION ) " >> build/$(os ) /Support/VERSIONS
554
-
555
- # Build a "full" tarball with all content for test purposes
556
- tar zcvf dist/Python-$(PYTHON_VER ) -$(os ) -support.test-$(BUILD_NUMBER ) .tar.gz -X patch/Python/test.exclude -C build/$(os ) /Support `ls -A build/$(os ) /Support`
557
- # Build a distributable tarball
558
- tar zcvf $$@ -X patch/Python/release.common.exclude -X patch/Python/release.$(os ) .exclude -C build/$(os ) /Support `ls -A build/$(os ) /Support`
559
-
560
581
# ##########################################################################
561
582
# Build: OpenSSL
562
583
# ##########################################################################
@@ -603,46 +624,41 @@ XZ-$(os): $$(XZ_XCFRAMEWORK-$(os))
603
624
# Build: libFFI
604
625
# ##########################################################################
605
626
606
- LIBFFI_FRAMEWORK-$(os ) =build/$(os ) /Support/libFFI
607
-
608
- libFFI-$(os ) : $$(LIBFFI_FRAMEWORK-$(os ) )
627
+ LIBFFI_XCFRAMEWORK-$(os ) =build/$(os ) /Support/libFFI.xcframework
609
628
610
629
# macOS uses the system-provided libFFI, so there's no need to package
611
630
# a libFFI framework for macOS.
612
631
ifeq ($(os ) ,macOS)
613
- # Some targets that are needed for consistency between macOS and other builds,
614
- # but are no-ops on macOS.
615
- $$(LIBFFI_FRAMEWORK -$(os ) ) :
632
+ # There's no XCFramework needed for macOS; we declare an empty target
633
+ # so that expansions don't complain about missing targets
634
+ $$(LIBFFI_XCFRAMEWORK -$(os ) ) :
616
635
617
636
else
618
- # The LibFFI folder is shared between all architectures for the OS
637
+
619
638
LIBFFI_DIR-$(os) =build/$(os ) /libffi-$(LIBFFI_VERSION )
620
639
621
640
# Unpack LibFFI and generate source & headers
622
641
$$(LIBFFI_DIR-$(os ) ) /darwin_common : downloads/libffi-$(LIBFFI_VERSION ) .tgz
623
642
@echo " >>> Unpack and configure libFFI sources on $( os) "
624
643
mkdir -p $$(LIBFFI_DIR-$(os ) )
625
644
tar zxf downloads/libffi-$(LIBFFI_VERSION ) .tgz --strip-components 1 -C $$(LIBFFI_DIR-$(os ) )
645
+ # Patch the build to add support for new platforms
646
+ cd $$(LIBFFI_DIR-$(os ) ) && patch -p1 < $(PROJECT_DIR ) /patch/libffi.patch
626
647
# Configure the build
627
- cd $$(LIBFFI_DIR-$(os ) ) && python generate-darwin-source-and-headers.py --only-$(shell echo $(os ) | tr '[:upper:]' '[:lower:]')
628
-
629
- $$(LIBFFI_FRAMEWORK-$(os ) ) : $$(LIBFFI_DIR-$(os ) ) /libffi.a
630
- # Create framework directory structure
631
- mkdir -p $$(LIBFFI_FRAMEWORK-$(os ) )
632
-
633
- # Copy the headers.
634
- cp -f -r $$(LIBFFI_DIR-$(os))/darwin_common/include $$(LIBFFI_FRAMEWORK-$(os))/Headers
635
- cp -f -r $$(LIBFFI_DIR-$(os))/darwin_$(shell echo $(os) | tr '[:upper:]' '[:lower:]')/include/* $$(LIBFFI_FRAMEWORK-$(os))/Headers
636
-
637
- # Create the fat library
638
- xcrun libtool -no_warning_for_no_symbols -static \
639
- -o $$(LIBFFI_FRAMEWORK-$(os))/libFFI.a $$^
648
+ cd $$(LIBFFI_DIR-$(os ) ) && \
649
+ python generate-darwin-source-and-headers.py --only-$(shell echo $(os ) | tr '[:upper:]' '[:lower:]') \
650
+ 2>&1 | tee ../libffi-$(os ) .config.log
640
651
641
- $$(LIBFFI_DIR-$(os ) ) /libffi.a : $$(foreach target,$$(TARGETS-$(os ) ) ,$$(LIBFFI_DIR-$(os ) ) /libffi.$$(target ) .a)
642
- xcrun lipo -create -o $$@ $$^
652
+ $$(LIBFFI_XCFRAMEWORK-$(os ) ) : $$(foreach sdk,$$(SDKS-$(os ) ) ,$$(LIBFFI_FATLIB-$$(sdk ) ) )
653
+ @echo " >>> Create libFFI.XCFramework on $( os) "
654
+ mkdir -p $$(LIBFFI_XCFRAMEWORK-$(os ) )
655
+ xcodebuild -create-xcframework \
656
+ -output $$@ $$(foreach sdk,$$(SDKS-$(os ) ) ,-library $$(LIBFFI_FATLIB-$$(sdk ) ) -headers $$(LIBFFI_DIR-$(os ) ) /_install/$$(sdk ) /include)
643
657
644
658
endif
645
659
660
+ libFFI-$(os ) : $$(LIBFFI_XCFRAMEWORK-$(os ) )
661
+
646
662
# ##########################################################################
647
663
# Build: Python
648
664
# ##########################################################################
@@ -663,12 +679,14 @@ $$(PYTHON_DIR-$(os))/Makefile: downloads/Python-$(PYTHON_VERSION).tgz
663
679
# Copy in the embedded module configuration
664
680
cat $(PROJECT_DIR ) /patch/Python/Setup.embedded $(PROJECT_DIR ) /patch/Python/Setup.$(os ) > $$(PYTHON_DIR-$(os ) ) /Modules/Setup.local
665
681
# Configure target Python
666
- cd $$(PYTHON_DIR-$(os ) ) && MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET ) ./configure \
667
- --prefix=" $( PROJECT_DIR) /$$ (PYTHON_DIR-$( os) )/dist" \
668
- --without-doc-strings --enable-ipv6 --without-ensurepip --enable-universalsdk --with-universal-archs=universal2 \
669
- $$(PYTHON_CONFIGURE-$(os ) )
682
+ cd $$(PYTHON_DIR-$(os ) ) &&
683
+ MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET-$$(ARCH-$(target ) ) ) \
684
+ ./configure \
685
+ --prefix=" $( PROJECT_DIR) /$$ (PYTHON_DIR-$( os) )/dist" \
686
+ --without-doc-strings --enable-ipv6 --without-ensurepip --enable-universalsdk --with-universal-archs=universal2 \
687
+ $$(PYTHON_CONFIGURE-$(os ) )
670
688
671
- $$(PYTHON_DIR-$(os ) ) /dist/lib/libpython$(PYTHON_VER ) .a : $$(BZIP2_XCFRAMEWORK-$(os ) ) $$(XZ_XCFRAMEWORK-$(os ) ) $$(OPENSSL_XCFRAMEWORK-$(os ) ) $$(LIBFFI_FRAMEWORK -$(os ) ) $$(PYTHON_DIR-$(os ) ) /Makefile
689
+ $$(PYTHON_DIR-$(os ) ) /dist/lib/libpython$(PYTHON_VER ) .a : $$(BZIP2_XCFRAMEWORK-$(os ) ) $$(XZ_XCFRAMEWORK-$(os ) ) $$(OPENSSL_XCFRAMEWORK-$(os ) ) $$(LIBFFI_XCFRAMEWORK -$(os ) ) $$(PYTHON_DIR-$(os ) ) /Makefile
672
690
@echo " >>> Build and install Python for $( os) "
673
691
cd $$(PYTHON_DIR-$(os ) ) && PATH=" $( PROJECT_DIR) /$( PYTHON_DIR-$( os) ) /dist/bin:$( PATH) " make all install
674
692
@@ -707,14 +725,47 @@ build/$(os)/libpython$(PYTHON_VER).a: $$(foreach target,$$(PYTHON_TARGETS-$(os))
707
725
mkdir -p build/$(os )
708
726
xcrun lipo -create -output $$@ $$^
709
727
710
- # Dump environment variables (for debugging purposes)
728
+ # ##########################################################################
729
+ # Build
730
+ # ##########################################################################
731
+
732
+ dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz: $$(BZIP2_XCFRAMEWORK-$(os ) ) $$(XZ_XCFRAMEWORK-$(os ) ) $$(OPENSSL_XCFRAMEWORK-$(os ) ) $$(LIBFFI_XCFRAMEWORK-$(os ) ) $$(PYTHON_FRAMEWORK-$(os ) )
733
+ @echo ">>> Create final distribution artefact for $(os ) "
734
+ mkdir -p dist
735
+ echo "Python version: $(PYTHON_VERSION ) " > build/$(os ) /Support/VERSIONS
736
+ echo "Build: $(BUILD_NUMBER ) " >> build/$(os ) /Support/VERSIONS
737
+ echo "---------------------" >> build/$(os ) /Support/VERSIONS
738
+ ifeq ($(os ) ,macOS)
739
+ echo "libFFI: macOS native" >> build/$(os)/Support/VERSIONS
740
+ else
741
+ echo "libFFI: $(LIBFFI_VERSION)" >> build/$(os)/Support/VERSIONS
742
+ endif
743
+ echo "BZip2: $(BZIP2_VERSION ) " >> build/$(os ) /Support/VERSIONS
744
+ echo "OpenSSL: $(OPENSSL_VERSION ) " >> build/$(os ) /Support/VERSIONS
745
+ echo "XZ: $(XZ_VERSION ) " >> build/$(os ) /Support/VERSIONS
746
+
747
+ # Build a "full" tarball with all content for test purposes
748
+ tar zcvf dist/Python-$(PYTHON_VER ) -$(os ) -support.test-$(BUILD_NUMBER ) .tar.gz -X patch/Python/test.exclude -C build/$(os ) /Support `ls -A build/$(os ) /Support`
749
+ # Build a distributable tarball
750
+ tar zcvf $$@ -X patch/Python/release.common.exclude -X patch/Python/release.$(os ) .exclude -C build/$(os ) /Support `ls -A build/$(os ) /Support`
751
+
752
+ $(os ) : dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz
753
+
754
+ clean-$(os ) :
755
+ @echo ">>> Clean $(os ) build products"
756
+ rm -rf build/$(os )
757
+
758
+ # ##########################################################################
759
+ # Build: Debug
760
+ # ##########################################################################
761
+
711
762
vars-$(os ) : $$(foreach target,$$(TARGETS-$(os ) ) ,vars-$$(target ) ) $$(foreach arch,$$(ARCHES-$(os ) ) ,vars-$$(arch ) ) $$(foreach sdk,$$(SDKS-$(os ) ) ,vars-$$(sdk ) )
712
763
@echo ">>> Environment variables for $(os ) "
713
764
@echo "ARCHES-$(os ) : $$(ARCHES-$(os ) ) "
714
765
@echo "OPENSSL_XCFRAMEWORK-$(os ) : $$(OPENSSL_XCFRAMEWORK-$(os ) ) "
715
766
@echo "BZIP2_XCFRAMEWORK-$(os ) : $$(BZIP2_XCFRAMEWORK-$(os ) ) "
716
767
@echo "XZ_XCFRAMEWORK-$(os ) : $$(XZ_XCFRAMEWORK-$(os ) ) "
717
- @echo "LIBFFI_FRAMEWORK -$(os ) : $$(LIBFFI_FRAMEWORK -$(os ) ) "
768
+ @echo "LIBFFI_XCFRAMEWORK -$(os ) : $$(LIBFFI_XCFRAMEWORK -$(os ) ) "
718
769
@echo "PYTHON_FRAMEWORK-$(os ) : $$(PYTHON_FRAMEWORK-$(os ) ) "
719
770
@echo "LIBFFI_DIR-$(os ) : $$(LIBFFI_DIR-$(os ) ) "
720
771
@echo "PYTHON_RESOURCES-$(os ) : $$(PYTHON_RESOURCES-$(os ) ) "
0 commit comments