@@ -111,7 +111,7 @@ all: $(OS_LIST)
111111
112112.PHONY : \
113113 all clean distclean update-patch vars \
114- $(foreach product,$(PRODUCTS ) ,$(foreach os,$(OS_LIST ) ,$(product ) $(product ) -$(os ) clean-$(product ) ) ) \
114+ $(foreach product,$(PRODUCTS ) ,$(foreach os,$(OS_LIST ) ,$(product ) $(product ) -$(os ) clean-$(product ) clean- $( product ) - $( os ) ) ) \
115115 $(foreach os,$(OS_LIST ) ,$(os ) clean-$(os ) vars-$(os ) )
116116
117117# Clean all builds
@@ -139,14 +139,6 @@ update-patch:
139139# Setup: BZip2
140140# ##########################################################################
141141
142- # Clean the bzip2 project
143- clean-BZip2 :
144- @echo " >>> Clean BZip2 build products"
145- rm -rf build/* /bzip2-$(BZIP2_VERSION ) -* \
146- build/* /bzip2 \
147- build/* /bzip2-* .log \
148- build/* /Support/BZip2.xcframework
149-
150142# Download original BZip2 source code archive.
151143downloads/bzip2-$(BZIP2_VERSION ) .tgz :
152144 @echo " >>> Download BZip2 sources"
@@ -160,14 +152,6 @@ downloads/bzip2-$(BZIP2_VERSION).tgz:
160152# Setup: XZ (LZMA)
161153# ##########################################################################
162154
163- # Clean the XZ project
164- clean-XZ :
165- @echo " >>> Clean XZ build products"
166- rm -rf build/* /xz-$(XZ_VERSION ) -* \
167- build/* /xz \
168- build/* /xz-* .log \
169- build/* /Support/XZ.xcframework
170-
171155# Download original XZ source code archive.
172156downloads/xz-$(XZ_VERSION ) .tgz :
173157 @echo " >>> Download XZ sources"
@@ -183,14 +167,6 @@ downloads/xz-$(XZ_VERSION).tgz:
183167# Felix Shchulze (@x2on) https://github.com/x2on/OpenSSL-for-iPhone
184168# ##########################################################################
185169
186- # Clean the OpenSSL project
187- clean-OpenSSL :
188- @echo " >>> Clean OpenSSL build products"
189- rm -rf build/* /openssl-$(OPENSSL_VERSION ) -* \
190- build/* /openssl \
191- build/* /openssl-* .log \
192- build/* /Support/OpenSSL.xcframework
193-
194170# Download original OpenSSL source code archive.
195171downloads/openssl-$(OPENSSL_VERSION ) .tgz :
196172 @echo " >>> Download OpenSSL sources"
@@ -208,13 +184,6 @@ downloads/openssl-$(OPENSSL_VERSION).tgz:
208184# Setup: libFFI
209185# ##########################################################################
210186
211- # Clean the libFFI project
212- clean-libFFI :
213- @echo " >>> Clean libFFI build products"
214- rm -rf build/* /libffi-$(LIBFFI_VERSION ) \
215- build/* /libffi-* .log \
216- build/* /Support/libFFI.xcframework
217-
218187# Download original XZ source code archive.
219188downloads/libffi-$(LIBFFI_VERSION ) .tgz :
220189 @echo " >>> Download libFFI sources"
@@ -228,28 +197,6 @@ downloads/libffi-$(LIBFFI_VERSION).tgz:
228197# Setup: Python
229198# ##########################################################################
230199
231- # Clean the Python project
232- clean-Python :
233- @echo " >>> Clean Python build products"
234- rm -rf \
235- dist/Python-$(PYTHON_VER ) -* \
236- build/* /Python-$(PYTHON_VERSION ) -* \
237- build/* /python \
238- build/* /python-* .log \
239- build/* /Support/Python.xcframework \
240- build/* /Support/Python
241-
242- dev-clean-Python :
243- @echo " >>> Partially clean Python build products to the point where local code modifications can be made"
244- rm -rf \
245- dist/Python-$(PYTHON_VER ) -* \
246- build/* /Python-$(PYTHON_VERSION ) -* /python.exe \
247- build/* /Python-$(PYTHON_VERSION ) -* /_install \
248- build/* /python \
249- build/* /python-* .log \
250- build/* /Support/Python.xcframework \
251- build/* /Support/Python
252-
253200# Download original Python source code archive.
254201downloads/Python-$(PYTHON_VERSION ) .tgz :
255202 @echo " >>> Download Python sources"
@@ -466,6 +413,7 @@ $$(PYTHON_DIR-$(target))/Makefile: \
466413 $$(XZ_XCFRAMEWORK-$(os ) ) \
467414 $$(OPENSSL_XCFRAMEWORK-$(os ) ) \
468415 $$(LIBFFI_XCFRAMEWORK-$(os ) ) \
416+ $$(PYTHON_XCFRAMEWORK-macOS ) \
469417 downloads/Python-$(PYTHON_VERSION ) .tgz
470418 @echo " >>> Unpack and configure Python for $( target) "
471419 mkdir -p $$(PYTHON_DIR-$(target ) )
@@ -702,6 +650,13 @@ $$(BZIP2_XCFRAMEWORK-$(os)): $$(foreach sdk,$$(SDKS-$(os)),$$(BZIP2_FATLIB-$$(sd
702650
703651BZip2-$(os ) : $$(BZIP2_XCFRAMEWORK-$(os ) )
704652
653+ clean-BZip2-$(os ) :
654+ @echo ">>> Clean BZip2 build products on $(os ) "
655+ rm -rf build/$(os ) /bzip2-$(BZIP2_VERSION ) -* \
656+ build/$(os ) /bzip2 \
657+ build/$(os ) /bzip2-*.log \
658+ build/$(os ) /Support/BZip2.xcframework
659+
705660# ##########################################################################
706661# Build: XZ (LZMA)
707662# ##########################################################################
@@ -717,6 +672,13 @@ $$(XZ_XCFRAMEWORK-$(os)): $$(foreach sdk,$$(SDKS-$(os)),$$(XZ_FATLIB-$$(sdk)))
717672
718673XZ-$(os ) : $$(XZ_XCFRAMEWORK-$(os ) )
719674
675+ clean-XZ-$(os ) :
676+ @echo ">>> Clean XZ build products on $(os ) "
677+ rm -rf build/$(os ) /xz-$(XZ_VERSION ) -* \
678+ build/$(os ) /xz \
679+ build/$(os ) /xz-*.log \
680+ build/$(os ) /Support/XZ.xcframework
681+
720682# ##########################################################################
721683# Build: OpenSSL
722684# ##########################################################################
@@ -732,6 +694,13 @@ $$(OPENSSL_XCFRAMEWORK-$(os)): $$(foreach sdk,$$(SDKS-$(os)),$$(OPENSSL_FATLIB-$
732694
733695OpenSSL-$(os ) : $$(OPENSSL_XCFRAMEWORK-$(os ) )
734696
697+ clean-OpenSSL-$(os ) :
698+ @echo ">>> Clean OpenSSL build products on $(os ) "
699+ rm -rf build/$(os ) /openssl-$(OPENSSL_VERSION ) -* \
700+ build/$(os ) /openssl \
701+ build/$(os ) /openssl-*.log \
702+ build/$(os ) /Support/OpenSSL.xcframework
703+
735704# ##########################################################################
736705# Build: libFFI
737706# ##########################################################################
@@ -743,14 +712,15 @@ ifneq ($(os),macOS)
743712LIBFFI_XCFRAMEWORK-$(os) =build/$(os ) /Support/libFFI.xcframework
744713LIBFFI_DIR-$(os) =build/$(os ) /libffi-$(LIBFFI_VERSION )
745714
746- $$(LIBFFI_DIR-$(os ) ) /darwin_common/include/ffi.h : downloads/libffi-$(LIBFFI_VERSION ) .tgz
715+ $$(LIBFFI_DIR-$(os ) ) /darwin_common/include/ffi.h : downloads/libffi-$(LIBFFI_VERSION ) .tgz $$( PYTHON_XCFRAMEWORK-macOS )
747716 @echo " >>> Unpack and configure libFFI sources on $( os) "
748717 mkdir -p $$(LIBFFI_DIR-$(os ) )
749718 tar zxf downloads/libffi-$(LIBFFI_VERSION ) .tgz --strip-components 1 -C $$(LIBFFI_DIR-$(os ) )
750719 # Patch the build to add support for new platforms
751720 cd $$(LIBFFI_DIR-$(os ) ) && patch -p1 < $(PROJECT_DIR ) /patch/libffi.patch
752721 # Configure the build
753722 cd $$(LIBFFI_DIR-$(os ) ) && \
723+ PATH=$(PROJECT_DIR ) /$(PYTHON_DIR-macOS ) /_install/bin:$(PATH ) \
754724 python$(PYTHON_VER ) generate-darwin-source-and-headers.py --only-$(shell echo $(os ) | tr '[:upper:]' '[:lower:]') \
755725 2>&1 | tee -a ../libffi-$(os ) .config.log
756726
@@ -761,9 +731,15 @@ $$(LIBFFI_XCFRAMEWORK-$(os)): $$(foreach sdk,$$(SDKS-$(os)),$$(LIBFFI_FATLIB-$$(
761731 -output $$@ $$(foreach sdk,$$(SDKS-$(os ) ) ,-library $$(LIBFFI_FATLIB-$$(sdk ) ) -headers $$(LIBFFI_DIR-$(os ) ) /_install/$$(sdk ) /include) \
762732 2>&1 | tee -a build/$(os ) /libffi-$(os ) .xcframework.log
763733
734+ endif
735+
764736libFFI-$(os ) : $$(LIBFFI_XCFRAMEWORK-$(os ) )
765737
766- endif
738+ clean-libFFI-$(os ) :
739+ @echo ">>> Clean libFFI build products on $(os ) "
740+ rm -rf build/$(os ) /libffi-$(LIBFFI_VERSION ) \
741+ build/$(os ) /libffi-*.log \
742+ build/$(os ) /Support/libFFI.xcframework
767743
768744
769745# ##########################################################################
@@ -847,6 +823,27 @@ $$(PYTHON_XCFRAMEWORK-$(os)): $$(foreach sdk,$$(SDKS-$(os)),$$(PYTHON_FATLIB-$$(
847823
848824Python-$(os ) : dist/Python-$(PYTHON_VER ) -$(os ) -support.$(BUILD_NUMBER ) .tar.gz
849825
826+ clean-Python-$(os ) :
827+ @echo ">>> Clean Python build products on $(os ) "
828+ rm -rf \
829+ dist/Python-$(PYTHON_VER ) -$(os ) \
830+ build/$(os ) /Python-$(PYTHON_VERSION ) -* \
831+ build/$(os ) /python \
832+ build/$(os ) /python-*.log \
833+ build/$(os ) /Support/Python.xcframework \
834+ build/$(os ) /Support/Python
835+
836+ dev-clean-Python-$(os ) :
837+ @echo ">>> Partially clean Python build products on $(os ) so that local code modifications can be made"
838+ rm -rf \
839+ dist/Python-$(PYTHON_VER ) -$(os ) -* \
840+ build/$(os ) /Python-$(PYTHON_VERSION ) -*/python.exe \
841+ build/$(os ) /Python-$(PYTHON_VERSION ) -*/_install \
842+ build/$(os ) /python \
843+ build/$(os ) /python-*.log \
844+ build/$(os ) /Support/Python.xcframework \
845+ build/$(os ) /Support/Python
846+
850847# ##########################################################################
851848# Build
852849# ##########################################################################
@@ -909,12 +906,22 @@ endef # build
909906# Dump environment variables (for debugging purposes)
910907vars : $(foreach os,$(OS_LIST ) ,vars-$(os ) )
911908
912- # Expand cross-platform build targets for each output product
909+ # Expand cross-platform build and clean targets for each output product
913910XZ : $(foreach os,$(OS_LIST ) ,XZ-$(os ) )
911+ clean-XZ : $(foreach os,$(OS_LIST ) ,clean-XZ-$(os ) )
912+
914913BZip2 : $(foreach os,$(OS_LIST ) ,BZip2-$(os ) )
914+ clean-BZip2 : $(foreach os,$(OS_LIST ) ,clean-BZip2-$(os ) )
915+
915916OpenSSL : $(foreach os,$(OS_LIST ) ,OpenSSL-$(os ) )
917+ clean-OpenSSL : $(foreach os,$(OS_LIST ) ,clean-OpenSSL-$(os ) )
918+
916919libFFI : $(foreach os,$(OS_LIST ) ,libFFI-$(os ) )
920+ clean-libFFI : $(foreach os,$(OS_LIST ) ,clean-libFFI-$(os ) )
921+
917922Python : $(foreach os,$(OS_LIST ) ,Python-$(os ) )
923+ clean-Python : $(foreach os,$(OS_LIST ) ,clean-Python-$(os ) )
924+ dev-clean-Python : $(foreach os,$(OS_LIST ) ,dev-clean-Python-$(os ) )
918925
919926# Expand the build macro for every OS
920927$(foreach os,$(OS_LIST),$(eval $(call build,$(os))))
0 commit comments