Skip to content

Commit e41cf6e

Browse files
committed
0.4.5
1 parent 8fff085 commit e41cf6e

File tree

9 files changed

+416
-391
lines changed

9 files changed

+416
-391
lines changed

config

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
export LC_ALL=C
3-
export ROOT=$(pwd)
3+
export ROOT=${ROOT:-$(pwd)}
44
export SDKROOT=${SDKROOT:-$ROOT}
55

66
export PYTHONDONTWRITEBYTECODE=1
@@ -11,35 +11,20 @@ export PYBUILD=${PYBUILD:-3.11}
1111
export PYMAJOR=$(echo -n $PYBUILD|cut -d. -f1)
1212
export PYMINOR=$(echo -n $PYBUILD|cut -d. -f2)
1313

14-
1514
export HOST_PREFIX=${HOST_PREFIX:-${SDKROOT}/devices/$(arch)/usr}
1615
export PREFIX=${PREFIX:-${SDKROOT}/devices/emsdk/usr}
17-
export PYTHONPYCACHEPREFIX=$(realpath ${SDKROOT}/build/pycache)
1816

17+
mkdir -p ${SDKROOT}/build/pycache
18+
export PYTHONPYCACHEPREFIX=${PYTHONPYCACHEPREFIX:-$(realpath ${SDKROOT}/build/pycache)}
1919

20-
# this is python used for emsdk : ${SYS_PYTHON} -> ${EMSDK_PYTHON}
21-
for py in 10 9 8 7
22-
do
23-
if command -v python${PYMAJOR}.${py} >/dev/null
24-
then
25-
export SYS_PYTHON=$(command -v python${PYMAJOR}.${py})
26-
break
27-
else
28-
# sane default
29-
export SYS_PYTHON=$(command -v python${PYMAJOR})
30-
fi
31-
done
20+
export HOME=${SDKROOT}
3221

3322
export HPY=${HOST_PREFIX}/bin/python${PYBUILD}
3423
export PIP=${HOST_PREFIX}/bin/pip${PYBUILD}
3524

3625
# cpython build opts
3726
export CPOPTS="-Os -g0 -fPIC"
38-
export CPPFLAGS="-I$PREFIX/include"
39-
export LDFLAGS="-msoft-float -L$PREFIX/lib"
4027

41-
# module build opts
42-
export CFLDPFX="$CPPFLAGS $LDFLAGS -Wno-unused-command-line-argument"
4328

4429
if [ -f ${ROOT}/dev ]
4530
then
@@ -55,6 +40,7 @@ else
5540
fi
5641
fi
5742

43+
5844
#stable
5945
# EMFLAVOUR=latest
6046
# EMFLAVOUR=${EMFLAVOUR:-latest}
@@ -67,23 +53,26 @@ export EMSDK_NUM_CORES=1
6753

6854
export PYDK_PYTHON_HOST_PLATFORM=wasm32-$EMFLAVOUR-emscripten
6955

70-
if echo $LD_LIBRARY_PATH |grep -q ${HOST}/lib
71-
then
72-
# config already set
73-
echo -n
74-
else
75-
#export LD_LIBRARY_PATH="${HOST_PREFIX}/lib:$LD_LIBRARY_PATH"
76-
export LD_LIBRARY_PATH="${HOST_PREFIX}/lib"
77-
fi
78-
79-
if [[ ! -z ${PYDK+z} ]]
56+
if echo $LD_LIBRARY_PATH |grep -q ${HOST_PREFIX}/lib
8057
then
8158
# config already set
8259
echo -n
8360
else
84-
mkdir -p src
85-
export PKG_CONFIG_PATH="${HOST_PREFIX}/lib/pkgconfig"
86-
export PATH="${HOST_PREFIX}/bin:$PATH"
87-
export PYDK=minimal
61+
OLDPATH=${PATH}
62+
PATH=/usr/local/bin:/usr/bin:/opt/bin:/bin
63+
# this is python used for emsdk : ${SYS_PYTHON} -> ${EMSDK_PYTHON}
64+
for py in 10 9 8 7
65+
do
66+
if command -v python${PYMAJOR}.${py} >/dev/null
67+
then
68+
export SYS_PYTHON=$(command -v python${PYMAJOR}.${py})
69+
break
70+
else
71+
# sane default
72+
export SYS_PYTHON=$(command -v python${PYMAJOR})
73+
fi
74+
done
75+
76+
export LD_LIBRARY_PATH="${HOST_PREFIX}/lib:$LD_LIBRARY_PATH"
77+
export PATH="${HOST_PREFIX}/bin:$OLDPATH"
8878
fi
89-

python-wasm-sdk.sh

Lines changed: 44 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@ reset
88
. /etc/lsb-release
99
DISTRIB="${DISTRIB_ID}-${DISTRIB_RELEASE}"
1010

11-
export SDKDIR=/opt/python-wasm-sdk
1211
export SDKROOT=/opt/python-wasm-sdk
1312

1413
export CIVER=${CIVER:-$DISTRIB}
1514
export CI=true
1615

1716

18-
sudo mkdir -p ${SDKDIR}
19-
sudo chmod 777 ${SDKDIR}
17+
sudo mkdir -p ${SDKROOT}
18+
sudo chmod 777 ${SDKROOT}
2019

2120
ORIGIN=$(pwd)
2221

@@ -28,13 +27,18 @@ for PYBUILD in $BUILDS
2827
do
2928
cd "$ORIGIN"
3029

31-
[ -f ${SDKDIR}/dev ] || rm -rf ${SDKDIR}/*
30+
if [ -f ${SDKROOT}/dev ]
31+
then
32+
rm ${SDKROOT}/embuild.done
33+
else
34+
rm -rf ${SDKROOT}/*
35+
fi
36+
3237

33-
cp -Rf * ${SDKDIR}/
38+
cp -Rf * ${SDKROOT}/
3439

35-
if cd ${SDKDIR}/
40+
if cd ${SDKROOT}/
3641
then
37-
pwd
3842
mkdir -p build/pycache
3943
export PYTHONDONTWRITEBYTECODE=1
4044

@@ -43,17 +47,19 @@ do
4347

4448
. ${CONFIG:-config}
4549

46-
cd ${SDKDIR}
50+
cd ${SDKROOT}
4751
. scripts/cpython-fetch.sh
4852

49-
cd ${SDKDIR}
53+
cd ${SDKROOT}
5054
. support/__EMSCRIPTEN__.sh
5155

5256
. scripts/cpython-build-host.sh 2>&1 >/dev/null
5357

5458
. scripts/cpython-build-host-deps.sh
5559
# >/dev/null
5660

61+
[ -f /lowend ] && sleep 45
62+
5763
# use ./ or emsdk will pollute env
5864
./scripts/emsdk-fetch.sh
5965

@@ -63,12 +69,13 @@ do
6369
echo " ------------------- building cpython wasm plus $PYBUILD $CIVER -------------------"
6470
if ./scripts/cpython-build-emsdk-deps.sh > /dev/null
6571
then
72+
[ -f /lowend ] && sleep 45
6673
echo "
6774
6875
==========================================================
6976
stripping emsdk
7077
==========================================================
71-
"
78+
" 1>&2
7279
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports*
7380
# something triggers sdl2 *full* rebuild in pygame.
7481
# but only that one.
@@ -78,37 +85,46 @@ do
7885
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports
7986
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports-builds
8087
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/tests
81-
#
8288

83-
echo "making tarball"
89+
90+
echo "making tarball" 1>&2
8491

8592
cd /
8693
mkdir -p /tmp/sdk
8794
tar -cpPR \
88-
${SDKDIR}/config \
89-
${SDKDIR}/build/pycache/.??* \
90-
${SDKDIR}/build/pycache/sysconfig/_sysconfigdata__emscripten_debug.py \
91-
${SDKDIR}/python3-wasm \
92-
${SDKDIR}/wasm32-*-shell.sh \
93-
${SDKDIR}/emsdk \
94-
${SDKDIR}/devices/* \
95-
${SDKDIR}/prebuilt/* \
95+
${SDKROOT}/config \
96+
${SDKROOT}/python3-wasm \
97+
${SDKROOT}/wasm32-*-shell.sh \
98+
${SDKROOT}/emsdk \
99+
${SDKROOT}/devices/* \
100+
${SDKROOT}/prebuilt/* \
96101
> /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
97102
lz4 -c --favor-decSpeed --best /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar \
98103
> /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar.lz4
99-
# bzip2 will remove original
100-
bzip2 -9 /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
104+
105+
if [ -f /lowend ]
106+
then
107+
# bzip2 is energy waste for local build
108+
rm /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
109+
else
110+
# bzip2 will remove original
111+
[ -f /lowend ] || bzip2 -9 /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
112+
fi
101113
else
102-
echo " cpython-build-emsdk-deps failed"
103-
exit 2
114+
echo " cpython-build-emsdk-deps failed" 1>&2
115+
exit 111
104116
fi
105117
else
106-
echo " cpython-build-emsdk failed"
107-
exit 1
118+
echo " cpython-build-emsdk failed" 1>&2
119+
exit 115
108120
fi
109121

110-
echo done
122+
echo "done" 1>&2
123+
124+
# cool down
125+
[ -f /lowend ] && sleep 60
111126
else
112-
echo failed
127+
echo "cd failed" 1>&2
128+
exit 124
113129
fi
114130
done

0 commit comments

Comments
 (0)