Skip to content

Commit bfd6df8

Browse files
committed
Migrated libFFI to use XCFramework.
1 parent f6c5f02 commit bfd6df8

File tree

2 files changed

+409
-77
lines changed

2 files changed

+409
-77
lines changed

Makefile

Lines changed: 128 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ PROJECT_DIR=$(shell pwd)
3535

3636
BUILD_NUMBER=custom
3737

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
3942

4043
# Version of packages that will be compiled by this meta-package
4144
# PYTHON_VERSION is the full version number (e.g., 3.10.0b3)
@@ -61,9 +64,9 @@ OS_LIST=macOS iOS tvOS watchOS
6164
# macOS targets
6265
TARGETS-macOS=macosx.x86_64 macosx.arm64
6366
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)
6770

6871
# iOS targets
6972
TARGETS-iOS=iphonesimulator.x86_64 iphonesimulator.arm64 iphoneos.arm64
@@ -81,7 +84,7 @@ CFLAGS-appletvsimulator.arm64=
8184
PYTHON_CONFIGURE-tvOS=ac_cv_func_sigaltstack=no
8285

8386
# watchOS targets
84-
TARGETS-watchOS=wwatchsimulator.x86_64 watchsimulator.arm64 watchos.arm64_32
87+
TARGETS-watchOS=watchsimulator.x86_64 watchsimulator.arm64 watchos.arm64_32
8588
CFLAGS-watchOS=-mwatchos-version-min=4.0 -fembed-bitcode
8689
CFLAGS_watchsimulator.x86_64=
8790
CFLAGS-watchsimulator.arm64=
@@ -92,6 +95,10 @@ PYTHON_CONFIGURE-watchOS=ac_cv_func_sigaltstack=no
9295
MACHINE_DETAILED-arm64=aarch64
9396
MACHINE_SIMPLE-arm64=arm
9497

98+
# override machine types for arm64_32
99+
MACHINE_DETAILED-arm64_32=aarch64
100+
MACHINE_SIMPLE-arm64_32=arm
101+
95102
# Build for all operating systems
96103
all: $(OS_LIST)
97104

@@ -176,7 +183,8 @@ downloads/xz-$(XZ_VERSION).tgz:
176183
clean-libFFI:
177184
@echo ">>> Clean libFFI build products"
178185
rm -rf build/*/libffi-$(LIBFFI_VERSION) \
179-
build/*/Support/libFFI
186+
build/*/libffi-*.log \
187+
build/*/Support/libFFI.xcframework
180188

181189
# Download original XZ source code archive.
182190
downloads/libffi-$(LIBFFI_VERSION).tgz:
@@ -274,7 +282,7 @@ endif
274282
ifeq ($(os),macOS)
275283
cd $$(OPENSSL_DIR-$(target)) && \
276284
CC="$$(CC-$(target))" \
277-
MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET) \
285+
MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET-$$(ARCH-$(target))) \
278286
./Configure darwin64-$$(ARCH-$(target))-cc no-tests \
279287
--prefix="$(PROJECT_DIR)/$$(OPENSSL_DIR-$(target))/_install" \
280288
--openssldir=/etc/ssl \
@@ -335,7 +343,8 @@ $$(XZ_DIR-$(target))/Makefile: downloads/xz-$(XZ_VERSION).tgz
335343
mkdir -p $$(XZ_DIR-$(target))
336344
tar zxf downloads/xz-$(XZ_VERSION).tgz --strip-components 1 -C $$(XZ_DIR-$(target))
337345
# 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))) \
339348
./configure \
340349
CC="$$(CC-$(target))" \
341350
LDFLAGS="$$(LDFLAGS-$(target))" \
@@ -354,20 +363,19 @@ $$(XZ_LIB-$(target)): $$(XZ_DIR-$(target))/Makefile
354363
# Target: libFFI
355364
###########################################################################
356365

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
360367
# a per-target build on macOS
361368
ifneq ($(os),macOS)
362-
LIBFFI_BUILD_DIR-$(target)=build_$$(SDK-$(target))-$$(ARCH-$(target))
363369

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
367373

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
371379

372380
endif
373381

@@ -410,15 +418,17 @@ $$(PYTHON_DIR-$(target))/dist/lib/libpython$(PYTHON_VER).a: build/$(os)/Support/
410418

411419
endif
412420

413-
# Dump environment variables (for debugging purposes)
421+
###########################################################################
422+
# Target: Debug
423+
###########################################################################
424+
414425
vars-$(target):
415426
@echo ">>> Environment variables for $(target)"
416427
@echo "ARCH-$(target): $$(ARCH-$(target))"
417428
@echo "MACHINE_DETAILED-$(target): $$(MACHINE_DETAILED-$(target))"
418429
@echo "SDK-$(target): $$(SDK-$(target))"
419430
@echo "SDK_ROOT-$(target): $$(SDK_ROOT-$(target))"
420431
@echo "CC-$(target): $$(CC-$(target))"
421-
@echo "LIBFFI_BUILD_DIR-$(target): $$(LIBFFI_BUILD_DIR-$(target))"
422432
@echo "OPENSSL_DIR-$(target): $$(OPENSSL_DIR-$(target))"
423433
@echo "OPENSSL_SSL_LIB-$(target): $$(OPENSSL_SSL_LIB-$(target))"
424434
@echo "OPENSSL_CRYPTO_LIB-$(target): $$(OPENSSL_CRYPTO_LIB-$(target))"
@@ -427,6 +437,7 @@ vars-$(target):
427437
@echo "XZ_DIR-$(target): $$(XZ_DIR-$(target))"
428438
@echo "XZ_LIB-$(target): $$(XZ_LIB-$(target))"
429439
@echo "LIBFFI_DIR-$(target): $$(LIBFFI_DIR-$(target))"
440+
@echo "LIBFFI_LIB-$(target): $$(LIBFFI_LIB-$(target))"
430441
@echo "PYTHON_DIR-$(target): $$(PYTHON_DIR-$(target))"
431442
@echo "pyconfig.h-$(target): $$(pyconfig.h-$(target))"
432443
@echo
@@ -442,11 +453,18 @@ define build-arch
442453
arch=$1
443454
os=$2
444455

456+
###########################################################################
457+
# Arch: Python
458+
###########################################################################
459+
445460
build/$(os)/pyconfig.h-$(arch): $$(PYTHON_DIR-$(arch))/dist/include/python$(PYTHON_VER)/pyconfig.h
446461
@echo ">>> Install pyconfig.h for $(arch) on $(os)"
447462
cp -f $$^ $$@
448463

449-
# Dump environment variables (for debugging purposes)
464+
###########################################################################
465+
# Arch: Debug
466+
###########################################################################
467+
450468
vars-$(arch):
451469

452470
endef # build-arch
@@ -502,13 +520,37 @@ $$(XZ_FATLIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(XZ_LIB-$$(targ
502520
# Copy headers from the first target associated with the SDK
503521
cp -r $$(XZ_DIR-$$(firstword $$(SDK_TARGETS-$(sdk))))/_install/include build/$(os)/xz/$(sdk)
504522

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+
506546
vars-$(sdk):
507547
@echo ">>> Environment variables for $(sdk)"
508548
@echo "SDK_TARGETS-$(sdk): $$(SDK_TARGETS-$(sdk))"
509549
@echo "SDK_ARCHES-$(sdk): $$(SDK_ARCHES-$(sdk))"
510550
@echo "BZIP2_FATLIB-$(sdk): $$(BZIP2_FATLIB-$(sdk))"
511551
@echo "XZ_FATLIB-$(sdk): $$(XZ_FATLIB-$(sdk))"
552+
@echo "OPENSSL_FATLIB-$(sdk): $$(OPENSSL_FATLIB-$(sdk))"
553+
@echo "LIBFFI_FATLIB-$(sdk): $$(LIBFFI_FATLIB-$(sdk))"
512554
@echo
513555

514556
endef # build-sdk
@@ -520,6 +562,11 @@ endef # build-sdk
520562
define build
521563
os=$1
522564

565+
566+
###########################################################################
567+
# Build: Macro Expansions
568+
###########################################################################
569+
523570
# Expand the build-target macro for target on this OS
524571
$$(foreach target,$$(TARGETS-$(os)),$$(eval $$(call build-target,$$(target),$(os))))
525572

@@ -531,32 +578,6 @@ $$(foreach arch,$$(ARCHES-$(os)),$$(eval $$(call build-arch,$$(arch),$(os))))
531578
SDKS-$(os)=$$(sort $$(basename $$(TARGETS-$(os))))
532579
$$(foreach sdk,$$(SDKS-$(os)),$$(eval $$(call build-sdk,$$(sdk),$(os))))
533580

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-
560581
###########################################################################
561582
# Build: OpenSSL
562583
###########################################################################
@@ -603,46 +624,41 @@ XZ-$(os): $$(XZ_XCFRAMEWORK-$(os))
603624
# Build: libFFI
604625
###########################################################################
605626

606-
LIBFFI_FRAMEWORK-$(os)=build/$(os)/Support/libFFI
607-
608-
libFFI-$(os): $$(LIBFFI_FRAMEWORK-$(os))
627+
LIBFFI_XCFRAMEWORK-$(os)=build/$(os)/Support/libFFI.xcframework
609628

610629
# macOS uses the system-provided libFFI, so there's no need to package
611630
# a libFFI framework for macOS.
612631
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)):
616635

617636
else
618-
# The LibFFI folder is shared between all architectures for the OS
637+
619638
LIBFFI_DIR-$(os)=build/$(os)/libffi-$(LIBFFI_VERSION)
620639

621640
# Unpack LibFFI and generate source & headers
622641
$$(LIBFFI_DIR-$(os))/darwin_common: downloads/libffi-$(LIBFFI_VERSION).tgz
623642
@echo ">>> Unpack and configure libFFI sources on $(os)"
624643
mkdir -p $$(LIBFFI_DIR-$(os))
625644
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
626647
# 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
640651

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)
643657

644658
endif
645659

660+
libFFI-$(os): $$(LIBFFI_XCFRAMEWORK-$(os))
661+
646662
###########################################################################
647663
# Build: Python
648664
###########################################################################
@@ -663,12 +679,14 @@ $$(PYTHON_DIR-$(os))/Makefile: downloads/Python-$(PYTHON_VERSION).tgz
663679
# Copy in the embedded module configuration
664680
cat $(PROJECT_DIR)/patch/Python/Setup.embedded $(PROJECT_DIR)/patch/Python/Setup.$(os) > $$(PYTHON_DIR-$(os))/Modules/Setup.local
665681
# 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))
670688

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
672690
@echo ">>> Build and install Python for $(os)"
673691
cd $$(PYTHON_DIR-$(os)) && PATH="$(PROJECT_DIR)/$(PYTHON_DIR-$(os))/dist/bin:$(PATH)" make all install
674692

@@ -707,14 +725,47 @@ build/$(os)/libpython$(PYTHON_VER).a: $$(foreach target,$$(PYTHON_TARGETS-$(os))
707725
mkdir -p build/$(os)
708726
xcrun lipo -create -output $$@ $$^
709727

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+
711762
vars-$(os): $$(foreach target,$$(TARGETS-$(os)),vars-$$(target)) $$(foreach arch,$$(ARCHES-$(os)),vars-$$(arch)) $$(foreach sdk,$$(SDKS-$(os)),vars-$$(sdk))
712763
@echo ">>> Environment variables for $(os)"
713764
@echo "ARCHES-$(os): $$(ARCHES-$(os))"
714765
@echo "OPENSSL_XCFRAMEWORK-$(os): $$(OPENSSL_XCFRAMEWORK-$(os))"
715766
@echo "BZIP2_XCFRAMEWORK-$(os): $$(BZIP2_XCFRAMEWORK-$(os))"
716767
@echo "XZ_XCFRAMEWORK-$(os): $$(XZ_XCFRAMEWORK-$(os))"
717-
@echo "LIBFFI_FRAMEWORK-$(os): $$(LIBFFI_FRAMEWORK-$(os))"
768+
@echo "LIBFFI_XCFRAMEWORK-$(os): $$(LIBFFI_XCFRAMEWORK-$(os))"
718769
@echo "PYTHON_FRAMEWORK-$(os): $$(PYTHON_FRAMEWORK-$(os))"
719770
@echo "LIBFFI_DIR-$(os): $$(LIBFFI_DIR-$(os))"
720771
@echo "PYTHON_RESOURCES-$(os): $$(PYTHON_RESOURCES-$(os))"

0 commit comments

Comments
 (0)