@@ -27,27 +27,30 @@ PROJECT_DIR=$(shell pwd)
27
27
28
28
BUILD_NUMBER =1
29
29
30
+ MACOSX_DEPLOYMENT_TARGET =10.8
31
+
30
32
# Version of packages that will be compiled by this meta-package
31
- PYTHON_VERSION =3.6.0
33
+ PYTHON_VERSION =3.6.3
32
34
PYTHON_VER =$(basename $(PYTHON_VERSION ) )
33
35
34
36
OPENSSL_VERSION_NUMBER =1.0.2
35
- OPENSSL_REVISION =k
37
+ OPENSSL_REVISION =m
36
38
OPENSSL_VERSION =$(OPENSSL_VERSION_NUMBER )$(OPENSSL_REVISION )
37
39
38
40
BZIP2_VERSION =1.0.6
39
41
40
- XZ_VERSION =5.2.2
42
+ XZ_VERSION =5.2.3
41
43
42
44
# Supported OS
43
45
OS =macOS iOS tvOS watchOS
44
46
45
47
# macOS targets
46
48
TARGETS-macOS =macosx.x86_64
49
+ CFLAGS-macOS=-mmacosx-version-min =$(MACOSX_DEPLOYMENT_TARGET )
47
50
48
51
# iOS targets
49
52
TARGETS-iOS =iphonesimulator.x86_64 iphonesimulator.i386 iphoneos.armv7 iphoneos.armv7s iphoneos.arm64
50
- CFLAGS-iOS=-miphoneos -version-min =7.0
53
+ CFLAGS-iOS=-mios -version-min =7.0
51
54
CFLAGS-iphoneos.armv7 =-fembed-bitcode
52
55
CFLAGS-iphoneos.armv7s =-fembed-bitcode
53
56
CFLAGS-iphoneos.arm64 =-fembed-bitcode
@@ -60,7 +63,7 @@ PYTHON_CONFIGURE-tvOS=ac_cv_func_sigaltstack=no
60
63
61
64
# watchOS targets
62
65
TARGETS-watchOS =watchsimulator.i386 watchos.armv7k
63
- CFLAGS-watchOS=-mwatchos-version-min =2 .0
66
+ CFLAGS-watchOS=-mwatchos-version-min =4 .0
64
67
CFLAGS-watchos.armv7k =-fembed-bitcode
65
68
PYTHON_CONFIGURE-watchOS=ac_cv_func_sigaltstack =no
66
69
@@ -80,6 +83,15 @@ distclean: clean
80
83
81
84
downloads : downloads/openssl-$(OPENSSL_VERSION ) .tgz downloads/bzip2-$(BZIP2_VERSION ) .tgz downloads/xz-$(XZ_VERSION ) .tgz downloads/Python-$(PYTHON_VERSION ) .tgz
82
85
86
+ update-patch :
87
+ # Generate a diff from the clone of the python/cpython Github repository
88
+ # Requireds patchutils (installable via `brew install patchutils`)
89
+ if [ -z " $( PYTHON_REPO_DIR) " ]; then echo " \n\nPYTHON_REPO_DIR must be set to the root of your Python github checkout\n\n" ; fi
90
+ cd $(PYTHON_REPO_DIR ) && git diff -D v$(PYTHON_VERSION ) $(PYTHON_VER ) | filterdiff -X $(PROJECT_DIR ) /patch/Python/diff-exclude.lst -p 1 --clean > $(PROJECT_DIR ) /patch/Python/Python.patch
91
+
92
+ upload : $(foreach os,$(OS ) ,$(os ) )
93
+ python tools/upload.py b$(BUILD_NUMBER )
94
+
83
95
# ##########################################################################
84
96
# OpenSSL
85
97
# These build instructions adapted from the scripts developed by
@@ -108,7 +120,7 @@ clean-bzip2:
108
120
rm -rf build/* /bzip2-$(BZIP2_VERSION ) -* \
109
121
build/* /bzip2
110
122
111
- # Download original OpenSSL source code archive.
123
+ # Download original BZip2 source code archive.
112
124
downloads/bzip2-$(BZIP2_VERSION ) .tgz :
113
125
mkdir -p downloads
114
126
if [ ! -e downloads/bzip2-$( BZIP2_VERSION) .tgz ]; then curl --fail -L http://www.bzip.org/$( BZIP2_VERSION) /bzip2-$( BZIP2_VERSION) .tar.gz -o downloads/bzip2-$( BZIP2_VERSION) .tgz; fi
@@ -122,7 +134,7 @@ clean-xz:
122
134
rm -rf build/* /xz-$(XZ_VERSION ) -* \
123
135
build/* /xz
124
136
125
- # Download original OpenSSL source code archive.
137
+ # Download original XZ source code archive.
126
138
downloads/xz-$(XZ_VERSION ) .tgz :
127
139
mkdir -p downloads
128
140
if [ ! -e downloads/xz-$( XZ_VERSION) .tgz ]; then curl --fail -L http://tukaani.org/xz/xz-$( XZ_VERSION) .tar.gz -o downloads/xz-$( XZ_VERSION) .tgz; fi
@@ -135,7 +147,7 @@ downloads/xz-$(XZ_VERSION).tgz:
135
147
clean-Python :
136
148
rm -rf \
137
149
build/* /Python-$(PYTHON_VERSION ) -* \
138
- build/* /libpython$(PYTHON_VER ) .a \
150
+ build/* /libpython$(PYTHON_VER ) m .a \
139
151
build/* /pyconfig-* .h \
140
152
build/* /Python.framework
141
153
@@ -145,7 +157,7 @@ downloads/Python-$(PYTHON_VERSION).tgz:
145
157
if [ ! -e downloads/Python-$( PYTHON_VERSION) .tgz ]; then curl -L https://www.python.org/ftp/python/$( PYTHON_VERSION) /Python-$( PYTHON_VERSION) .tgz > downloads/Python-$( PYTHON_VERSION) .tgz; fi
146
158
147
159
PYTHON_DIR-macOS =build/macOS/Python-$(PYTHON_VERSION ) -macosx.x86_64
148
- PYTHON_HOST =$(PYTHON_DIR-macOS ) /dist/lib/libpython$(PYTHON_VER ) .a
160
+ PYTHON_HOST =$(PYTHON_DIR-macOS ) /dist/lib/libpython$(PYTHON_VER ) m .a
149
161
150
162
# Build for specified target (from $(TARGETS))
151
163
#
@@ -167,8 +179,10 @@ endif
167
179
SDK-$1=$$(basename $1)
168
180
169
181
SDK_ROOT-$1=$$(shell xcrun --sdk $$(SDK-$1 ) --show-sdk-path)
170
- CC-$1=xcrun --sdk $$(SDK-$1 ) clang\
171
- -arch $$(ARCH-$1 ) --sysroot=$$(SDK_ROOT-$1 ) $$(CFLAGS-$2 ) $$(CFLAGS-$1 )
182
+ CC-$1=xcrun --sdk $$(SDK-$1 ) clang \
183
+ -arch $$(ARCH-$1 ) \
184
+ --sysroot=$$(SDK_ROOT-$1 ) \
185
+ $$(CFLAGS-$2 ) $$(CFLAGS-$1 )
172
186
LDFLAGS-$1=-arch $$(ARCH-$1 ) -isysroot=$$(SDK_ROOT-$1 )
173
187
174
188
OPENSSL_DIR-$1=build/$2/openssl-$(OPENSSL_VERSION ) -$1
@@ -196,14 +210,14 @@ endif
196
210
# Configure the build
197
211
ifeq ($2,macOS)
198
212
cd $$(OPENSSL_DIR-$1) && \
199
- CC="$$(CC-$1)" \
200
- ./Configure darwin64-x86_64-cc --openssldir=$(PROJECT_DIR)/$$(OPENSSL_DIR-$1)
213
+ CC="$$(CC-$1)" MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET) \
214
+ ./Configure darwin64-x86_64-cc --openssldir=$(PROJECT_DIR)/build/$2/openssl
201
215
else
202
216
cd $$(OPENSSL_DIR-$1) && \
203
217
CC="$$(CC-$1)" \
204
218
CROSS_TOP="$$(dir $$(SDK_ROOT-$1)).." \
205
219
CROSS_SDK="$$(notdir $$(SDK_ROOT-$1))" \
206
- ./Configure iphoneos-cross no-asm --openssldir=$(PROJECT_DIR)/$$(OPENSSL_DIR-$1)
220
+ ./Configure iphoneos-cross no-asm --openssldir=$(PROJECT_DIR)/build/$2/openssl
207
221
endif
208
222
209
223
# Build OpenSSL
@@ -235,7 +249,7 @@ $$(XZ_DIR-$1)/Makefile: downloads/xz-$(XZ_VERSION).tgz
235
249
mkdir -p $$(XZ_DIR-$1 )
236
250
tar zxf downloads/xz-$(XZ_VERSION ) .tgz --strip-components 1 -C $$(XZ_DIR-$1 )
237
251
# Configure the build
238
- cd $$(XZ_DIR-$1 ) && ./configure \
252
+ cd $$(XZ_DIR-$1 ) && MACOSX_DEPLOYMENT_TARGET= $$( MACOSX_DEPLOYMENT_TARGET ) ./configure \
239
253
CC="$$(CC-$1 ) " \
240
254
LDFLAGS="$$(LDFLAGS-$1 ) " \
241
255
--disable-shared --enable-static \
@@ -253,32 +267,33 @@ $$(PYTHON_DIR-$1)/Makefile: downloads/Python-$(PYTHON_VERSION).tgz $(PYTHON_HOST
253
267
tar zxf downloads/Python-$(PYTHON_VERSION ) .tgz --strip-components 1 -C $$(PYTHON_DIR-$1 )
254
268
# Apply target Python patches
255
269
cd $$(PYTHON_DIR-$1 ) && patch -p1 < $(PROJECT_DIR ) /patch/Python/Python.patch
270
+ cp -f $(PROJECT_DIR ) /patch/Python/Setup.embedded $$(PYTHON_DIR-$1 ) /Modules/Setup.embedded
256
271
257
272
# Configure target Python
258
273
ifeq ($2,macOS)
259
- cd $$(PYTHON_DIR-$1) && ./configure \
260
- CC="$$(CC-$1)" LD="$$(CC-$1)" \
274
+ # Make a fully embedded macOS build
275
+ cat $$(PYTHON_DIR-$1)/Modules/Setup.embedded $(PROJECT_DIR)/patch/Python/Setup.macOS-x86_64 > $$(PYTHON_DIR-$1)/Modules/Setup.local
276
+ cd $$(PYTHON_DIR-$1) && MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET) ./configure \
261
277
--prefix=$(PROJECT_DIR)/$$(PYTHON_DIR-$1)/dist \
262
- --without-pymalloc --without- doc-strings --disable-ipv6 --without-ensurepip \
278
+ --without-doc-strings --without-ensurepip \
263
279
$$(PYTHON_CONFIGURE-$2)
264
280
else
265
- cp -f $(PROJECT_DIR)/patch/Python/Setup.embedded $$(PYTHON_DIR-$1)/Modules/Setup.embedded
266
- cd $$(PYTHON_DIR-$1) && PATH=$(PROJECT_DIR)/$(PYTHON_DIR-macOS)/python/bin:$(PATH) ./configure \
281
+ cd $$(PYTHON_DIR-$1) && PATH=$(PROJECT_DIR)/build/macOS/python/bin:$(PATH) ./configure \
267
282
CC="$$(CC-$1)" LD="$$(CC-$1)" \
268
283
--host=$$(MACHINE_DETAILED-$1)-apple-$(shell echo $2 | tr '[:upper:]' '[:lower:]') \
269
284
--build=x86_64-apple-darwin$(shell uname -r) \
270
285
--prefix=$(PROJECT_DIR)/$$(PYTHON_DIR-$1)/dist \
271
- --without-pymalloc --without- doc-strings --disable-ipv6 --without-ensurepip \
286
+ --without-doc-strings --disable-ipv6 --without-ensurepip \
272
287
ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no \
273
288
$$(PYTHON_CONFIGURE-$2)
274
289
endif
275
290
276
291
# Build Python
277
- $$(PYTHON_DIR-$1 ) /dist/lib/libpython$(PYTHON_VER ) .a: build/$2/OpenSSL.framework build/$2/BZip2.framework build/$2/XZ.framework $$(PYTHON_DIR-$1 ) /Makefile
292
+ $$(PYTHON_DIR-$1 ) /dist/lib/libpython$(PYTHON_VER ) m .a: build/$2/OpenSSL.framework build/$2/BZip2.framework build/$2/XZ.framework $$(PYTHON_DIR-$1 ) /Makefile
278
293
# Build target Python
279
294
cd $$(PYTHON_DIR-$1 ) && PATH=$(PROJECT_DIR ) /$(PYTHON_DIR-macOS ) /dist/bin:$(PATH ) make all install
280
295
281
- build/$2/$$(pyconfig.h-$1 ) : $$(PYTHON_DIR-$1 ) /dist/include/python$(PYTHON_VER ) /pyconfig.h
296
+ build/$2/$$(pyconfig.h-$1 ) : $$(PYTHON_DIR-$1 ) /dist/include/python$(PYTHON_VER ) m /pyconfig.h
282
297
cp -f $$^ $$@
283
298
284
299
# Dump vars (for test)
@@ -332,7 +347,7 @@ OpenSSL.framework-$1: $$(OPENSSL_FRAMEWORK-$1)
332
347
333
348
$$(OPENSSL_FRAMEWORK-$1 ) : build/$1/libssl.a build/$1/libcrypto.a
334
349
# Create framework directory structure
335
- mkdir -p $$(OPENSSL_FRAMEWORK-$1 ) /Versions/$(OPENSSL_VERSION )
350
+ mkdir -p $$(OPENSSL_FRAMEWORK-$1 ) /Versions/$(OPENSSL_VERSION ) /Resources
336
351
337
352
# Copy the headers
338
353
cp -f -r $$(OPENSSL_DIR-$$(firstword $$(TARGETS-$1 ) ) ) /include $$(OPENSSL_FRAMEWORK-$1 ) /Versions/$(OPENSSL_VERSION ) /Headers
@@ -344,8 +359,16 @@ $$(OPENSSL_FRAMEWORK-$1): build/$1/libssl.a build/$1/libcrypto.a
344
359
# Create symlinks
345
360
ln -fs $(OPENSSL_VERSION ) $$(OPENSSL_FRAMEWORK-$1 ) /Versions/Current
346
361
ln -fs Versions/Current/Headers $$(OPENSSL_FRAMEWORK-$1 )
362
+ ln -fs Versions/Current/Resources $$(OPENSSL_FRAMEWORK-$1 )
347
363
ln -fs Versions/Current/OpenSSL $$(OPENSSL_FRAMEWORK-$1 )
348
364
365
+ # Create plist file
366
+ sed -e "s/xxxNAMExxx/OpenSSL/g" $(PROJECT_DIR ) /patch/Info.plist.tmpl > $$(OPENSSL_FRAMEWORK-$1 ) /Resources/Info.plist.1
367
+ sed -e "s/xxxBUNDLExxx/org.openssl/g" $$(OPENSSL_FRAMEWORK-$1 ) /Resources/Info.plist.1 > $$(OPENSSL_FRAMEWORK-$1 ) /Resources/Info.plist.2
368
+ sed -e "s/xxxVERSIONxxx/$$(OPENSSL_VERSION ) /g" $$(OPENSSL_FRAMEWORK-$1 ) /Resources/Info.plist.2 > $$(OPENSSL_FRAMEWORK-$1 ) /Resources/Info.plist
369
+ rm $$(OPENSSL_FRAMEWORK-$1 ) /Resources/Info.plist.1 $$(OPENSSL_FRAMEWORK-$1 ) /Resources/Info.plist.2
370
+
371
+
349
372
build/$1/libssl.a: $$(foreach target,$$(TARGETS-$1 ) ,$$(OPENSSL_DIR-$$(target ) ) /libssl.a)
350
373
mkdir -p build/$1
351
374
xcrun lipo -create -output $$@ $$^
@@ -359,7 +382,7 @@ BZip2.framework-$1: $$(BZIP2_FRAMEWORK-$1)
359
382
360
383
$$(BZIP2_FRAMEWORK-$1 ) : build/$1/bzip2/lib/libbz2.a
361
384
# Create framework directory structure
362
- mkdir -p $$(BZIP2_FRAMEWORK-$1 ) /Versions/$(BZIP2_VERSION )
385
+ mkdir -p $$(BZIP2_FRAMEWORK-$1 ) /Versions/$(BZIP2_VERSION ) /Resources
363
386
364
387
# Copy the headers
365
388
cp -f -r build/$1/bzip2/include $$(BZIP2_FRAMEWORK-$1 ) /Versions/$(BZIP2_VERSION ) /Headers
@@ -371,8 +394,16 @@ $$(BZIP2_FRAMEWORK-$1): build/$1/bzip2/lib/libbz2.a
371
394
# Create symlinks
372
395
ln -fs $(BZIP2_VERSION ) $$(BZIP2_FRAMEWORK-$1 ) /Versions/Current
373
396
ln -fs Versions/Current/Headers $$(BZIP2_FRAMEWORK-$1 )
397
+ ln -fs Versions/Current/Resources $$(BZIP2_FRAMEWORK-$1 )
374
398
ln -fs Versions/Current/bzip2 $$(BZIP2_FRAMEWORK-$1 )
375
399
400
+ # Create plist file
401
+ sed -e "s/xxxNAMExxx/BZip2/g" $(PROJECT_DIR ) /patch/Info.plist.tmpl > $$(BZIP2_FRAMEWORK-$1 ) /Resources/Info.plist.1
402
+ sed -e "s/xxxBUNDLExxx/org.bzip.bzip2/g" $$(BZIP2_FRAMEWORK-$1 ) /Resources/Info.plist.1 > $$(BZIP2_FRAMEWORK-$1 ) /Resources/Info.plist.2
403
+ sed -e "s/xxxVERSIONxxx/$$(BZIP2_VERSION ) /g" $$(BZIP2_FRAMEWORK-$1 ) /Resources/Info.plist.2 > $$(BZIP2_FRAMEWORK-$1 ) /Resources/Info.plist
404
+ rm $$(BZIP2_FRAMEWORK-$1 ) /Resources/Info.plist.1 $$(BZIP2_FRAMEWORK-$1 ) /Resources/Info.plist.2
405
+
406
+
376
407
build/$1/bzip2/lib/libbz2.a: $$(foreach target,$$(TARGETS-$1 ) ,$$(BZIP2_DIR-$$(target ) ) /libbz2.a)
377
408
mkdir -p build/$1
378
409
xcrun lipo -create -o $$@ $$^
@@ -382,7 +413,7 @@ XZ.framework-$1: $$(XZ_FRAMEWORK-$1)
382
413
383
414
$$(XZ_FRAMEWORK-$1 ) : build/$1/xz/lib/liblzma.a
384
415
# Create framework directory structure
385
- mkdir -p $$(XZ_FRAMEWORK-$1 ) /Versions/$(XZ_VERSION )
416
+ mkdir -p $$(XZ_FRAMEWORK-$1 ) /Versions/$(XZ_VERSION ) /Resources
386
417
387
418
# Copy the headers
388
419
cp -f -r build/$1/xz/include $$(XZ_FRAMEWORK-$1 ) /Versions/$(XZ_VERSION ) /Headers
@@ -394,8 +425,15 @@ $$(XZ_FRAMEWORK-$1): build/$1/xz/lib/liblzma.a
394
425
# Create symlinks
395
426
ln -fs $(XZ_VERSION ) $$(XZ_FRAMEWORK-$1 ) /Versions/Current
396
427
ln -fs Versions/Current/Headers $$(XZ_FRAMEWORK-$1 )
428
+ ln -fs Versions/Current/Resources $$(XZ_FRAMEWORK-$1 )
397
429
ln -fs Versions/Current/xz $$(XZ_FRAMEWORK-$1 )
398
430
431
+ # Create plist file
432
+ sed -e "s/xxxNAMExxx/XZ/g" $(PROJECT_DIR ) /patch/Info.plist.tmpl > $$(XZ_FRAMEWORK-$1 ) /Resources/Info.plist.1
433
+ sed -e "s/xxxBUNDLExxx/org.tukaani.xz/g" $$(XZ_FRAMEWORK-$1 ) /Resources/Info.plist.1 > $$(XZ_FRAMEWORK-$1 ) /Resources/Info.plist.2
434
+ sed -e "s/xxxVERSIONxxx/$$(XZ_VERSION ) /g" $$(XZ_FRAMEWORK-$1 ) /Resources/Info.plist.2 > $$(XZ_FRAMEWORK-$1 ) /Resources/Info.plist
435
+ rm $$(XZ_FRAMEWORK-$1 ) /Resources/Info.plist.1 $$(XZ_FRAMEWORK-$1 ) /Resources/Info.plist.2
436
+
399
437
build/$1/xz/lib/liblzma.a: $$(foreach target,$$(TARGETS-$1 ) ,$$(XZ_DIR-$$(target ) ) /src/liblzma/.libs/liblzma.a)
400
438
mkdir -p build/$1
401
439
xcrun lipo -create -o $$@ $$^
@@ -405,23 +443,23 @@ $1: Python.framework-$1
405
443
Python.framework-$1: $$(PYTHON_FRAMEWORK-$1 )
406
444
407
445
# Build Python.framework
408
- $$(PYTHON_FRAMEWORK-$1 ) : build/$1/libpython$(PYTHON_VER ) .a $$(foreach target,$$(TARGETS-$1 ) ,build/$1/$$(pyconfig.h-$$(target ) ) )
409
- mkdir -p $$(PYTHON_RESOURCES-$1 ) /include/python$(PYTHON_VER )
446
+ $$(PYTHON_FRAMEWORK-$1 ) : build/$1/libpython$(PYTHON_VER ) m .a $$(foreach target,$$(TARGETS-$1 ) ,build/$1/$$(pyconfig.h-$$(target ) ) )
447
+ mkdir -p $$(PYTHON_RESOURCES-$1 ) /include/python$(PYTHON_VER ) m
410
448
411
449
# Copy the headers. The headers are the same for every platform, except for pyconfig.h
412
- cp -f -r $$(PYTHON_DIR-$$(firstword $$(TARGETS-$1 ) ) ) /dist/include/python$(PYTHON_VER ) $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers
450
+ cp -f -r $$(PYTHON_DIR-$$(firstword $$(TARGETS-$1 ) ) ) /dist/include/python$(PYTHON_VER ) m $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers
413
451
cp -f $$(filter % .h,$$^ ) $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers
414
452
cp -f $$(PYTHON_DIR-$$(firstword $$(TARGETS-$1 ) ) ) /iOS/include/pyconfig.h $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers
415
453
416
454
# Copy Python.h and pyconfig.h into the resources include directory
417
- cp -f -r $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers/pyconfig*.h $$(PYTHON_RESOURCES-$1 ) /include/python$(PYTHON_VER )
418
- cp -f -r $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers/Python.h $$(PYTHON_RESOURCES-$1 ) /include/python$(PYTHON_VER )
455
+ cp -f -r $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers/pyconfig*.h $$(PYTHON_RESOURCES-$1 ) /include/python$(PYTHON_VER ) m
456
+ cp -f -r $$(PYTHON_FRAMEWORK-$1 ) /Versions/$(PYTHON_VER ) /Headers/Python.h $$(PYTHON_RESOURCES-$1 ) /include/python$(PYTHON_VER ) m
419
457
420
458
# Copy the standard library from the simulator build
421
459
ifneq ($(TEST ) ,)
422
460
cp -f -r $$(PYTHON_DIR-$$(firstword $$(TARGETS-$1)))/dist/lib $$(PYTHON_RESOURCES-$1)
423
461
# Remove the pieces of the resources directory that aren't needed:
424
- rm -f $$(PYTHON_RESOURCES-$1)/lib/libpython$(PYTHON_VER).a
462
+ rm -f $$(PYTHON_RESOURCES-$1)/lib/libpython$(PYTHON_VER)m .a
425
463
rm -rf $$(PYTHON_RESOURCES-$1)/lib/pkgconfig
426
464
else
427
465
mkdir -p $$(PYTHON_RESOURCES-$1)/lib
@@ -438,8 +476,14 @@ endif
438
476
ln -fs Versions/Current/Resources $$(PYTHON_FRAMEWORK-$1 )
439
477
ln -fs Versions/Current/Python $$(PYTHON_FRAMEWORK-$1 )
440
478
479
+ # Create plist file
480
+ sed -e "s/xxxNAMExxx/Python/g" $(PROJECT_DIR ) /patch/Info.plist.tmpl > $$(PYTHON_RESOURCES-$1 ) /Info.plist.1
481
+ sed -e "s/xxxBUNDLExxx/org.python/g" $$(PYTHON_RESOURCES-$1 ) /Info.plist.1 > $$(PYTHON_RESOURCES-$1 ) /Info.plist.2
482
+ sed -e "s/xxxVERSIONxxx/$$(PYTHON_VERSION ) /g" $$(PYTHON_RESOURCES-$1 ) /Info.plist.2 > $$(PYTHON_RESOURCES-$1 ) /Info.plist
483
+ rm $$(PYTHON_RESOURCES-$1 ) /Info.plist.1 $$(PYTHON_RESOURCES-$1 ) /Info.plist.2
484
+
441
485
# Build libpython fat library
442
- build/$1/libpython$(PYTHON_VER ) .a: $$(foreach target,$$(TARGETS-$1 ) ,$$(PYTHON_DIR-$$(target ) ) /dist/lib/libpython$(PYTHON_VER ) .a)
486
+ build/$1/libpython$(PYTHON_VER ) m .a: $$(foreach target,$$(TARGETS-$1 ) ,$$(PYTHON_DIR-$$(target ) ) /dist/lib/libpython$(PYTHON_VER ) m .a)
443
487
# Create a fat binary for the libPython library
444
488
mkdir -p build/$1
445
489
xcrun lipo -create -output $$@ $$^
0 commit comments